diff options
Diffstat (limited to 'src/clean_gtk_support.c')
-rw-r--r-- | src/clean_gtk_support.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/clean_gtk_support.c b/src/clean_gtk_support.c index f1672ed..e0756cd 100644 --- a/src/clean_gtk_support.c +++ b/src/clean_gtk_support.c @@ -17,7 +17,14 @@ static void clean_g_signal_handler_void (GtkWidget *target,gpointer data) { handleSignal ((CleanInt)data,&args[2]); } -static CleanInt clean_g_signal_handler_int_int_pointer_pointer_bool +static gboolean clean_g_signal_handler_pointer_bool (GtkWidget *target,gpointer p,gpointer data) { + CleanInt args[3]; + args[0]=1; + args[2]=(CleanInt)p; + return (gboolean) handleSignal ((CleanInt)data,&args[2]); +} + +static gboolean clean_g_signal_handler_int_int_pointer_pointer_bool (GtkWidget *target,gint i1,gint i2,gpointer p1,gpointer p2,gpointer data) { CleanInt args[6]; args[0]=4; @@ -25,7 +32,7 @@ static CleanInt clean_g_signal_handler_int_int_pointer_pointer_bool args[3]=i2; args[4]=(CleanInt)p1; args[5]=(CleanInt)p2; - return handleSignal ((CleanInt)data,&args[2]); + return (gboolean) handleSignal ((CleanInt)data,&args[2]); } void clean_g_signal_connect (int type,GtkWidget *widget,char *signal,CleanInt id) { @@ -33,7 +40,8 @@ void clean_g_signal_connect (int type,GtkWidget *widget,char *signal,CleanInt id switch (type) { case 1: callback=&clean_g_signal_handler_void; break; - case 2: callback=&clean_g_signal_handler_int_int_pointer_pointer_bool; break; + case 2: callback=&clean_g_signal_handler_pointer_bool; break; + case 3: callback=&clean_g_signal_handler_int_int_pointer_pointer_bool; break; default: fprintf (stderr,"clean_g_signal_connect: illegal type %d\n",type); return; |