changeset 131:594307469c79

Signal handler code cleanups for GTK 2.0.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sun, 20 Oct 2002 21:50:46 +0000
parents 54014258099a
children 6e37014ccbae
files gtk/dw.c
diffstat 1 files changed, 107 insertions(+), 83 deletions(-) [+]
line wrap: on
line diff
--- a/gtk/dw.c	Sun Oct 20 13:07:08 2002 +0000
+++ b/gtk/dw.c	Sun Oct 20 21:50:46 2002 +0000
@@ -82,15 +82,15 @@
 gint _key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer data);
 gint _generic_event(GtkWidget *widget, gpointer data);
 gint _configure_event(GtkWidget *widget, GdkEventConfigure *event, gpointer data);
-void _activate_event(GtkWidget *widget, gpointer data);
-void _container_select_event(GtkWidget *widget, GdkEventButton *event, gpointer data);
-void _container_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data);
-void _item_select_event(GtkWidget *widget, GtkWidget *child, gpointer data);
-void _expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data);
-void _set_focus_event(GtkWindow *window, GtkWidget *widget, gpointer data);
-void _tree_select_event(GtkTree *tree, GtkWidget *child, gpointer data);
-void _tree_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data);
-void _value_changed_event(GtkAdjustment *adjustment, gpointer user_data);
+gint _activate_event(GtkWidget *widget, gpointer data);
+gint _container_select_event(GtkWidget *widget, GdkEventButton *event, gpointer data);
+gint _container_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data);
+gint _item_select_event(GtkWidget *widget, GtkWidget *child, gpointer data);
+gint _expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data);
+gint _set_focus_event(GtkWindow *window, GtkWidget *widget, gpointer data);
+gint _tree_select_event(GtkTree *tree, GtkWidget *child, gpointer data);
+gint _tree_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data);
+gint _value_changed_event(GtkAdjustment *adjustment, gpointer user_data);
 
 
 void msleep(long period);
@@ -150,21 +150,24 @@
 	return NULL;
 }
 
-void _set_focus_event(GtkWindow *window, GtkWidget *widget, gpointer data)
+gint _set_focus_event(GtkWindow *window, GtkWidget *widget, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
+	int retval = FALSE;
 
 	if(work)
 	{
 		int (*setfocusfunc)(HWND, void *) = work->func;
 
-		setfocusfunc((HWND)window, work->data);
-	}
+		retval = setfocusfunc((HWND)window, work->data);
+	}
+	return retval;
 }
 
 gint _button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
+	int retval = FALSE;
 
 	if(work)
 	{
@@ -176,14 +179,15 @@
 		else if(event->button == 2)
 			mybutton = 3;
 
-		buttonfunc(widget, event->x, event->y, mybutton, work->data);
-	}
-	return TRUE;
+		retval = buttonfunc(widget, event->x, event->y, mybutton, work->data);
+	}
+	return retval;
 }
 
 gint _button_release_event(GtkWidget *widget, GdkEventButton *event, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
+	int retval = FALSE;
 
 	if(work)
 	{
@@ -195,14 +199,15 @@
 		else if(event->button == 2)
 			mybutton = 3;
 
-		buttonfunc(widget, event->x, event->y, mybutton, work->data);
-	}
-	return TRUE;
+		retval = buttonfunc(widget, event->x, event->y, mybutton, work->data);
+	}
+	return retval;
 }
 
 gint _motion_notify_event(GtkWidget *widget, GdkEventMotion *event, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
+	int retval = FALSE;
 
 	if(work)
 	{
@@ -226,79 +231,85 @@
 		if (state & GDK_BUTTON2_MASK)
 			keys |= DW_BUTTON3_MASK;
 
-		motionfunc(widget, x, y, keys, work->data);
-	}
-	return TRUE;
+		retval = motionfunc(widget, x, y, keys, work->data);
+	}
+	return retval;
 }
 
 gint _delete_event(GtkWidget *widget, GdkEvent *event, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
+	int retval = FALSE;
 
 	if(work)
 	{
 		int (*closefunc)(HWND, void *) = work->func;
 
-		closefunc(widget, work->data);
-	}
-	return TRUE;
+		retval = closefunc(widget, work->data);
+	}
+	return retval;
 }
 
 gint _key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
