diff options
author | Jay Painter <jpaint@src.gnome.org> | 1998-02-19 02:59:55 +0000 |
---|---|---|
committer | Jay Painter <jpaint@src.gnome.org> | 1998-02-19 02:59:55 +0000 |
commit | 8923d60dba0e1990ca066ef7cf9b6b065a4c4b63 (patch) | |
tree | 53a7b15dfb88079748c6d6038432b9071a5c630b /gtk | |
parent | 9ad922290cc7495298099a4b97029942b0ce34c3 (diff) | |
download | gtk+-8923d60dba0e1990ca066ef7cf9b6b065a4c4b63.tar.gz |
CList signal revert (right back at you! *ouch*)
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkclist.c | 83 | ||||
-rw-r--r-- | gtk/gtkclist.h | 18 | ||||
-rw-r--r-- | gtk/gtkfilesel.c | 110 | ||||
-rw-r--r-- | gtk/testgtk.c | 87 |
4 files changed, 71 insertions, 227 deletions
diff --git a/gtk/gtkclist.c b/gtk/gtkclist.c index 361dbf13e0..79e174357c 100644 --- a/gtk/gtkclist.c +++ b/gtk/gtkclist.c @@ -92,11 +92,10 @@ COLUMN_FROM_XPIXEL (GtkCList * clist, (clist)->column[(clist)->columns - 1].area.width + \ COLUMN_INSET + CELL_SPACING) + /* Signals */ enum { - MOUSE_CLICK, - MOUSE_DOUBLE_CLICK, SELECT_ROW, UNSELECT_ROW, CLICK_COLUMN, @@ -106,7 +105,7 @@ enum typedef void (*GtkCListSignal1) (GtkObject * object, gint arg1, gint arg2, - gint arg3, + GdkEventButton * arg3, gpointer data); typedef void (*GtkCListSignal2) (GtkObject * object, @@ -165,11 +164,11 @@ static void size_allocate_columns (GtkCList * clist); static void real_select_row (GtkCList * clist, gint row, gint column, - gint button); + GdkEventButton * event); static void real_unselect_row (GtkCList * clist, gint row, gint column, - gint button); + GdkEventButton * event); static gint get_selection_info (GtkCList * clist, gint x, gint y, @@ -249,11 +248,13 @@ static void gtk_clist_marshal_signal_2 (GtkObject * object, GtkArg * args); /* Fill in data after widget is realized and has style */ + static void add_style_data (GtkCList * clist); static GtkContainerClass *parent_class = NULL; static gint clist_signals[LAST_SIGNAL] = {0}; + guint gtk_clist_get_type () { @@ -290,34 +291,21 @@ gtk_clist_class_init (GtkCListClass * klass) container_class = (GtkContainerClass *) klass; parent_class = gtk_type_class (gtk_container_get_type ()); - clist_signals[MOUSE_CLICK] = - gtk_signal_new ("mouse_click", - GTK_RUN_LAST, - object_class->type, - GTK_SIGNAL_OFFSET (GtkCListClass, mouse_click), - gtk_clist_marshal_signal_1, - GTK_TYPE_NONE, 3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT); - clist_signals[MOUSE_DOUBLE_CLICK] = - gtk_signal_new ("mouse_double_click", - GTK_RUN_LAST, - object_class->type, - GTK_SIGNAL_OFFSET (GtkCListClass, mouse_double_click), - gtk_clist_marshal_signal_1, - GTK_TYPE_NONE, 3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT); + clist_signals[SELECT_ROW] = gtk_signal_new ("select_row", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkCListClass, select_row), gtk_clist_marshal_signal_1, - GTK_TYPE_NONE, 3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT); + GTK_TYPE_NONE, 3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_POINTER); clist_signals[UNSELECT_ROW] = gtk_signal_new ("unselect_row", GTK_RUN_LAST, object_class->type, GTK_SIGNAL_OFFSET (GtkCListClass, unselect_row), gtk_clist_marshal_signal_1, - GTK_TYPE_NONE, 3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_INT); + GTK_TYPE_NONE, 3, GTK_TYPE_INT, GTK_TYPE_INT, GTK_TYPE_POINTER); clist_signals[CLICK_COLUMN] = gtk_signal_new ("click_column", GTK_RUN_LAST, @@ -347,8 +335,6 @@ gtk_clist_class_init (GtkCListClass * klass) container_class->remove = NULL; container_class->foreach = gtk_clist_foreach; - klass->mouse_click = NULL; - klass->mouse_double_click = NULL; klass->select_row = real_select_row; klass->unselect_row = real_unselect_row; klass->click_column = NULL; @@ -366,10 +352,9 @@ gtk_clist_marshal_signal_1 (GtkObject * object, rfunc = (GtkCListSignal1) func; - (*rfunc) (object, - GTK_VALUE_INT (args[0]), + (*rfunc) (object, GTK_VALUE_INT (args[0]), GTK_VALUE_INT (args[1]), - GTK_VALUE_INT (args[2]), + GTK_VALUE_POINTER (args[2]), func_data); } @@ -383,8 +368,7 @@ gtk_clist_marshal_signal_2 (GtkObject * object, rfunc = (GtkCListSignal2) func; - (*rfunc) (object, - GTK_VALUE_INT (args[0]), + (*rfunc) (object, GTK_VALUE_INT (args[0]), func_data); } @@ -828,7 +812,7 @@ gtk_clist_set_row_height (GtkCList * clist, if (GTK_WIDGET_REALIZED (clist)) { text_height = height - (GTK_WIDGET (clist)->style->font->ascent + - GTK_WIDGET (clist)->style->font->descent + 1); + GTK_WIDGET (clist) ->style->font->descent + 1); clist->row_center_offset = (text_height / 2) + GTK_WIDGET (clist)->style->font->ascent + 1.5; } @@ -1441,7 +1425,7 @@ gtk_clist_select_row (GtkCList * clist, if (column < -1 || column >= clist->columns) return; - gtk_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], row, column, 0); + gtk_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], row, column, NULL); } void @@ -1457,7 +1441,7 @@ gtk_clist_unselect_row (GtkCList * clist, if (column < -1 || column >= clist->columns) return; - gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], row, column, 0); + gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], row, column, NULL); } gint @@ -1920,25 +1904,8 @@ gtk_clist_button_press (GtkWidget * widget, y = event->y; if (get_selection_info (clist, x, y, &row, &column)) - { - switch (event->type) - { - case GDK_BUTTON_PRESS: - gtk_signal_emit (GTK_OBJECT (clist), clist_signals[MOUSE_CLICK], - row, column, event->button); - gtk_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], - row, column, event->button); - break; - - case GDK_2BUTTON_PRESS: - gtk_signal_emit (GTK_OBJECT (clist), clist_signals[MOUSE_DOUBLE_CLICK], - row, column, event->button); - break; - - default: - break; - } - } + gtk_signal_emit (GTK_OBJECT (clist), clist_signals[SELECT_ROW], + row, column, event); return FALSE; } @@ -2757,7 +2724,7 @@ static void real_select_row (GtkCList * clist, gint row, gint column, - gint button) + GdkEventButton * event) { gint i; GList *list; @@ -2783,7 +2750,8 @@ real_select_row (GtkCList * clist, if (clist_row->state == GTK_STATE_SELECTED) { clist_row->state = GTK_STATE_NORMAL; - gtk_clist_unselect_row (clist, i, column); + gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], + i, column, event); } else { @@ -2796,7 +2764,8 @@ real_select_row (GtkCList * clist, } else if (clist_row->state == GTK_STATE_SELECTED) { - gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], i, column, button); + gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], + i, column, event); } i++; @@ -2824,7 +2793,8 @@ real_select_row (GtkCList * clist, } else if (clist_row->state == GTK_STATE_SELECTED) { - gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], i, column, button); + gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], + i, column, event); } i++; @@ -2844,7 +2814,8 @@ real_select_row (GtkCList * clist, if (clist_row->state == GTK_STATE_SELECTED) { clist_row->state = GTK_STATE_NORMAL; - gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], i, column, button); + gtk_signal_emit (GTK_OBJECT (clist), clist_signals[UNSELECT_ROW], + i, column, event); } else { @@ -2872,7 +2843,7 @@ static void real_unselect_row (GtkCList * clist, gint row, gint column, - gint button) + GdkEventButton * event) { GtkCListRow *clist_row; diff --git a/gtk/gtkclist.h b/gtk/gtkclist.h index fb3d3afdd7..164e2070c5 100644 --- a/gtk/gtkclist.h +++ b/gtk/gtkclist.h @@ -110,7 +110,7 @@ struct _GtkCList /* dynamicly allocated array of column structures */ GtkCListColumn *column; - /* the scrolling window and it's height and width to + /*the scrolling window and it's height and width to * make things a little speedier */ GdkWindow *clist_window; gint clist_window_width; @@ -153,26 +153,14 @@ struct _GtkCListClass { GtkContainerClass parent_class; - void (*mouse_click) (GtkCList * clist, - gint row, - gint column, - gint button); - - void (*mouse_double_click) (GtkCList * clist, - gint row, - gint column, - gint button); - void (*select_row) (GtkCList * clist, gint row, gint column, - gint button); - + GdkEventButton * event); void (*unselect_row) (GtkCList * clist, gint row, gint column, - gint button); - + GdkEventButton * event); void (*click_column) (GtkCList * clist, gint column); diff --git a/gtk/gtkfilesel.c b/gtk/gtkfilesel.c index 2001e2d937..6ac0326598 100644 --- a/gtk/gtkfilesel.c +++ b/gtk/gtkfilesel.c @@ -286,27 +286,15 @@ static gint gtk_file_selection_key_press (GtkWidget *widget, static void gtk_file_selection_file_button (GtkWidget *widget, gint row, gint column, - gint button, + GdkEventButton *bevent, gpointer user_data); -static void gtk_file_selection_file_button_double (GtkWidget *widget, - gint row, - gint column, - gint button, - gpointer user_data); - static void gtk_file_selection_dir_button (GtkWidget *widget, gint row, gint column, - gint button, + GdkEventButton *bevent, gpointer data); -static void gtk_file_selection_dir_button_double (GtkWidget *widget, - gint row, - gint column, - gint button, - gpointer data); - static void gtk_file_selection_populate (GtkFileSelection *fs, gchar *rel_path, gint try_complete); @@ -440,9 +428,6 @@ gtk_file_selection_init (GtkFileSelection *filesel) gtk_signal_connect (GTK_OBJECT (filesel->dir_list), "select_row", (GtkSignalFunc) gtk_file_selection_dir_button, (gpointer) filesel); - gtk_signal_connect (GTK_OBJECT (filesel->dir_list), "mouse_double_click", - (GtkSignalFunc) gtk_file_selection_dir_button_double, - (gpointer) filesel); gtk_clist_set_policy (GTK_CLIST (filesel->dir_list), GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC); gtk_clist_column_titles_passive (GTK_CLIST (filesel->dir_list)); gtk_container_border_width (GTK_CONTAINER (filesel->dir_list), 5); @@ -455,9 +440,6 @@ gtk_file_selection_init (GtkFileSelection *filesel) gtk_signal_connect (GTK_OBJECT (filesel->file_list), "select_row", (GtkSignalFunc) gtk_file_selection_file_button, (gpointer) filesel); - gtk_signal_connect (GTK_OBJECT (filesel->file_list), "mouse_double_click", - (GtkSignalFunc) gtk_file_selection_file_button_double, - (gpointer) filesel); gtk_clist_set_policy (GTK_CLIST (filesel->file_list), GTK_POLICY_ALWAYS, GTK_POLICY_AUTOMATIC); gtk_clist_column_titles_passive (GTK_CLIST (filesel->file_list)); gtk_container_border_width (GTK_CONTAINER (filesel->file_list), 5); @@ -1110,32 +1092,10 @@ gtk_file_selection_update_history_menu (GtkFileSelection *fs, static void gtk_file_selection_file_button (GtkWidget *widget, - gint row, - gint column, - gint button, - gpointer user_data) -{ - GtkFileSelection *fs = NULL; - gchar *filename; - - g_return_if_fail (GTK_IS_CLIST (widget)); - - fs = user_data; - g_return_if_fail (fs != NULL); - g_return_if_fail (GTK_IS_FILE_SELECTION (fs)); - - filename = gtk_clist_get_row_data (GTK_CLIST (fs->file_list), row); - - if (filename) - gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename); -} - -static void -gtk_file_selection_file_button_double (GtkWidget *widget, - gint row, - gint column, - gint button, - gpointer user_data) + gint row, + gint column, + GdkEventButton *bevent, + gpointer user_data) { GtkFileSelection *fs = NULL; gchar *filename; @@ -1148,15 +1108,29 @@ gtk_file_selection_file_button_double (GtkWidget *widget, filename = gtk_clist_get_row_data (GTK_CLIST (fs->file_list), row); - if (filename) - gtk_button_clicked (GTK_BUTTON (fs->ok_button)); + if (bevent && filename) + { + switch (bevent->type) + { + case GDK_BUTTON_PRESS: + gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename); + break; + + case GDK_2BUTTON_PRESS: + gtk_button_clicked (GTK_BUTTON (fs->ok_button)); + break; + + default: + break; + } + } } static void gtk_file_selection_dir_button (GtkWidget *widget, gint row, gint column, - gint button, + GdkEventButton *bevent, gpointer user_data) { GtkFileSelection *fs = NULL; @@ -1170,30 +1144,22 @@ gtk_file_selection_dir_button (GtkWidget *widget, filename = gtk_clist_get_row_data (GTK_CLIST (fs->dir_list), row); - if (filename) - gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename); -} - -static void -gtk_file_selection_dir_button_double (GtkWidget *widget, - gint row, - gint column, - gint button, - gpointer user_data) -{ - GtkFileSelection *fs = NULL; - gchar *filename; - - g_return_if_fail (GTK_IS_CLIST (widget)); - - fs = GTK_FILE_SELECTION (user_data); - g_return_if_fail (fs != NULL); - g_return_if_fail (GTK_IS_FILE_SELECTION (fs)); - - filename = gtk_clist_get_row_data (GTK_CLIST (fs->dir_list), row); + if (bevent && filename) { - if (filename) - gtk_file_selection_populate (fs, filename, FALSE); + switch (bevent->type) + { + case GDK_BUTTON_PRESS: + gtk_entry_set_text (GTK_ENTRY (fs->selection_entry), filename); + break; + + case GDK_2BUTTON_PRESS: + gtk_file_selection_populate (fs, filename, FALSE); + break; + + default: + break; + } + } } static void diff --git a/gtk/testgtk.c b/gtk/testgtk.c index d520e52af2..1ef4c2b790 100644 --- a/gtk/testgtk.c +++ b/gtk/testgtk.c @@ -1660,30 +1660,10 @@ hide_titles_clist (GtkWidget *widget, gpointer data) } void -mouse_click_clist (GtkWidget *widget, - gint row, - gint column, - gint button) -{ - g_print ("GtkCList Mouse Click: row %d column %d button %d\n", - row, column, button); -} - -void -mouse_double_click_clist (GtkWidget *widget, - gint row, - gint column, - gint button) -{ - g_print ("GtkCList Mouse Double Click: row %d column %d button %d\n", - row, column, button); -} - -void select_clist (GtkWidget *widget, gint row, gint column, - gint button) + GdkEventButton * bevent) { gint i; guint8 spacing; @@ -1692,7 +1672,7 @@ select_clist (GtkWidget *widget, GdkBitmap *mask; g_print ("GtkCList Selection: row %d column %d button %d\n", - row, column, button); + row, column, bevent ? bevent->button : 0); for (i = 0; i < TESTGTK_CLIST_COLUMNS; i++) { @@ -1731,55 +1711,6 @@ select_clist (GtkWidget *widget, } void -unselect_clist (GtkWidget *widget, - gint row, - gint column, - gint button) -{ - gint i; - guint8 spacing; - gchar *text; - GdkPixmap *pixmap; - GdkBitmap *mask; - - g_print ("GtkCList UnSelection: row %d column %d button %d\n", - row, column, button); - - for (i = 0; i < TESTGTK_CLIST_COLUMNS; i++) - { - switch (gtk_clist_get_cell_type (GTK_CLIST (widget), row, i)) - { - case GTK_CELL_TEXT: - g_print ("CELL %d GTK_CELL_TEXT\n", i); - gtk_clist_get_text (GTK_CLIST (widget), row, i, &text); - g_print ("TEXT: %s\n", text); - break; - - case GTK_CELL_PIXMAP: - g_print ("CELL %d GTK_CELL_PIXMAP\n", i); - gtk_clist_get_pixmap (GTK_CLIST (widget), row, i, &pixmap, &mask); - g_print ("PIXMAP: %d\n", (int) pixmap); - g_print ("MASK: %d\n", (int) mask); - break; - - case GTK_CELL_PIXTEXT: - g_print ("CELL %d GTK_CELL_PIXTEXT\n", i); - gtk_clist_get_pixtext (GTK_CLIST (widget), row, i, &text, &spacing, &pixmap, &mask); - g_print ("TEXT: %s\n", text); - g_print ("SPACING: %d\n", spacing); - g_print ("PIXMAP: %d\n", (int) pixmap); - g_print ("MASK: %d\n", (int) mask); - break; - - default: - break; - } - } - - g_print ("\n\n"); -} - -void list_selection_clist (GtkWidget *widget, gpointer data) { } @@ -1919,23 +1850,11 @@ create_clist () * the rest of the clist configuration */ gtk_clist_set_row_height (GTK_CLIST (clist), 20); - - gtk_signal_connect (GTK_OBJECT (clist), - "mouse_click", - (GtkSignalFunc) mouse_click_clist, - NULL); - gtk_signal_connect (GTK_OBJECT (clist), - "mouse_double_click", - (GtkSignalFunc) mouse_double_click_clist, - NULL); + gtk_signal_connect (GTK_OBJECT (clist), "select_row", (GtkSignalFunc) select_clist, NULL); - gtk_signal_connect (GTK_OBJECT (clist), - "unselect_row", - (GtkSignalFunc) unselect_clist, - NULL); gtk_clist_set_column_width (GTK_CLIST (clist), 0, 100); |