changeset 331:20def3eaae8d

Implement handling of switch-page signal for notebooks.
author mhessling@81767d24-ef19-dc11-ae90-00e081727c95
date Wed, 09 Apr 2003 09:41:34 +0000
parents b87afd126cb7
children 7b0f00729a32
files gtk/dw.c
diffstat 1 files changed, 21 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/gtk/dw.c	Wed Apr 09 09:40:29 2003 +0000
+++ b/gtk/dw.c	Wed Apr 09 09:41:34 2003 +0000
@@ -93,6 +93,7 @@
 #else
 static gint _tree_select_event(GtkTree *tree, GtkWidget *child, gpointer data);
 #endif
+static gint _switch_page_event(GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data);
 
 typedef struct
 {
@@ -123,7 +124,7 @@
 
 } SignalHandler;
 
-#define SIGNALMAX 16
+#define SIGNALMAX 17
 
 /* A list of signal forwarders, to account for paramater differences. */
 static SignalList SignalTranslate[SIGNALMAX] = {
@@ -142,7 +143,8 @@
 	{ _item_select_event,       DW_SIGNAL_LIST_SELECT },
 	{ _tree_select_event,       DW_SIGNAL_ITEM_SELECT },
 	{ _set_focus_event,         DW_SIGNAL_SET_FOCUS },
-	{ _value_changed_event,     DW_SIGNAL_VALUE_CHANGED }
+	{ _value_changed_event,     DW_SIGNAL_VALUE_CHANGED },
+	{ _switch_page_event,       DW_SIGNAL_SWITCH_PAGE }
 };
 
 /* Alignment flags */
@@ -547,6 +549,19 @@
 	return retval;
 }
 
+static gint _switch_page_event(GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer data)
+{
+	SignalHandler *work = (SignalHandler *)data;
+	int retval = FALSE;
+
+	if(work)
+	{
+		int (*switchpagefunc)(HWND, int, void *) = work->func;
+		retval = switchpagefunc(work->window, page_num, work->data);
+	}
+	return retval;
+}
+
 static gint _select_row(GtkWidget *widget, gint row, gint column, GdkEventButton *event, gpointer data)
 {
 	GList *tmp = (GList *)gtk_object_get_data(GTK_OBJECT(widget), "selectlist");
@@ -7662,6 +7677,10 @@
 	{
 		thiswindow = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(thiswindow), "adjustment");
 	}
+	else if(GTK_IS_NOTEBOOK(thiswindow) && strcmp(signame, DW_SIGNAL_SWITCH_PAGE) == 0)
+	{
+		thisname = "switch-page";
+	}
 
 	if(!thisfunc || !thiswindow)
 	{