# HG changeset patch # User mhessling@81767d24-ef19-dc11-ae90-00e081727c95 # Date 1049881294 0 # Node ID 20def3eaae8d85a2f9ab7efc3f8bbc3e260703bc # Parent b87afd126cb769f33fa77fe1a4b1a0fb0436fbf0 Implement handling of switch-page signal for notebooks. diff -r b87afd126cb7 -r 20def3eaae8d gtk/dw.c --- 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) {