+	int retval = FALSE;
 
 	if(work)
 	{
 		int (*keypressfunc)(HWND, int, void *) = work->func;
 
-		keypressfunc(widget, *event->string, work->data);
-	}
-	return TRUE;
+		retval = keypressfunc(widget, *event->string, work->data);
+	}
+	return retval;
 }
 
 gint _generic_event(GtkWidget *widget, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
+	int retval = FALSE;
 
 	if(work)
 	{
 		int (*genericfunc)(HWND, void *) = work->func;
 
-		genericfunc(widget, work->data);
-	}
-	return TRUE;
-}
-
-void _activate_event(GtkWidget *widget, gpointer data)
+		retval = genericfunc(widget, work->data);
+	}
+	return retval;
+}
+
+gint _activate_event(GtkWidget *widget, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
+	int retval = FALSE;
 
 	if(work && !_dw_ignore_click)
 	{
-		void (*activatefunc)(HWND, void *) = work->func;
-
-		activatefunc(popup ? popup : work->window, work->data);
-	}
-	return;
+		int (*activatefunc)(HWND, void *) = work->func;
+
+		retval = activatefunc(popup ? popup : work->window, work->data);
+	}
+	return retval;
 }
 
 gint _configure_event(GtkWidget *widget, GdkEventConfigure *event, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
+	int retval = FALSE;
 
 	if(work)
 	{
 		int (*sizefunc)(HWND, int, int, void *) = work->func;
 
-		sizefunc(widget, event->width, event->height, work->data);
-	}
-	return TRUE;
-}
-
-void _expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data)
+		retval = sizefunc(widget, event->width, event->height, work->data);
+	}
+	return retval;
+}
+
+gint _expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
+	int retval = FALSE;
 
 	if(work)
 	{
@@ -309,17 +320,19 @@
 		exp.y = event->area.y;
 		exp.width = event->area.width;
 		exp.height = event->area.height;
-		exposefunc(widget, &exp, work->data);
-	}
-}
-
-void _item_select_event(GtkWidget *widget, GtkWidget *child, gpointer data)
+		retval = exposefunc(widget, &exp, work->data);
+	}
+	return retval;
+}
+
+gint _item_select_event(GtkWidget *widget, GtkWidget *child, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
 	static int _dw_recursing = 0;
+	int retval = FALSE;
 
 	if(_dw_recursing)
-		return;
+		return FALSE;
 
 	if(work)
 	{
@@ -334,7 +347,7 @@
 		else if(GTK_IS_LIST(widget))
 			list = GTK_LIST(widget)->children;
 		else
-			return;
+			return FALSE;
 
 		while(list)
 		{
@@ -344,7 +357,7 @@
 				{
 					gtk_object_set_data(GTK_OBJECT(work->window), "item", (gpointer)item);
 					if(selectfunc)
-						selectfunc(work->window, item, work->data);
+						retval = selectfunc(work->window, item, work->data);
 				}
 				break;
 			}
@@ -353,37 +366,41 @@
 		}
 		_dw_recursing = 0;
 	}
-}
-
-void _container_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data)
+	return retval;
+}
+
+gint _container_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
+	int retval = FALSE;
 
 	if(work)
 	{
 		if(event->button == 3)
 		{
-			void (*contextfunc)(HWND, char *, int, int, void *) = work->func;
+			int (*contextfunc)(HWND, char *, int, int, void *) = work->func;
 			char *text;
 			int row, col;
 
 			gtk_clist_get_selection_info(GTK_CLIST(widget), event->x, event->y, &row, &col);
 
 			text = (char *)gtk_clist_get_row_data(GTK_CLIST(widget), row);
-			contextfunc(work->window, text, event->x, event->y, work->data);
+			retval = contextfunc(work->window, text, event->x, event->y, work->data);
 		}
 	}
-}
-
-void _tree_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data)
+	return retval;
+}
+
+gint _tree_context_event(GtkWidget *widget, GdkEventButton *event, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
+	int retval = FALSE;
 
 	if(work)
 	{
 		if(event->button == 3)
 		{
-			void (*contextfunc)(HWND, char *, int, int, void *, void *) = work->func;
+			int (*contextfunc)(HWND, char *, int, int, void *, void *) = work->func;
 			char *text = (char *)gtk_object_get_data(GTK_OBJECT(widget), "text");
 			void *itemdata = (void *)gtk_object_get_data(GTK_OBJECT(widget), "itemdata");
 
@@ -403,15 +420,17 @@
 				}
 			}
 
-			contextfunc(work->window, text, event->x, event->y, work->data, itemdata);
+			retval = contextfunc(work->window, text, event->x, event->y, work->data, itemdata);
 		}
 	}
