autoconfed for random/lrand48/rand madness dbbrowser uses clist now,
* autoconfed for random/lrand48/rand madness * dbbrowser uses clist now, thanks to msw * gfig.c: minor fix for buggy compilers * plasma.c, snoise.c: applied gimp-kmt-980321-[0,1] * tiff.c: minor fix -Yosh
This commit is contained in:
@ -39,6 +39,9 @@
|
|||||||
#undef RETSIGTYPE
|
#undef RETSIGTYPE
|
||||||
#undef TIME_WITH_SYS_TIME
|
#undef TIME_WITH_SYS_TIME
|
||||||
|
|
||||||
|
#undef RAND_FUNC
|
||||||
|
#undef SRAND_FUNC
|
||||||
|
|
||||||
/* #undef PACKAGE */
|
/* #undef PACKAGE */
|
||||||
/* #undef VERSION */
|
/* #undef VERSION */
|
||||||
|
|
||||||
|
@ -27,9 +27,6 @@
|
|||||||
/* Define if you can safely include both <sys/time.h> and <time.h>. */
|
/* Define if you can safely include both <sys/time.h> and <time.h>. */
|
||||||
#undef TIME_WITH_SYS_TIME
|
#undef TIME_WITH_SYS_TIME
|
||||||
|
|
||||||
/* Define if the X Window System is missing or not being used. */
|
|
||||||
#undef X_DISPLAY_MISSING
|
|
||||||
|
|
||||||
#undef HAVE_DIRENT_H
|
#undef HAVE_DIRENT_H
|
||||||
#undef HAVE_DOPRNT
|
#undef HAVE_DOPRNT
|
||||||
#undef HAVE_IPC_H
|
#undef HAVE_IPC_H
|
||||||
@ -50,6 +47,9 @@
|
|||||||
#undef RETSIGTYPE
|
#undef RETSIGTYPE
|
||||||
#undef TIME_WITH_SYS_TIME
|
#undef TIME_WITH_SYS_TIME
|
||||||
|
|
||||||
|
#undef RAND_FUNC
|
||||||
|
#undef SRAND_FUNC
|
||||||
|
|
||||||
/* #undef PACKAGE */
|
/* #undef PACKAGE */
|
||||||
/* #undef VERSION */
|
/* #undef VERSION */
|
||||||
|
|
||||||
|
@ -215,6 +215,13 @@ fi
|
|||||||
dnl TVM: check for compiler characteristics
|
dnl TVM: check for compiler characteristics
|
||||||
AC_C_INLINE
|
AC_C_INLINE
|
||||||
|
|
||||||
|
dnl Check for random number functions
|
||||||
|
AC_CHECK_FUNC(random,
|
||||||
|
AC_DEFINE(RAND_FUNC, random) AC_DEFINE(SRAND_FUNC, srandom),
|
||||||
|
AC_CHECK_FUNC(lrand48,
|
||||||
|
AC_DEFINE(RAND_FUNC, lrand48) AC_DEFINE(SRAND_FUNC, srand48),
|
||||||
|
AC_DEFINE(RAND_FUNC, rand) AC_DEFINE(SRAND_FUNC, srand)))
|
||||||
|
|
||||||
CFLAGS="$gimp_save_CFLAGS"
|
CFLAGS="$gimp_save_CFLAGS"
|
||||||
LIBS="$gimp_save_LIBS"
|
LIBS="$gimp_save_LIBS"
|
||||||
|
|
||||||
|
@ -47,7 +47,6 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
GtkWidget *hbox,*searchhbox,*vbox;
|
GtkWidget *hbox,*searchhbox,*vbox;
|
||||||
GtkWidget *label;
|
GtkWidget *label;
|
||||||
GtkWidget *list_scroll;
|
|
||||||
|
|
||||||
dbbrowser = (gpointer)malloc(sizeof(dbbrowser_t));
|
dbbrowser = (gpointer)malloc(sizeof(dbbrowser_t));
|
||||||
|
|
||||||
@ -80,22 +79,16 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
/* list : list in a scrolled_win */
|
/* list : list in a scrolled_win */
|
||||||
|
|
||||||
list_scroll = gtk_scrolled_window_new (NULL, NULL);
|
dbbrowser->clist = gtk_clist_new(1);
|
||||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (list_scroll),
|
gtk_clist_set_selection_mode (GTK_CLIST (dbbrowser->clist),
|
||||||
GTK_POLICY_AUTOMATIC,
|
GTK_SELECTION_BROWSE);
|
||||||
GTK_POLICY_ALWAYS);
|
gtk_widget_set_usize(dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (dbbrowser->clist), "select_row",
|
||||||
|
(GtkSignalFunc) procedure_select_callback,
|
||||||
|
dbbrowser);
|
||||||
gtk_box_pack_start (GTK_BOX (vbox),
|
gtk_box_pack_start (GTK_BOX (vbox),
|
||||||
list_scroll, TRUE, TRUE, 0);
|
dbbrowser->clist, TRUE, TRUE, 0);
|
||||||
gtk_widget_set_usize(list_scroll, DBL_LIST_WIDTH, DBL_HEIGHT);
|
gtk_widget_show(dbbrowser->clist);
|
||||||
gtk_widget_show(list_scroll);
|
|
||||||
|
|
||||||
dbbrowser->list = gtk_list_new();
|
|
||||||
gtk_list_set_selection_mode (GTK_LIST (dbbrowser->list),
|
|
||||||
GTK_SELECTION_BROWSE);
|
|
||||||
gtk_signal_connect (GTK_OBJECT (dbbrowser->list), "button_press_event",
|
|
||||||
(GtkSignalFunc) dialog_list_button, dbbrowser);
|
|
||||||
gtk_container_add (GTK_CONTAINER (list_scroll), dbbrowser->list);
|
|
||||||
gtk_widget_show(dbbrowser->list);
|
|
||||||
|
|
||||||
/* search entry */
|
/* search entry */
|
||||||
|
|
||||||
@ -168,7 +161,7 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
/* now build the list */
|
/* now build the list */
|
||||||
|
|
||||||
gtk_widget_show (dbbrowser->list);
|
gtk_widget_show (dbbrowser->clist);
|
||||||
gtk_widget_show (dbbrowser->dlg);
|
gtk_widget_show (dbbrowser->dlg);
|
||||||
|
|
||||||
/* initialize the "return" value (for "apply") */
|
/* initialize the "return" value (for "apply") */
|
||||||
@ -195,39 +188,27 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
dialog_list_button (GtkWidget *widget,
|
procedure_select_callback (GtkWidget *widget,
|
||||||
GdkEventButton *event,
|
gint row,
|
||||||
gpointer data)
|
gint column,
|
||||||
|
GdkEventButton * bevent,
|
||||||
|
gpointer data)
|
||||||
{
|
{
|
||||||
|
gchar *text, *temp;
|
||||||
dbbrowser_t *dbbrowser = data;
|
dbbrowser_t *dbbrowser = data;
|
||||||
GtkWidget *event_widget;
|
|
||||||
gchar *proc_name;
|
|
||||||
|
|
||||||
g_return_val_if_fail (widget != NULL, FALSE);
|
g_return_val_if_fail (widget != NULL, FALSE);
|
||||||
g_return_val_if_fail (event != NULL, FALSE);
|
// g_return_val_if_fail (bevent != NULL, FALSE);
|
||||||
g_return_val_if_fail (dbbrowser != NULL, FALSE);
|
g_return_val_if_fail (dbbrowser != NULL, FALSE);
|
||||||
|
|
||||||
event_widget = gtk_get_event_widget ((GdkEvent*) event);
|
|
||||||
if (GTK_IS_LIST_ITEM (event_widget))
|
|
||||||
{
|
|
||||||
switch (event->type)
|
|
||||||
{
|
|
||||||
case GDK_BUTTON_PRESS:
|
|
||||||
proc_name = gtk_object_get_user_data (GTK_OBJECT (event_widget));
|
|
||||||
/* gtk_widget_grab_focus (fs->selection_entry); */
|
|
||||||
dialog_select (dbbrowser, proc_name);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GDK_2BUTTON_PRESS:
|
if (gtk_clist_get_text (GTK_CLIST (widget), row, column, &temp)) {
|
||||||
if (dbbrowser->apply_callback) {}
|
text = g_strdup(temp);
|
||||||
/* gtk_button_clicked (GTK_BUTTON (fs->ok_button)); */
|
|
||||||
break;
|
unconvert_string(text);
|
||||||
|
|
||||||
default:
|
dialog_select (dbbrowser, text);
|
||||||
break;
|
g_free(text);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -456,7 +437,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
|||||||
gtk_widget_show(label);
|
gtk_widget_show(label);
|
||||||
row++;
|
row++;
|
||||||
|
|
||||||
/* TODO
|
/*
|
||||||
label = gtk_label_new("Help :");
|
label = gtk_label_new("Help :");
|
||||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||||
@ -464,8 +445,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
|||||||
GTK_FILL, GTK_FILL, 3, 0);
|
GTK_FILL, GTK_FILL, 3, 0);
|
||||||
gtk_widget_show(label);
|
gtk_widget_show(label);
|
||||||
|
|
||||||
insert help here
|
TODO: Add help */
|
||||||
but gtk_text seems bugggggggyyy */
|
|
||||||
|
|
||||||
if (old_table) gtk_widget_destroy(old_table);
|
if (old_table) gtk_widget_destroy(old_table);
|
||||||
|
|
||||||
@ -480,7 +460,7 @@ dialog_close_callback (GtkWidget *widget,
|
|||||||
/* end of the dialog */
|
/* end of the dialog */
|
||||||
{
|
{
|
||||||
dbbrowser_t* dbbrowser = data;
|
dbbrowser_t* dbbrowser = data;
|
||||||
|
|
||||||
if (dbbrowser->apply_callback) {
|
if (dbbrowser->apply_callback) {
|
||||||
/* we are called by another application : just kill the dialog box */
|
/* we are called by another application : just kill the dialog box */
|
||||||
gtk_widget_hide(dbbrowser->dlg);
|
gtk_widget_hide(dbbrowser->dlg);
|
||||||
@ -514,16 +494,6 @@ dialog_apply_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
dialog_selection_free_filename (GtkWidget *widget,
|
|
||||||
gpointer client_data)
|
|
||||||
{
|
|
||||||
g_return_if_fail (widget != NULL);
|
|
||||||
|
|
||||||
g_free (gtk_object_get_user_data (GTK_OBJECT (widget)));
|
|
||||||
gtk_object_set_user_data (GTK_OBJECT (widget), NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dialog_search_callback (GtkWidget *widget,
|
dialog_search_callback (GtkWidget *widget,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
@ -532,11 +502,9 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
char **proc_list;
|
char **proc_list;
|
||||||
int num_procs;
|
int num_procs;
|
||||||
dbbrowser_t* dbbrowser = data;
|
dbbrowser_t* dbbrowser = data;
|
||||||
GList *procs_list = NULL;
|
|
||||||
|
|
||||||
if (GTK_LIST(dbbrowser->list)->children)
|
gtk_clist_freeze(GTK_CLIST(dbbrowser->clist));
|
||||||
gtk_list_remove_items( GTK_LIST(dbbrowser->list),
|
gtk_clist_clear(GTK_CLIST(dbbrowser->clist));
|
||||||
GTK_LIST(dbbrowser->list)->children);
|
|
||||||
|
|
||||||
/* search */
|
/* search */
|
||||||
|
|
||||||
@ -565,14 +533,12 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (num_procs != 0) {
|
if (num_procs != 0) {
|
||||||
GtkWidget* list_item;
|
|
||||||
gchar *insert_name, *label_name;
|
gchar *insert_name, *label_name;
|
||||||
int i,j,savej;
|
int i,j,savej;
|
||||||
|
|
||||||
for (i = 0; i < num_procs ; i++) {
|
for (i = 0; i < num_procs ; i++) {
|
||||||
|
|
||||||
/* sort the list step by step */
|
/* sort the list step by step */
|
||||||
|
|
||||||
insert_name=g_strdup(proc_list[0]); savej=0;
|
insert_name=g_strdup(proc_list[0]); savej=0;
|
||||||
for (j = 0; j < num_procs ; j++) {
|
for (j = 0; j < num_procs ; j++) {
|
||||||
if (strcmp(proc_list[j],insert_name)<0) {
|
if (strcmp(proc_list[j],insert_name)<0) {
|
||||||
@ -586,12 +552,7 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
|
|
||||||
label_name = g_strdup( insert_name );
|
label_name = g_strdup( insert_name );
|
||||||
convert_string( label_name );
|
convert_string( label_name );
|
||||||
|
gtk_clist_append (GTK_CLIST (dbbrowser->clist), &label_name);
|
||||||
list_item = gtk_list_item_new_with_label ( label_name );
|
|
||||||
gtk_object_set_user_data (GTK_OBJECT (list_item), insert_name );
|
|
||||||
gtk_widget_show ( list_item );
|
|
||||||
|
|
||||||
procs_list = g_list_append (procs_list, list_item );
|
|
||||||
|
|
||||||
if (i==0) dialog_select( dbbrowser , insert_name );
|
if (i==0) dialog_select( dbbrowser , insert_name );
|
||||||
|
|
||||||
@ -599,20 +560,15 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( dbbrowser->list ) {
|
if ( dbbrowser->clist ) {
|
||||||
gtk_container_foreach (GTK_CONTAINER (dbbrowser->list),
|
;
|
||||||
dialog_selection_free_filename, NULL);
|
|
||||||
gtk_list_clear_items (GTK_LIST (dbbrowser->list), 0, -1);
|
|
||||||
|
|
||||||
if (procs_list)
|
|
||||||
gtk_list_append_items (GTK_LIST (dbbrowser->list),
|
|
||||||
procs_list);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free( proc_list );
|
g_free( proc_list );
|
||||||
|
|
||||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
||||||
"DB Browser");
|
"DB Browser");
|
||||||
|
gtk_clist_thaw(GTK_CLIST(dbbrowser->clist));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -628,6 +584,16 @@ convert_string (char *str)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
unconvert_string (char *str)
|
||||||
|
{
|
||||||
|
while (*str)
|
||||||
|
{
|
||||||
|
if (*str == '-') *str = '_';
|
||||||
|
str++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static char*
|
static char*
|
||||||
GParamType2char(GParamType t)
|
GParamType2char(GParamType t)
|
||||||
{
|
{
|
||||||
|
@ -47,7 +47,6 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
GtkWidget *hbox,*searchhbox,*vbox;
|
GtkWidget *hbox,*searchhbox,*vbox;
|
||||||
GtkWidget *label;
|
GtkWidget *label;
|
||||||
GtkWidget *list_scroll;
|
|
||||||
|
|
||||||
dbbrowser = (gpointer)malloc(sizeof(dbbrowser_t));
|
dbbrowser = (gpointer)malloc(sizeof(dbbrowser_t));
|
||||||
|
|
||||||
@ -80,22 +79,16 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
/* list : list in a scrolled_win */
|
/* list : list in a scrolled_win */
|
||||||
|
|
||||||
list_scroll = gtk_scrolled_window_new (NULL, NULL);
|
dbbrowser->clist = gtk_clist_new(1);
|
||||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (list_scroll),
|
gtk_clist_set_selection_mode (GTK_CLIST (dbbrowser->clist),
|
||||||
GTK_POLICY_AUTOMATIC,
|
GTK_SELECTION_BROWSE);
|
||||||
GTK_POLICY_ALWAYS);
|
gtk_widget_set_usize(dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (dbbrowser->clist), "select_row",
|
||||||
|
(GtkSignalFunc) procedure_select_callback,
|
||||||
|
dbbrowser);
|
||||||
gtk_box_pack_start (GTK_BOX (vbox),
|
gtk_box_pack_start (GTK_BOX (vbox),
|
||||||
list_scroll, TRUE, TRUE, 0);
|
dbbrowser->clist, TRUE, TRUE, 0);
|
||||||
gtk_widget_set_usize(list_scroll, DBL_LIST_WIDTH, DBL_HEIGHT);
|
gtk_widget_show(dbbrowser->clist);
|
||||||
gtk_widget_show(list_scroll);
|
|
||||||
|
|
||||||
dbbrowser->list = gtk_list_new();
|
|
||||||
gtk_list_set_selection_mode (GTK_LIST (dbbrowser->list),
|
|
||||||
GTK_SELECTION_BROWSE);
|
|
||||||
gtk_signal_connect (GTK_OBJECT (dbbrowser->list), "button_press_event",
|
|
||||||
(GtkSignalFunc) dialog_list_button, dbbrowser);
|
|
||||||
gtk_container_add (GTK_CONTAINER (list_scroll), dbbrowser->list);
|
|
||||||
gtk_widget_show(dbbrowser->list);
|
|
||||||
|
|
||||||
/* search entry */
|
/* search entry */
|
||||||
|
|
||||||
@ -168,7 +161,7 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
/* now build the list */
|
/* now build the list */
|
||||||
|
|
||||||
gtk_widget_show (dbbrowser->list);
|
gtk_widget_show (dbbrowser->clist);
|
||||||
gtk_widget_show (dbbrowser->dlg);
|
gtk_widget_show (dbbrowser->dlg);
|
||||||
|
|
||||||
/* initialize the "return" value (for "apply") */
|
/* initialize the "return" value (for "apply") */
|
||||||
@ -195,39 +188,27 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
dialog_list_button (GtkWidget *widget,
|
procedure_select_callback (GtkWidget *widget,
|
||||||
GdkEventButton *event,
|
gint row,
|
||||||
gpointer data)
|
gint column,
|
||||||
|
GdkEventButton * bevent,
|
||||||
|
gpointer data)
|
||||||
{
|
{
|
||||||
|
gchar *text, *temp;
|
||||||
dbbrowser_t *dbbrowser = data;
|
dbbrowser_t *dbbrowser = data;
|
||||||
GtkWidget *event_widget;
|
|
||||||
gchar *proc_name;
|
|
||||||
|
|
||||||
g_return_val_if_fail (widget != NULL, FALSE);
|
g_return_val_if_fail (widget != NULL, FALSE);
|
||||||
g_return_val_if_fail (event != NULL, FALSE);
|
// g_return_val_if_fail (bevent != NULL, FALSE);
|
||||||
g_return_val_if_fail (dbbrowser != NULL, FALSE);
|
g_return_val_if_fail (dbbrowser != NULL, FALSE);
|
||||||
|
|
||||||
event_widget = gtk_get_event_widget ((GdkEvent*) event);
|
|
||||||
if (GTK_IS_LIST_ITEM (event_widget))
|
|
||||||
{
|
|
||||||
switch (event->type)
|
|
||||||
{
|
|
||||||
case GDK_BUTTON_PRESS:
|
|
||||||
proc_name = gtk_object_get_user_data (GTK_OBJECT (event_widget));
|
|
||||||
/* gtk_widget_grab_focus (fs->selection_entry); */
|
|
||||||
dialog_select (dbbrowser, proc_name);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GDK_2BUTTON_PRESS:
|
if (gtk_clist_get_text (GTK_CLIST (widget), row, column, &temp)) {
|
||||||
if (dbbrowser->apply_callback) {}
|
text = g_strdup(temp);
|
||||||
/* gtk_button_clicked (GTK_BUTTON (fs->ok_button)); */
|
|
||||||
break;
|
unconvert_string(text);
|
||||||
|
|
||||||
default:
|
dialog_select (dbbrowser, text);
|
||||||
break;
|
g_free(text);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -456,7 +437,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
|||||||
gtk_widget_show(label);
|
gtk_widget_show(label);
|
||||||
row++;
|
row++;
|
||||||
|
|
||||||
/* TODO
|
/*
|
||||||
label = gtk_label_new("Help :");
|
label = gtk_label_new("Help :");
|
||||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||||
@ -464,8 +445,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
|||||||
GTK_FILL, GTK_FILL, 3, 0);
|
GTK_FILL, GTK_FILL, 3, 0);
|
||||||
gtk_widget_show(label);
|
gtk_widget_show(label);
|
||||||
|
|
||||||
insert help here
|
TODO: Add help */
|
||||||
but gtk_text seems bugggggggyyy */
|
|
||||||
|
|
||||||
if (old_table) gtk_widget_destroy(old_table);
|
if (old_table) gtk_widget_destroy(old_table);
|
||||||
|
|
||||||
@ -480,7 +460,7 @@ dialog_close_callback (GtkWidget *widget,
|
|||||||
/* end of the dialog */
|
/* end of the dialog */
|
||||||
{
|
{
|
||||||
dbbrowser_t* dbbrowser = data;
|
dbbrowser_t* dbbrowser = data;
|
||||||
|
|
||||||
if (dbbrowser->apply_callback) {
|
if (dbbrowser->apply_callback) {
|
||||||
/* we are called by another application : just kill the dialog box */
|
/* we are called by another application : just kill the dialog box */
|
||||||
gtk_widget_hide(dbbrowser->dlg);
|
gtk_widget_hide(dbbrowser->dlg);
|
||||||
@ -514,16 +494,6 @@ dialog_apply_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
dialog_selection_free_filename (GtkWidget *widget,
|
|
||||||
gpointer client_data)
|
|
||||||
{
|
|
||||||
g_return_if_fail (widget != NULL);
|
|
||||||
|
|
||||||
g_free (gtk_object_get_user_data (GTK_OBJECT (widget)));
|
|
||||||
gtk_object_set_user_data (GTK_OBJECT (widget), NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dialog_search_callback (GtkWidget *widget,
|
dialog_search_callback (GtkWidget *widget,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
@ -532,11 +502,9 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
char **proc_list;
|
char **proc_list;
|
||||||
int num_procs;
|
int num_procs;
|
||||||
dbbrowser_t* dbbrowser = data;
|
dbbrowser_t* dbbrowser = data;
|
||||||
GList *procs_list = NULL;
|
|
||||||
|
|
||||||
if (GTK_LIST(dbbrowser->list)->children)
|
gtk_clist_freeze(GTK_CLIST(dbbrowser->clist));
|
||||||
gtk_list_remove_items( GTK_LIST(dbbrowser->list),
|
gtk_clist_clear(GTK_CLIST(dbbrowser->clist));
|
||||||
GTK_LIST(dbbrowser->list)->children);
|
|
||||||
|
|
||||||
/* search */
|
/* search */
|
||||||
|
|
||||||
@ -565,14 +533,12 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (num_procs != 0) {
|
if (num_procs != 0) {
|
||||||
GtkWidget* list_item;
|
|
||||||
gchar *insert_name, *label_name;
|
gchar *insert_name, *label_name;
|
||||||
int i,j,savej;
|
int i,j,savej;
|
||||||
|
|
||||||
for (i = 0; i < num_procs ; i++) {
|
for (i = 0; i < num_procs ; i++) {
|
||||||
|
|
||||||
/* sort the list step by step */
|
/* sort the list step by step */
|
||||||
|
|
||||||
insert_name=g_strdup(proc_list[0]); savej=0;
|
insert_name=g_strdup(proc_list[0]); savej=0;
|
||||||
for (j = 0; j < num_procs ; j++) {
|
for (j = 0; j < num_procs ; j++) {
|
||||||
if (strcmp(proc_list[j],insert_name)<0) {
|
if (strcmp(proc_list[j],insert_name)<0) {
|
||||||
@ -586,12 +552,7 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
|
|
||||||
label_name = g_strdup( insert_name );
|
label_name = g_strdup( insert_name );
|
||||||
convert_string( label_name );
|
convert_string( label_name );
|
||||||
|
gtk_clist_append (GTK_CLIST (dbbrowser->clist), &label_name);
|
||||||
list_item = gtk_list_item_new_with_label ( label_name );
|
|
||||||
gtk_object_set_user_data (GTK_OBJECT (list_item), insert_name );
|
|
||||||
gtk_widget_show ( list_item );
|
|
||||||
|
|
||||||
procs_list = g_list_append (procs_list, list_item );
|
|
||||||
|
|
||||||
if (i==0) dialog_select( dbbrowser , insert_name );
|
if (i==0) dialog_select( dbbrowser , insert_name );
|
||||||
|
|
||||||
@ -599,20 +560,15 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( dbbrowser->list ) {
|
if ( dbbrowser->clist ) {
|
||||||
gtk_container_foreach (GTK_CONTAINER (dbbrowser->list),
|
;
|
||||||
dialog_selection_free_filename, NULL);
|
|
||||||
gtk_list_clear_items (GTK_LIST (dbbrowser->list), 0, -1);
|
|
||||||
|
|
||||||
if (procs_list)
|
|
||||||
gtk_list_append_items (GTK_LIST (dbbrowser->list),
|
|
||||||
procs_list);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free( proc_list );
|
g_free( proc_list );
|
||||||
|
|
||||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
||||||
"DB Browser");
|
"DB Browser");
|
||||||
|
gtk_clist_thaw(GTK_CLIST(dbbrowser->clist));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -628,6 +584,16 @@ convert_string (char *str)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
unconvert_string (char *str)
|
||||||
|
{
|
||||||
|
while (*str)
|
||||||
|
{
|
||||||
|
if (*str == '-') *str = '_';
|
||||||
|
str++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static char*
|
static char*
|
||||||
GParamType2char(GParamType t)
|
GParamType2char(GParamType t)
|
||||||
{
|
{
|
||||||
|
@ -52,6 +52,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <time.h> /* For random seeding */
|
||||||
#include "gtk/gtk.h"
|
#include "gtk/gtk.h"
|
||||||
#include "libgimp/gimp.h"
|
#include "libgimp/gimp.h"
|
||||||
#include "libgimp/gimpui.h"
|
#include "libgimp/gimpui.h"
|
||||||
@ -66,6 +67,8 @@
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
gint seed;
|
gint seed;
|
||||||
gdouble turbulence;
|
gdouble turbulence;
|
||||||
|
/* Interface only */
|
||||||
|
gboolean timeseed;
|
||||||
} PlasmaValues;
|
} PlasmaValues;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -92,7 +95,7 @@ static void plasma_entry_callback (GtkWidget *widget,
|
|||||||
gpointer data);
|
gpointer data);
|
||||||
static void plasma_scale_update (GtkAdjustment *adjustment,
|
static void plasma_scale_update (GtkAdjustment *adjustment,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
|
static void toggle_callback (GtkWidget *widget, gboolean *data);
|
||||||
static void plasma (GDrawable *drawable);
|
static void plasma (GDrawable *drawable);
|
||||||
static void random_rgb (guchar *d);
|
static void random_rgb (guchar *d);
|
||||||
static void add_random (guchar *d, gint amnt);
|
static void add_random (guchar *d, gint amnt);
|
||||||
@ -117,7 +120,8 @@ GPlugInInfo PLUG_IN_INFO =
|
|||||||
static PlasmaValues pvals =
|
static PlasmaValues pvals =
|
||||||
{
|
{
|
||||||
0, /* seed */
|
0, /* seed */
|
||||||
1.0 /* turbulence */
|
1.0, /* turbulence */
|
||||||
|
TRUE /* Time seed? */
|
||||||
};
|
};
|
||||||
|
|
||||||
static PlasmaInterface pint =
|
static PlasmaInterface pint =
|
||||||
@ -231,7 +235,8 @@ run (gchar *name,
|
|||||||
gimp_displays_flush ();
|
gimp_displays_flush ();
|
||||||
|
|
||||||
/* Store data */
|
/* Store data */
|
||||||
if (run_mode == RUN_INTERACTIVE)
|
if (run_mode == RUN_INTERACTIVE ||
|
||||||
|
(pvals.timeseed && run_mode == RUN_WITH_LAST_VALS))
|
||||||
gimp_set_data ("plug_in_plasma", &pvals, sizeof (PlasmaValues));
|
gimp_set_data ("plug_in_plasma", &pvals, sizeof (PlasmaValues));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -255,6 +260,8 @@ plasma_dialog()
|
|||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
GtkWidget *label;
|
GtkWidget *label;
|
||||||
GtkWidget *entry;
|
GtkWidget *entry;
|
||||||
|
GtkWidget *seed_hbox;
|
||||||
|
GtkWidget *time_button;
|
||||||
GtkWidget *scale;
|
GtkWidget *scale;
|
||||||
GtkObject *scale_data;
|
GtkObject *scale_data;
|
||||||
gchar **argv;
|
gchar **argv;
|
||||||
@ -306,8 +313,14 @@ plasma_dialog()
|
|||||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||||
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, 0, 5, 0 );
|
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, 0, 5, 0 );
|
||||||
gtk_widget_show (label);
|
gtk_widget_show (label);
|
||||||
|
|
||||||
|
seed_hbox = gtk_hbox_new(FALSE, 2);
|
||||||
|
gtk_table_attach (GTK_TABLE (table), seed_hbox, 1, 2, 0, 1,
|
||||||
|
GTK_FILL, GTK_FILL, 0, 0 );
|
||||||
|
gtk_widget_show (seed_hbox);
|
||||||
|
|
||||||
entry = gtk_entry_new ();
|
entry = gtk_entry_new ();
|
||||||
gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 0, 1, GTK_FILL, GTK_FILL, 0, 0 );
|
gtk_box_pack_start(GTK_BOX(seed_hbox), entry, TRUE, TRUE, 0);
|
||||||
gtk_widget_set_usize( entry, ENTRY_WIDTH, 0 );
|
gtk_widget_set_usize( entry, ENTRY_WIDTH, 0 );
|
||||||
sprintf( (char *)buffer, "%d", pvals.seed );
|
sprintf( (char *)buffer, "%d", pvals.seed );
|
||||||
gtk_entry_set_text (GTK_ENTRY (entry), (gchar *)buffer );
|
gtk_entry_set_text (GTK_ENTRY (entry), (gchar *)buffer );
|
||||||
@ -316,6 +329,15 @@ plasma_dialog()
|
|||||||
&pvals.seed);
|
&pvals.seed);
|
||||||
gtk_widget_show (entry);
|
gtk_widget_show (entry);
|
||||||
|
|
||||||
|
time_button = gtk_toggle_button_new_with_label ("Time");
|
||||||
|
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(time_button),pvals.timeseed);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (time_button), "clicked",
|
||||||
|
(GtkSignalFunc) toggle_callback,
|
||||||
|
&pvals.timeseed);
|
||||||
|
gtk_box_pack_end (GTK_BOX (seed_hbox), time_button, FALSE, FALSE, 0);
|
||||||
|
gtk_widget_show (time_button);
|
||||||
|
gtk_widget_show (seed_hbox);
|
||||||
|
|
||||||
label = gtk_label_new ("Turbulence");
|
label = gtk_label_new ("Turbulence");
|
||||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||||
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, 0, 5, 0);
|
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, 0, 5, 0);
|
||||||
@ -382,7 +404,11 @@ plasma_scale_update (GtkAdjustment *adjustment,
|
|||||||
*dptr = adjustment->value;
|
*dptr = adjustment->value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
toggle_callback (GtkWidget *widget, gboolean *data)
|
||||||
|
{
|
||||||
|
*data = GTK_TOGGLE_BUTTON (widget)->active;
|
||||||
|
}
|
||||||
|
|
||||||
#define AVE(n, v1, v2) n[0] = ((gint)v1[0] + (gint)v2[0]) / 2;\
|
#define AVE(n, v1, v2) n[0] = ((gint)v1[0] + (gint)v2[0]) / 2;\
|
||||||
n[1] = ((gint)v1[1] + (gint)v2[1]) / 2;\
|
n[1] = ((gint)v1[1] + (gint)v2[1]) / 2;\
|
||||||
@ -433,6 +459,9 @@ plasma(GDrawable *drawable)
|
|||||||
static void
|
static void
|
||||||
init_plasma( GDrawable *drawable )
|
init_plasma( GDrawable *drawable )
|
||||||
{
|
{
|
||||||
|
if (pvals.timeseed)
|
||||||
|
pvals.seed = time(NULL);
|
||||||
|
|
||||||
srand( pvals.seed );
|
srand( pvals.seed );
|
||||||
turbulence = pvals.turbulence;
|
turbulence = pvals.turbulence;
|
||||||
|
|
||||||
|
@ -47,7 +47,6 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
GtkWidget *hbox,*searchhbox,*vbox;
|
GtkWidget *hbox,*searchhbox,*vbox;
|
||||||
GtkWidget *label;
|
GtkWidget *label;
|
||||||
GtkWidget *list_scroll;
|
|
||||||
|
|
||||||
dbbrowser = (gpointer)malloc(sizeof(dbbrowser_t));
|
dbbrowser = (gpointer)malloc(sizeof(dbbrowser_t));
|
||||||
|
|
||||||
@ -80,22 +79,16 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
/* list : list in a scrolled_win */
|
/* list : list in a scrolled_win */
|
||||||
|
|
||||||
list_scroll = gtk_scrolled_window_new (NULL, NULL);
|
dbbrowser->clist = gtk_clist_new(1);
|
||||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (list_scroll),
|
gtk_clist_set_selection_mode (GTK_CLIST (dbbrowser->clist),
|
||||||
GTK_POLICY_AUTOMATIC,
|
GTK_SELECTION_BROWSE);
|
||||||
GTK_POLICY_ALWAYS);
|
gtk_widget_set_usize(dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (dbbrowser->clist), "select_row",
|
||||||
|
(GtkSignalFunc) procedure_select_callback,
|
||||||
|
dbbrowser);
|
||||||
gtk_box_pack_start (GTK_BOX (vbox),
|
gtk_box_pack_start (GTK_BOX (vbox),
|
||||||
list_scroll, TRUE, TRUE, 0);
|
dbbrowser->clist, TRUE, TRUE, 0);
|
||||||
gtk_widget_set_usize(list_scroll, DBL_LIST_WIDTH, DBL_HEIGHT);
|
gtk_widget_show(dbbrowser->clist);
|
||||||
gtk_widget_show(list_scroll);
|
|
||||||
|
|
||||||
dbbrowser->list = gtk_list_new();
|
|
||||||
gtk_list_set_selection_mode (GTK_LIST (dbbrowser->list),
|
|
||||||
GTK_SELECTION_BROWSE);
|
|
||||||
gtk_signal_connect (GTK_OBJECT (dbbrowser->list), "button_press_event",
|
|
||||||
(GtkSignalFunc) dialog_list_button, dbbrowser);
|
|
||||||
gtk_container_add (GTK_CONTAINER (list_scroll), dbbrowser->list);
|
|
||||||
gtk_widget_show(dbbrowser->list);
|
|
||||||
|
|
||||||
/* search entry */
|
/* search entry */
|
||||||
|
|
||||||
@ -168,7 +161,7 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
/* now build the list */
|
/* now build the list */
|
||||||
|
|
||||||
gtk_widget_show (dbbrowser->list);
|
gtk_widget_show (dbbrowser->clist);
|
||||||
gtk_widget_show (dbbrowser->dlg);
|
gtk_widget_show (dbbrowser->dlg);
|
||||||
|
|
||||||
/* initialize the "return" value (for "apply") */
|
/* initialize the "return" value (for "apply") */
|
||||||
@ -195,39 +188,27 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
dialog_list_button (GtkWidget *widget,
|
procedure_select_callback (GtkWidget *widget,
|
||||||
GdkEventButton *event,
|
gint row,
|
||||||
gpointer data)
|
gint column,
|
||||||
|
GdkEventButton * bevent,
|
||||||
|
gpointer data)
|
||||||
{
|
{
|
||||||
|
gchar *text, *temp;
|
||||||
dbbrowser_t *dbbrowser = data;
|
dbbrowser_t *dbbrowser = data;
|
||||||
GtkWidget *event_widget;
|
|
||||||
gchar *proc_name;
|
|
||||||
|
|
||||||
g_return_val_if_fail (widget != NULL, FALSE);
|
g_return_val_if_fail (widget != NULL, FALSE);
|
||||||
g_return_val_if_fail (event != NULL, FALSE);
|
// g_return_val_if_fail (bevent != NULL, FALSE);
|
||||||
g_return_val_if_fail (dbbrowser != NULL, FALSE);
|
g_return_val_if_fail (dbbrowser != NULL, FALSE);
|
||||||
|
|
||||||
event_widget = gtk_get_event_widget ((GdkEvent*) event);
|
|
||||||
if (GTK_IS_LIST_ITEM (event_widget))
|
|
||||||
{
|
|
||||||
switch (event->type)
|
|
||||||
{
|
|
||||||
case GDK_BUTTON_PRESS:
|
|
||||||
proc_name = gtk_object_get_user_data (GTK_OBJECT (event_widget));
|
|
||||||
/* gtk_widget_grab_focus (fs->selection_entry); */
|
|
||||||
dialog_select (dbbrowser, proc_name);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GDK_2BUTTON_PRESS:
|
if (gtk_clist_get_text (GTK_CLIST (widget), row, column, &temp)) {
|
||||||
if (dbbrowser->apply_callback) {}
|
text = g_strdup(temp);
|
||||||
/* gtk_button_clicked (GTK_BUTTON (fs->ok_button)); */
|
|
||||||
break;
|
unconvert_string(text);
|
||||||
|
|
||||||
default:
|
dialog_select (dbbrowser, text);
|
||||||
break;
|
g_free(text);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -456,7 +437,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
|||||||
gtk_widget_show(label);
|
gtk_widget_show(label);
|
||||||
row++;
|
row++;
|
||||||
|
|
||||||
/* TODO
|
/*
|
||||||
label = gtk_label_new("Help :");
|
label = gtk_label_new("Help :");
|
||||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||||
@ -464,8 +445,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
|||||||
GTK_FILL, GTK_FILL, 3, 0);
|
GTK_FILL, GTK_FILL, 3, 0);
|
||||||
gtk_widget_show(label);
|
gtk_widget_show(label);
|
||||||
|
|
||||||
insert help here
|
TODO: Add help */
|
||||||
but gtk_text seems bugggggggyyy */
|
|
||||||
|
|
||||||
if (old_table) gtk_widget_destroy(old_table);
|
if (old_table) gtk_widget_destroy(old_table);
|
||||||
|
|
||||||
@ -480,7 +460,7 @@ dialog_close_callback (GtkWidget *widget,
|
|||||||
/* end of the dialog */
|
/* end of the dialog */
|
||||||
{
|
{
|
||||||
dbbrowser_t* dbbrowser = data;
|
dbbrowser_t* dbbrowser = data;
|
||||||
|
|
||||||
if (dbbrowser->apply_callback) {
|
if (dbbrowser->apply_callback) {
|
||||||
/* we are called by another application : just kill the dialog box */
|
/* we are called by another application : just kill the dialog box */
|
||||||
gtk_widget_hide(dbbrowser->dlg);
|
gtk_widget_hide(dbbrowser->dlg);
|
||||||
@ -514,16 +494,6 @@ dialog_apply_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
dialog_selection_free_filename (GtkWidget *widget,
|
|
||||||
gpointer client_data)
|
|
||||||
{
|
|
||||||
g_return_if_fail (widget != NULL);
|
|
||||||
|
|
||||||
g_free (gtk_object_get_user_data (GTK_OBJECT (widget)));
|
|
||||||
gtk_object_set_user_data (GTK_OBJECT (widget), NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dialog_search_callback (GtkWidget *widget,
|
dialog_search_callback (GtkWidget *widget,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
@ -532,11 +502,9 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
char **proc_list;
|
char **proc_list;
|
||||||
int num_procs;
|
int num_procs;
|
||||||
dbbrowser_t* dbbrowser = data;
|
dbbrowser_t* dbbrowser = data;
|
||||||
GList *procs_list = NULL;
|
|
||||||
|
|
||||||
if (GTK_LIST(dbbrowser->list)->children)
|
gtk_clist_freeze(GTK_CLIST(dbbrowser->clist));
|
||||||
gtk_list_remove_items( GTK_LIST(dbbrowser->list),
|
gtk_clist_clear(GTK_CLIST(dbbrowser->clist));
|
||||||
GTK_LIST(dbbrowser->list)->children);
|
|
||||||
|
|
||||||
/* search */
|
/* search */
|
||||||
|
|
||||||
@ -565,14 +533,12 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (num_procs != 0) {
|
if (num_procs != 0) {
|
||||||
GtkWidget* list_item;
|
|
||||||
gchar *insert_name, *label_name;
|
gchar *insert_name, *label_name;
|
||||||
int i,j,savej;
|
int i,j,savej;
|
||||||
|
|
||||||
for (i = 0; i < num_procs ; i++) {
|
for (i = 0; i < num_procs ; i++) {
|
||||||
|
|
||||||
/* sort the list step by step */
|
/* sort the list step by step */
|
||||||
|
|
||||||
insert_name=g_strdup(proc_list[0]); savej=0;
|
insert_name=g_strdup(proc_list[0]); savej=0;
|
||||||
for (j = 0; j < num_procs ; j++) {
|
for (j = 0; j < num_procs ; j++) {
|
||||||
if (strcmp(proc_list[j],insert_name)<0) {
|
if (strcmp(proc_list[j],insert_name)<0) {
|
||||||
@ -586,12 +552,7 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
|
|
||||||
label_name = g_strdup( insert_name );
|
label_name = g_strdup( insert_name );
|
||||||
convert_string( label_name );
|
convert_string( label_name );
|
||||||
|
gtk_clist_append (GTK_CLIST (dbbrowser->clist), &label_name);
|
||||||
list_item = gtk_list_item_new_with_label ( label_name );
|
|
||||||
gtk_object_set_user_data (GTK_OBJECT (list_item), insert_name );
|
|
||||||
gtk_widget_show ( list_item );
|
|
||||||
|
|
||||||
procs_list = g_list_append (procs_list, list_item );
|
|
||||||
|
|
||||||
if (i==0) dialog_select( dbbrowser , insert_name );
|
if (i==0) dialog_select( dbbrowser , insert_name );
|
||||||
|
|
||||||
@ -599,20 +560,15 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( dbbrowser->list ) {
|
if ( dbbrowser->clist ) {
|
||||||
gtk_container_foreach (GTK_CONTAINER (dbbrowser->list),
|
;
|
||||||
dialog_selection_free_filename, NULL);
|
|
||||||
gtk_list_clear_items (GTK_LIST (dbbrowser->list), 0, -1);
|
|
||||||
|
|
||||||
if (procs_list)
|
|
||||||
gtk_list_append_items (GTK_LIST (dbbrowser->list),
|
|
||||||
procs_list);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free( proc_list );
|
g_free( proc_list );
|
||||||
|
|
||||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
||||||
"DB Browser");
|
"DB Browser");
|
||||||
|
gtk_clist_thaw(GTK_CLIST(dbbrowser->clist));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -628,6 +584,16 @@ convert_string (char *str)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
unconvert_string (char *str)
|
||||||
|
{
|
||||||
|
while (*str)
|
||||||
|
{
|
||||||
|
if (*str == '-') *str = '_';
|
||||||
|
str++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static char*
|
static char*
|
||||||
GParamType2char(GParamType t)
|
GParamType2char(GParamType t)
|
||||||
{
|
{
|
||||||
|
@ -45,7 +45,7 @@ typedef struct {
|
|||||||
GtkWidget* descr_scroll;
|
GtkWidget* descr_scroll;
|
||||||
GtkWidget* descr_table;
|
GtkWidget* descr_table;
|
||||||
|
|
||||||
GtkWidget* list;
|
GtkWidget* clist;
|
||||||
|
|
||||||
/* the currently selected procedure */
|
/* the currently selected procedure */
|
||||||
gchar *selected_proc_name;
|
gchar *selected_proc_name;
|
||||||
@ -82,9 +82,12 @@ static void
|
|||||||
dialog_apply_callback(GtkWidget *, gpointer );
|
dialog_apply_callback(GtkWidget *, gpointer );
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
dialog_list_button (GtkWidget *widget,
|
procedure_select_callback (GtkWidget *widget,
|
||||||
GdkEventButton *event,
|
gint row,
|
||||||
gpointer data);
|
gint column,
|
||||||
|
GdkEventButton * bevent,
|
||||||
|
gpointer data);
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dialog_search_callback(GtkWidget *,
|
dialog_search_callback(GtkWidget *,
|
||||||
@ -98,13 +101,12 @@ static void
|
|||||||
dialog_close_callback(GtkWidget *,
|
dialog_close_callback(GtkWidget *,
|
||||||
gpointer);
|
gpointer);
|
||||||
|
|
||||||
static void
|
|
||||||
dialog_selection_free_filename (GtkWidget *widget,
|
|
||||||
gpointer client_data);
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
convert_string (gchar *str);
|
convert_string (gchar *str);
|
||||||
|
|
||||||
|
static void
|
||||||
|
unconvert_string (char *str);
|
||||||
|
|
||||||
static gchar*
|
static gchar*
|
||||||
GParamType2char(GParamType t);
|
GParamType2char(GParamType t);
|
||||||
|
|
||||||
|
@ -47,7 +47,6 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
GtkWidget *hbox,*searchhbox,*vbox;
|
GtkWidget *hbox,*searchhbox,*vbox;
|
||||||
GtkWidget *label;
|
GtkWidget *label;
|
||||||
GtkWidget *list_scroll;
|
|
||||||
|
|
||||||
dbbrowser = (gpointer)malloc(sizeof(dbbrowser_t));
|
dbbrowser = (gpointer)malloc(sizeof(dbbrowser_t));
|
||||||
|
|
||||||
@ -80,22 +79,16 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
/* list : list in a scrolled_win */
|
/* list : list in a scrolled_win */
|
||||||
|
|
||||||
list_scroll = gtk_scrolled_window_new (NULL, NULL);
|
dbbrowser->clist = gtk_clist_new(1);
|
||||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (list_scroll),
|
gtk_clist_set_selection_mode (GTK_CLIST (dbbrowser->clist),
|
||||||
GTK_POLICY_AUTOMATIC,
|
GTK_SELECTION_BROWSE);
|
||||||
GTK_POLICY_ALWAYS);
|
gtk_widget_set_usize(dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (dbbrowser->clist), "select_row",
|
||||||
|
(GtkSignalFunc) procedure_select_callback,
|
||||||
|
dbbrowser);
|
||||||
gtk_box_pack_start (GTK_BOX (vbox),
|
gtk_box_pack_start (GTK_BOX (vbox),
|
||||||
list_scroll, TRUE, TRUE, 0);
|
dbbrowser->clist, TRUE, TRUE, 0);
|
||||||
gtk_widget_set_usize(list_scroll, DBL_LIST_WIDTH, DBL_HEIGHT);
|
gtk_widget_show(dbbrowser->clist);
|
||||||
gtk_widget_show(list_scroll);
|
|
||||||
|
|
||||||
dbbrowser->list = gtk_list_new();
|
|
||||||
gtk_list_set_selection_mode (GTK_LIST (dbbrowser->list),
|
|
||||||
GTK_SELECTION_BROWSE);
|
|
||||||
gtk_signal_connect (GTK_OBJECT (dbbrowser->list), "button_press_event",
|
|
||||||
(GtkSignalFunc) dialog_list_button, dbbrowser);
|
|
||||||
gtk_container_add (GTK_CONTAINER (list_scroll), dbbrowser->list);
|
|
||||||
gtk_widget_show(dbbrowser->list);
|
|
||||||
|
|
||||||
/* search entry */
|
/* search entry */
|
||||||
|
|
||||||
@ -168,7 +161,7 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
/* now build the list */
|
/* now build the list */
|
||||||
|
|
||||||
gtk_widget_show (dbbrowser->list);
|
gtk_widget_show (dbbrowser->clist);
|
||||||
gtk_widget_show (dbbrowser->dlg);
|
gtk_widget_show (dbbrowser->dlg);
|
||||||
|
|
||||||
/* initialize the "return" value (for "apply") */
|
/* initialize the "return" value (for "apply") */
|
||||||
@ -195,39 +188,27 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
dialog_list_button (GtkWidget *widget,
|
procedure_select_callback (GtkWidget *widget,
|
||||||
GdkEventButton *event,
|
gint row,
|
||||||
gpointer data)
|
gint column,
|
||||||
|
GdkEventButton * bevent,
|
||||||
|
gpointer data)
|
||||||
{
|
{
|
||||||
|
gchar *text, *temp;
|
||||||
dbbrowser_t *dbbrowser = data;
|
dbbrowser_t *dbbrowser = data;
|
||||||
GtkWidget *event_widget;
|
|
||||||
gchar *proc_name;
|
|
||||||
|
|
||||||
g_return_val_if_fail (widget != NULL, FALSE);
|
g_return_val_if_fail (widget != NULL, FALSE);
|
||||||
g_return_val_if_fail (event != NULL, FALSE);
|
// g_return_val_if_fail (bevent != NULL, FALSE);
|
||||||
g_return_val_if_fail (dbbrowser != NULL, FALSE);
|
g_return_val_if_fail (dbbrowser != NULL, FALSE);
|
||||||
|
|
||||||
event_widget = gtk_get_event_widget ((GdkEvent*) event);
|
|
||||||
if (GTK_IS_LIST_ITEM (event_widget))
|
|
||||||
{
|
|
||||||
switch (event->type)
|
|
||||||
{
|
|
||||||
case GDK_BUTTON_PRESS:
|
|
||||||
proc_name = gtk_object_get_user_data (GTK_OBJECT (event_widget));
|
|
||||||
/* gtk_widget_grab_focus (fs->selection_entry); */
|
|
||||||
dialog_select (dbbrowser, proc_name);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GDK_2BUTTON_PRESS:
|
if (gtk_clist_get_text (GTK_CLIST (widget), row, column, &temp)) {
|
||||||
if (dbbrowser->apply_callback) {}
|
text = g_strdup(temp);
|
||||||
/* gtk_button_clicked (GTK_BUTTON (fs->ok_button)); */
|
|
||||||
break;
|
unconvert_string(text);
|
||||||
|
|
||||||
default:
|
dialog_select (dbbrowser, text);
|
||||||
break;
|
g_free(text);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -456,7 +437,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
|||||||
gtk_widget_show(label);
|
gtk_widget_show(label);
|
||||||
row++;
|
row++;
|
||||||
|
|
||||||
/* TODO
|
/*
|
||||||
label = gtk_label_new("Help :");
|
label = gtk_label_new("Help :");
|
||||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||||
@ -464,8 +445,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
|||||||
GTK_FILL, GTK_FILL, 3, 0);
|
GTK_FILL, GTK_FILL, 3, 0);
|
||||||
gtk_widget_show(label);
|
gtk_widget_show(label);
|
||||||
|
|
||||||
insert help here
|
TODO: Add help */
|
||||||
but gtk_text seems bugggggggyyy */
|
|
||||||
|
|
||||||
if (old_table) gtk_widget_destroy(old_table);
|
if (old_table) gtk_widget_destroy(old_table);
|
||||||
|
|
||||||
@ -480,7 +460,7 @@ dialog_close_callback (GtkWidget *widget,
|
|||||||
/* end of the dialog */
|
/* end of the dialog */
|
||||||
{
|
{
|
||||||
dbbrowser_t* dbbrowser = data;
|
dbbrowser_t* dbbrowser = data;
|
||||||
|
|
||||||
if (dbbrowser->apply_callback) {
|
if (dbbrowser->apply_callback) {
|
||||||
/* we are called by another application : just kill the dialog box */
|
/* we are called by another application : just kill the dialog box */
|
||||||
gtk_widget_hide(dbbrowser->dlg);
|
gtk_widget_hide(dbbrowser->dlg);
|
||||||
@ -514,16 +494,6 @@ dialog_apply_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
dialog_selection_free_filename (GtkWidget *widget,
|
|
||||||
gpointer client_data)
|
|
||||||
{
|
|
||||||
g_return_if_fail (widget != NULL);
|
|
||||||
|
|
||||||
g_free (gtk_object_get_user_data (GTK_OBJECT (widget)));
|
|
||||||
gtk_object_set_user_data (GTK_OBJECT (widget), NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dialog_search_callback (GtkWidget *widget,
|
dialog_search_callback (GtkWidget *widget,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
@ -532,11 +502,9 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
char **proc_list;
|
char **proc_list;
|
||||||
int num_procs;
|
int num_procs;
|
||||||
dbbrowser_t* dbbrowser = data;
|
dbbrowser_t* dbbrowser = data;
|
||||||
GList *procs_list = NULL;
|
|
||||||
|
|
||||||
if (GTK_LIST(dbbrowser->list)->children)
|
gtk_clist_freeze(GTK_CLIST(dbbrowser->clist));
|
||||||
gtk_list_remove_items( GTK_LIST(dbbrowser->list),
|
gtk_clist_clear(GTK_CLIST(dbbrowser->clist));
|
||||||
GTK_LIST(dbbrowser->list)->children);
|
|
||||||
|
|
||||||
/* search */
|
/* search */
|
||||||
|
|
||||||
@ -565,14 +533,12 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (num_procs != 0) {
|
if (num_procs != 0) {
|
||||||
GtkWidget* list_item;
|
|
||||||
gchar *insert_name, *label_name;
|
gchar *insert_name, *label_name;
|
||||||
int i,j,savej;
|
int i,j,savej;
|
||||||
|
|
||||||
for (i = 0; i < num_procs ; i++) {
|
for (i = 0; i < num_procs ; i++) {
|
||||||
|
|
||||||
/* sort the list step by step */
|
/* sort the list step by step */
|
||||||
|
|
||||||
insert_name=g_strdup(proc_list[0]); savej=0;
|
insert_name=g_strdup(proc_list[0]); savej=0;
|
||||||
for (j = 0; j < num_procs ; j++) {
|
for (j = 0; j < num_procs ; j++) {
|
||||||
if (strcmp(proc_list[j],insert_name)<0) {
|
if (strcmp(proc_list[j],insert_name)<0) {
|
||||||
@ -586,12 +552,7 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
|
|
||||||
label_name = g_strdup( insert_name );
|
label_name = g_strdup( insert_name );
|
||||||
convert_string( label_name );
|
convert_string( label_name );
|
||||||
|
gtk_clist_append (GTK_CLIST (dbbrowser->clist), &label_name);
|
||||||
list_item = gtk_list_item_new_with_label ( label_name );
|
|
||||||
gtk_object_set_user_data (GTK_OBJECT (list_item), insert_name );
|
|
||||||
gtk_widget_show ( list_item );
|
|
||||||
|
|
||||||
procs_list = g_list_append (procs_list, list_item );
|
|
||||||
|
|
||||||
if (i==0) dialog_select( dbbrowser , insert_name );
|
if (i==0) dialog_select( dbbrowser , insert_name );
|
||||||
|
|
||||||
@ -599,20 +560,15 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( dbbrowser->list ) {
|
if ( dbbrowser->clist ) {
|
||||||
gtk_container_foreach (GTK_CONTAINER (dbbrowser->list),
|
;
|
||||||
dialog_selection_free_filename, NULL);
|
|
||||||
gtk_list_clear_items (GTK_LIST (dbbrowser->list), 0, -1);
|
|
||||||
|
|
||||||
if (procs_list)
|
|
||||||
gtk_list_append_items (GTK_LIST (dbbrowser->list),
|
|
||||||
procs_list);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free( proc_list );
|
g_free( proc_list );
|
||||||
|
|
||||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
||||||
"DB Browser");
|
"DB Browser");
|
||||||
|
gtk_clist_thaw(GTK_CLIST(dbbrowser->clist));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -628,6 +584,16 @@ convert_string (char *str)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
unconvert_string (char *str)
|
||||||
|
{
|
||||||
|
while (*str)
|
||||||
|
{
|
||||||
|
if (*str == '-') *str = '_';
|
||||||
|
str++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static char*
|
static char*
|
||||||
GParamType2char(GParamType t)
|
GParamType2char(GParamType t)
|
||||||
{
|
{
|
||||||
|
@ -45,7 +45,7 @@ typedef struct {
|
|||||||
GtkWidget* descr_scroll;
|
GtkWidget* descr_scroll;
|
||||||
GtkWidget* descr_table;
|
GtkWidget* descr_table;
|
||||||
|
|
||||||
GtkWidget* list;
|
GtkWidget* clist;
|
||||||
|
|
||||||
/* the currently selected procedure */
|
/* the currently selected procedure */
|
||||||
gchar *selected_proc_name;
|
gchar *selected_proc_name;
|
||||||
@ -82,9 +82,12 @@ static void
|
|||||||
dialog_apply_callback(GtkWidget *, gpointer );
|
dialog_apply_callback(GtkWidget *, gpointer );
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
dialog_list_button (GtkWidget *widget,
|
procedure_select_callback (GtkWidget *widget,
|
||||||
GdkEventButton *event,
|
gint row,
|
||||||
gpointer data);
|
gint column,
|
||||||
|
GdkEventButton * bevent,
|
||||||
|
gpointer data);
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dialog_search_callback(GtkWidget *,
|
dialog_search_callback(GtkWidget *,
|
||||||
@ -98,13 +101,12 @@ static void
|
|||||||
dialog_close_callback(GtkWidget *,
|
dialog_close_callback(GtkWidget *,
|
||||||
gpointer);
|
gpointer);
|
||||||
|
|
||||||
static void
|
|
||||||
dialog_selection_free_filename (GtkWidget *widget,
|
|
||||||
gpointer client_data);
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
convert_string (gchar *str);
|
convert_string (gchar *str);
|
||||||
|
|
||||||
|
static void
|
||||||
|
unconvert_string (char *str);
|
||||||
|
|
||||||
static gchar*
|
static gchar*
|
||||||
GParamType2char(GParamType t);
|
GParamType2char(GParamType t);
|
||||||
|
|
||||||
|
@ -47,7 +47,6 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
GtkWidget *hbox,*searchhbox,*vbox;
|
GtkWidget *hbox,*searchhbox,*vbox;
|
||||||
GtkWidget *label;
|
GtkWidget *label;
|
||||||
GtkWidget *list_scroll;
|
|
||||||
|
|
||||||
dbbrowser = (gpointer)malloc(sizeof(dbbrowser_t));
|
dbbrowser = (gpointer)malloc(sizeof(dbbrowser_t));
|
||||||
|
|
||||||
@ -80,22 +79,16 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
/* list : list in a scrolled_win */
|
/* list : list in a scrolled_win */
|
||||||
|
|
||||||
list_scroll = gtk_scrolled_window_new (NULL, NULL);
|
dbbrowser->clist = gtk_clist_new(1);
|
||||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (list_scroll),
|
gtk_clist_set_selection_mode (GTK_CLIST (dbbrowser->clist),
|
||||||
GTK_POLICY_AUTOMATIC,
|
GTK_SELECTION_BROWSE);
|
||||||
GTK_POLICY_ALWAYS);
|
gtk_widget_set_usize(dbbrowser->clist, DBL_LIST_WIDTH, DBL_HEIGHT);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (dbbrowser->clist), "select_row",
|
||||||
|
(GtkSignalFunc) procedure_select_callback,
|
||||||
|
dbbrowser);
|
||||||
gtk_box_pack_start (GTK_BOX (vbox),
|
gtk_box_pack_start (GTK_BOX (vbox),
|
||||||
list_scroll, TRUE, TRUE, 0);
|
dbbrowser->clist, TRUE, TRUE, 0);
|
||||||
gtk_widget_set_usize(list_scroll, DBL_LIST_WIDTH, DBL_HEIGHT);
|
gtk_widget_show(dbbrowser->clist);
|
||||||
gtk_widget_show(list_scroll);
|
|
||||||
|
|
||||||
dbbrowser->list = gtk_list_new();
|
|
||||||
gtk_list_set_selection_mode (GTK_LIST (dbbrowser->list),
|
|
||||||
GTK_SELECTION_BROWSE);
|
|
||||||
gtk_signal_connect (GTK_OBJECT (dbbrowser->list), "button_press_event",
|
|
||||||
(GtkSignalFunc) dialog_list_button, dbbrowser);
|
|
||||||
gtk_container_add (GTK_CONTAINER (list_scroll), dbbrowser->list);
|
|
||||||
gtk_widget_show(dbbrowser->list);
|
|
||||||
|
|
||||||
/* search entry */
|
/* search entry */
|
||||||
|
|
||||||
@ -168,7 +161,7 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
/* now build the list */
|
/* now build the list */
|
||||||
|
|
||||||
gtk_widget_show (dbbrowser->list);
|
gtk_widget_show (dbbrowser->clist);
|
||||||
gtk_widget_show (dbbrowser->dlg);
|
gtk_widget_show (dbbrowser->dlg);
|
||||||
|
|
||||||
/* initialize the "return" value (for "apply") */
|
/* initialize the "return" value (for "apply") */
|
||||||
@ -195,39 +188,27 @@ gimp_db_browser(void (* apply_callback) ( gchar *selected_proc_name,
|
|||||||
|
|
||||||
|
|
||||||
static gint
|
static gint
|
||||||
dialog_list_button (GtkWidget *widget,
|
procedure_select_callback (GtkWidget *widget,
|
||||||
GdkEventButton *event,
|
gint row,
|
||||||
gpointer data)
|
gint column,
|
||||||
|
GdkEventButton * bevent,
|
||||||
|
gpointer data)
|
||||||
{
|
{
|
||||||
|
gchar *text, *temp;
|
||||||
dbbrowser_t *dbbrowser = data;
|
dbbrowser_t *dbbrowser = data;
|
||||||
GtkWidget *event_widget;
|
|
||||||
gchar *proc_name;
|
|
||||||
|
|
||||||
g_return_val_if_fail (widget != NULL, FALSE);
|
g_return_val_if_fail (widget != NULL, FALSE);
|
||||||
g_return_val_if_fail (event != NULL, FALSE);
|
// g_return_val_if_fail (bevent != NULL, FALSE);
|
||||||
g_return_val_if_fail (dbbrowser != NULL, FALSE);
|
g_return_val_if_fail (dbbrowser != NULL, FALSE);
|
||||||
|
|
||||||
event_widget = gtk_get_event_widget ((GdkEvent*) event);
|
|
||||||
if (GTK_IS_LIST_ITEM (event_widget))
|
|
||||||
{
|
|
||||||
switch (event->type)
|
|
||||||
{
|
|
||||||
case GDK_BUTTON_PRESS:
|
|
||||||
proc_name = gtk_object_get_user_data (GTK_OBJECT (event_widget));
|
|
||||||
/* gtk_widget_grab_focus (fs->selection_entry); */
|
|
||||||
dialog_select (dbbrowser, proc_name);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case GDK_2BUTTON_PRESS:
|
if (gtk_clist_get_text (GTK_CLIST (widget), row, column, &temp)) {
|
||||||
if (dbbrowser->apply_callback) {}
|
text = g_strdup(temp);
|
||||||
/* gtk_button_clicked (GTK_BUTTON (fs->ok_button)); */
|
|
||||||
break;
|
unconvert_string(text);
|
||||||
|
|
||||||
default:
|
dialog_select (dbbrowser, text);
|
||||||
break;
|
g_free(text);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -456,7 +437,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
|||||||
gtk_widget_show(label);
|
gtk_widget_show(label);
|
||||||
row++;
|
row++;
|
||||||
|
|
||||||
/* TODO
|
/*
|
||||||
label = gtk_label_new("Help :");
|
label = gtk_label_new("Help :");
|
||||||
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
|
||||||
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
gtk_table_attach (GTK_TABLE (dbbrowser->descr_table), label,
|
||||||
@ -464,8 +445,7 @@ dialog_select (dbbrowser_t *dbbrowser,
|
|||||||
GTK_FILL, GTK_FILL, 3, 0);
|
GTK_FILL, GTK_FILL, 3, 0);
|
||||||
gtk_widget_show(label);
|
gtk_widget_show(label);
|
||||||
|
|
||||||
insert help here
|
TODO: Add help */
|
||||||
but gtk_text seems bugggggggyyy */
|
|
||||||
|
|
||||||
if (old_table) gtk_widget_destroy(old_table);
|
if (old_table) gtk_widget_destroy(old_table);
|
||||||
|
|
||||||
@ -480,7 +460,7 @@ dialog_close_callback (GtkWidget *widget,
|
|||||||
/* end of the dialog */
|
/* end of the dialog */
|
||||||
{
|
{
|
||||||
dbbrowser_t* dbbrowser = data;
|
dbbrowser_t* dbbrowser = data;
|
||||||
|
|
||||||
if (dbbrowser->apply_callback) {
|
if (dbbrowser->apply_callback) {
|
||||||
/* we are called by another application : just kill the dialog box */
|
/* we are called by another application : just kill the dialog box */
|
||||||
gtk_widget_hide(dbbrowser->dlg);
|
gtk_widget_hide(dbbrowser->dlg);
|
||||||
@ -514,16 +494,6 @@ dialog_apply_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void
|
|
||||||
dialog_selection_free_filename (GtkWidget *widget,
|
|
||||||
gpointer client_data)
|
|
||||||
{
|
|
||||||
g_return_if_fail (widget != NULL);
|
|
||||||
|
|
||||||
g_free (gtk_object_get_user_data (GTK_OBJECT (widget)));
|
|
||||||
gtk_object_set_user_data (GTK_OBJECT (widget), NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
dialog_search_callback (GtkWidget *widget,
|
dialog_search_callback (GtkWidget *widget,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
@ -532,11 +502,9 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
char **proc_list;
|
char **proc_list;
|
||||||
int num_procs;
|
int num_procs;
|
||||||
dbbrowser_t* dbbrowser = data;
|
dbbrowser_t* dbbrowser = data;
|
||||||
GList *procs_list = NULL;
|
|
||||||
|
|
||||||
if (GTK_LIST(dbbrowser->list)->children)
|
gtk_clist_freeze(GTK_CLIST(dbbrowser->clist));
|
||||||
gtk_list_remove_items( GTK_LIST(dbbrowser->list),
|
gtk_clist_clear(GTK_CLIST(dbbrowser->clist));
|
||||||
GTK_LIST(dbbrowser->list)->children);
|
|
||||||
|
|
||||||
/* search */
|
/* search */
|
||||||
|
|
||||||
@ -565,14 +533,12 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (num_procs != 0) {
|
if (num_procs != 0) {
|
||||||
GtkWidget* list_item;
|
|
||||||
gchar *insert_name, *label_name;
|
gchar *insert_name, *label_name;
|
||||||
int i,j,savej;
|
int i,j,savej;
|
||||||
|
|
||||||
for (i = 0; i < num_procs ; i++) {
|
for (i = 0; i < num_procs ; i++) {
|
||||||
|
|
||||||
/* sort the list step by step */
|
/* sort the list step by step */
|
||||||
|
|
||||||
insert_name=g_strdup(proc_list[0]); savej=0;
|
insert_name=g_strdup(proc_list[0]); savej=0;
|
||||||
for (j = 0; j < num_procs ; j++) {
|
for (j = 0; j < num_procs ; j++) {
|
||||||
if (strcmp(proc_list[j],insert_name)<0) {
|
if (strcmp(proc_list[j],insert_name)<0) {
|
||||||
@ -586,12 +552,7 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
|
|
||||||
label_name = g_strdup( insert_name );
|
label_name = g_strdup( insert_name );
|
||||||
convert_string( label_name );
|
convert_string( label_name );
|
||||||
|
gtk_clist_append (GTK_CLIST (dbbrowser->clist), &label_name);
|
||||||
list_item = gtk_list_item_new_with_label ( label_name );
|
|
||||||
gtk_object_set_user_data (GTK_OBJECT (list_item), insert_name );
|
|
||||||
gtk_widget_show ( list_item );
|
|
||||||
|
|
||||||
procs_list = g_list_append (procs_list, list_item );
|
|
||||||
|
|
||||||
if (i==0) dialog_select( dbbrowser , insert_name );
|
if (i==0) dialog_select( dbbrowser , insert_name );
|
||||||
|
|
||||||
@ -599,20 +560,15 @@ dialog_search_callback (GtkWidget *widget,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( dbbrowser->list ) {
|
if ( dbbrowser->clist ) {
|
||||||
gtk_container_foreach (GTK_CONTAINER (dbbrowser->list),
|
;
|
||||||
dialog_selection_free_filename, NULL);
|
|
||||||
gtk_list_clear_items (GTK_LIST (dbbrowser->list), 0, -1);
|
|
||||||
|
|
||||||
if (procs_list)
|
|
||||||
gtk_list_append_items (GTK_LIST (dbbrowser->list),
|
|
||||||
procs_list);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
g_free( proc_list );
|
g_free( proc_list );
|
||||||
|
|
||||||
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
gtk_window_set_title (GTK_WINDOW (dbbrowser->dlg),
|
||||||
"DB Browser");
|
"DB Browser");
|
||||||
|
gtk_clist_thaw(GTK_CLIST(dbbrowser->clist));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -628,6 +584,16 @@ convert_string (char *str)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
unconvert_string (char *str)
|
||||||
|
{
|
||||||
|
while (*str)
|
||||||
|
{
|
||||||
|
if (*str == '-') *str = '_';
|
||||||
|
str++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static char*
|
static char*
|
||||||
GParamType2char(GParamType t)
|
GParamType2char(GParamType t)
|
||||||
{
|
{
|
||||||
|
@ -12421,6 +12421,7 @@ object_operation_start(GdkPoint *pnt,gint shift_down)
|
|||||||
d_star2lines(operation_obj);
|
d_star2lines(operation_obj);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
/* Re calc which object point we are lookin at */
|
/* Re calc which object point we are lookin at */
|
||||||
scan_obj_points(operation_obj->points,pnt);
|
scan_obj_points(operation_obj->points,pnt);
|
||||||
|
@ -52,6 +52,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
#include <time.h> /* For random seeding */
|
||||||
#include "gtk/gtk.h"
|
#include "gtk/gtk.h"
|
||||||
#include "libgimp/gimp.h"
|
#include "libgimp/gimp.h"
|
||||||
#include "libgimp/gimpui.h"
|
#include "libgimp/gimpui.h"
|
||||||
@ -66,6 +67,8 @@
|
|||||||
typedef struct {
|
typedef struct {
|
||||||
gint seed;
|
gint seed;
|
||||||
gdouble turbulence;
|
gdouble turbulence;
|
||||||
|
/* Interface only */
|
||||||
|
gboolean timeseed;
|
||||||
} PlasmaValues;
|
} PlasmaValues;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -92,7 +95,7 @@ static void plasma_entry_callback (GtkWidget *widget,
|
|||||||
gpointer data);
|
gpointer data);
|
||||||
static void plasma_scale_update (GtkAdjustment *adjustment,
|
static void plasma_scale_update (GtkAdjustment *adjustment,
|
||||||
gpointer data);
|
gpointer data);
|
||||||
|
static void toggle_callback (GtkWidget *widget, gboolean *data);
|
||||||
static void plasma (GDrawable *drawable);
|
static void plasma (GDrawable *drawable);
|
||||||
static void random_rgb (guchar *d);
|
static void random_rgb (guchar *d);
|
||||||
static void add_random (guchar *d, gint amnt);
|
static void add_random (guchar *d, gint amnt);
|
||||||
@ -117,7 +120,8 @@ GPlugInInfo PLUG_IN_INFO =
|
|||||||
static PlasmaValues pvals =
|
static PlasmaValues pvals =
|
||||||
{
|
{
|
||||||
0, /* seed */
|
0, /* seed */
|
||||||
1.0 /* turbulence */
|
1.0, /* turbulence */
|
||||||
|
TRUE /* Time seed? */
|
||||||
};
|
};
|
||||||
|
|
||||||
static PlasmaInterface pint =
|
static PlasmaInterface pint =
|
||||||
@ -231,7 +235,8 @@ run (gchar *name,
|
|||||||
gimp_displays_flush ();
|
gimp_displays_flush ();
|
||||||
|
|
||||||
/* Store data */
|
/* Store data */
|
||||||
if (run_mode == RUN_INTERACTIVE)
|
if (run_mode == RUN_INTERACTIVE ||
|
||||||
|
(pvals.timeseed && run_mode == RUN_WITH_LAST_VALS))
|
||||||
gimp_set_data ("plug_in_plasma", &pvals, sizeof (PlasmaValues));
|
gimp_set_data ("plug_in_plasma", &pvals, sizeof (PlasmaValues));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -255,6 +260,8 @@ plasma_dialog()
|
|||||||
GtkWidget *button;
|
GtkWidget *button;
|
||||||
GtkWidget *label;
|
GtkWidget *label;
|
||||||
GtkWidget *entry;
|
GtkWidget *entry;
|
||||||
|
GtkWidget *seed_hbox;
|
||||||
|
GtkWidget *time_button;
|
||||||
GtkWidget *scale;
|
GtkWidget *scale;
|
||||||
GtkObject *scale_data;
|
GtkObject *scale_data;
|
||||||
gchar **argv;
|
gchar **argv;
|
||||||
@ -306,8 +313,14 @@ plasma_dialog()
|
|||||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||||
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, 0, 5, 0 );
|
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, 0, 5, 0 );
|
||||||
gtk_widget_show (label);
|
gtk_widget_show (label);
|
||||||
|
|
||||||
|
seed_hbox = gtk_hbox_new(FALSE, 2);
|
||||||
|
gtk_table_attach (GTK_TABLE (table), seed_hbox, 1, 2, 0, 1,
|
||||||
|
GTK_FILL, GTK_FILL, 0, 0 );
|
||||||
|
gtk_widget_show (seed_hbox);
|
||||||
|
|
||||||
entry = gtk_entry_new ();
|
entry = gtk_entry_new ();
|
||||||
gtk_table_attach (GTK_TABLE (table), entry, 1, 2, 0, 1, GTK_FILL, GTK_FILL, 0, 0 );
|
gtk_box_pack_start(GTK_BOX(seed_hbox), entry, TRUE, TRUE, 0);
|
||||||
gtk_widget_set_usize( entry, ENTRY_WIDTH, 0 );
|
gtk_widget_set_usize( entry, ENTRY_WIDTH, 0 );
|
||||||
sprintf( (char *)buffer, "%d", pvals.seed );
|
sprintf( (char *)buffer, "%d", pvals.seed );
|
||||||
gtk_entry_set_text (GTK_ENTRY (entry), (gchar *)buffer );
|
gtk_entry_set_text (GTK_ENTRY (entry), (gchar *)buffer );
|
||||||
@ -316,6 +329,15 @@ plasma_dialog()
|
|||||||
&pvals.seed);
|
&pvals.seed);
|
||||||
gtk_widget_show (entry);
|
gtk_widget_show (entry);
|
||||||
|
|
||||||
|
time_button = gtk_toggle_button_new_with_label ("Time");
|
||||||
|
gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(time_button),pvals.timeseed);
|
||||||
|
gtk_signal_connect (GTK_OBJECT (time_button), "clicked",
|
||||||
|
(GtkSignalFunc) toggle_callback,
|
||||||
|
&pvals.timeseed);
|
||||||
|
gtk_box_pack_end (GTK_BOX (seed_hbox), time_button, FALSE, FALSE, 0);
|
||||||
|
gtk_widget_show (time_button);
|
||||||
|
gtk_widget_show (seed_hbox);
|
||||||
|
|
||||||
label = gtk_label_new ("Turbulence");
|
label = gtk_label_new ("Turbulence");
|
||||||
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
|
||||||
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, 0, 5, 0);
|
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, 0, 5, 0);
|
||||||
@ -382,7 +404,11 @@ plasma_scale_update (GtkAdjustment *adjustment,
|
|||||||
*dptr = adjustment->value;
|
*dptr = adjustment->value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
toggle_callback (GtkWidget *widget, gboolean *data)
|
||||||
|
{
|
||||||
|
*data = GTK_TOGGLE_BUTTON (widget)->active;
|
||||||
|
}
|
||||||
|
|
||||||
#define AVE(n, v1, v2) n[0] = ((gint)v1[0] + (gint)v2[0]) / 2;\
|
#define AVE(n, v1, v2) n[0] = ((gint)v1[0] + (gint)v2[0]) / 2;\
|
||||||
n[1] = ((gint)v1[1] + (gint)v2[1]) / 2;\
|
n[1] = ((gint)v1[1] + (gint)v2[1]) / 2;\
|
||||||
@ -433,6 +459,9 @@ plasma(GDrawable *drawable)
|
|||||||
static void
|
static void
|
||||||
init_plasma( GDrawable *drawable )
|
init_plasma( GDrawable *drawable )
|
||||||
{
|
{
|
||||||
|
if (pvals.timeseed)
|
||||||
|
pvals.seed = time(NULL);
|
||||||
|
|
||||||
srand( pvals.seed );
|
srand( pvals.seed );
|
||||||
turbulence = pvals.turbulence;
|
turbulence = pvals.turbulence;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user