-}
-
-void _tree_select_event(GtkTree *tree, GtkWidget *child, gpointer data)
+	return retval;
+}
+
+gint _tree_select_event(GtkTree *tree, GtkWidget *child, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
 	GtkWidget *treeroot = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(child), "tree");
+	int retval = FALSE;
 
 	if(treeroot && GTK_IS_TREE(treeroot))
 	{
@@ -423,34 +442,37 @@
 
 	if(work)
 	{
-		void (*treeselectfunc)(HWND, HWND, char *, void *, void *) = work->func;
+		int (*treeselectfunc)(HWND, HWND, char *, void *, void *) = work->func;
 		char *text = (char *)gtk_object_get_data(GTK_OBJECT(child), "text");
 		void *itemdata = (char *)gtk_object_get_data(GTK_OBJECT(child), "itemdata");
-		treeselectfunc(work->window, child, text, itemdata, work->data);
-	}
-}
-
-void _container_select_event(GtkWidget *widget, GdkEventButton *event, gpointer data)
+		retval = treeselectfunc(work->window, child, text, itemdata, work->data);
+	}
+	return retval;
+}
+
+gint _container_select_event(GtkWidget *widget, GdkEventButton *event, gpointer data)
 {
 	SignalHandler *work = (SignalHandler *)data;
+	int retval = FALSE;
 
 	if(work)
 	{
 		if(event->button == 1 && event->type == GDK_2BUTTON_PRESS)
 		{
-			void (*contextfunc)(HWND, char *, void *) = work->func;
+			int (*contextfunc)(HWND, char *, void *) = work->func;
 			char *text;
 			int row, col;
 
 			gtk_clist_get_selection_info(GTK_CLIST(widget), event->x, event->y, &row, &col);
 
 			text = (char *)gtk_clist_get_row_data(GTK_CLIST(widget), row);
-			contextfunc(work->window, text, work->data);
+			retval = contextfunc(work->window, text, work->data);
 		}
 	}
-}
-
-void _select_row(GtkWidget *widget, gint row, gint column, GdkEventButton *event, gpointer data)
+	return retval;
+}
+
+gint _select_row(GtkWidget *widget, gint row, gint column, GdkEventButton *event, gpointer data)
 {
 	GList *tmp = (GList *)gtk_object_get_data(GTK_OBJECT(widget), "selectlist");
 	char *rowdata = gtk_clist_get_row_data(GTK_CLIST(widget), row);
@@ -467,16 +489,16 @@
 		tmp = g_list_append(tmp, rowdata);
 		gtk_object_set_data(GTK_OBJECT(widget), "selectlist", tmp);
 	}
-
-}
-
-void _unselect_row(GtkWidget *widget, gint row, gint column, GdkEventButton *event, gpointer data)
+	return FALSE;
+}
+
+gint _unselect_row(GtkWidget *widget, gint row, gint column, GdkEventButton *event, gpointer data)
 {
 	GList *tmp;
 	char *rowdata;
 
 	if(_dw_unselecting)
-		return;
+		return FALSE;
 
 	tmp = (GList *)gtk_object_get_data(GTK_OBJECT(widget), "selectlist");
 	rowdata = gtk_clist_get_row_data(GTK_CLIST(widget), row);
@@ -486,6 +508,7 @@
 		tmp = g_list_remove(tmp, rowdata);
 		gtk_object_set_data(GTK_OBJECT(widget), "selectlist", tmp);
 	}
+	return FALSE;
 }
 
 int _round_value(gfloat val)
@@ -498,7 +521,7 @@
 	return newval;
 }
 
-void _value_changed_event(GtkAdjustment *adjustment, gpointer data)
+gint _value_changed_event(GtkAdjustment *adjustment, gpointer data)
 {
 	GtkWidget *slider = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(adjustment), "slider");
 	SignalHandler *work = (SignalHandler *)data;
@@ -519,6 +542,7 @@
 				valuechangedfunc(work->window, val,  work->data);
 		}
 	}
+	return FALSE;
 }
 
 gint _default_key_press_event(GtkWidget *widget, GdkEventKey *event, gpointer data)
@@ -535,7 +559,7 @@
 				gtk_widget_grab_focus(next);
 		}
 	}
-	return TRUE;
+	return FALSE;
 }
 
 GdkPixmap *_find_pixmap(GdkBitmap **bitmap, long id, HWND handle, unsigned long *userwidth, unsigned long *userheight)