diff --git a/ChangeLog b/ChangeLog index 488575a62d..479a131b20 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2001-05-14 Sven Neumann + + * app/ops_buttons.[ch]: use GimpButton and connect to extended_clicked. + + * app/docindex.c + * app/gui/paths-dialog.c: changed accordingly. + 2001-05-14 Sven Neumann * app/Makefile.am diff --git a/app/docindex.c b/app/docindex.c index 8ce044f838..4fabd05f15 100644 --- a/app/docindex.c +++ b/app/docindex.c @@ -122,19 +122,19 @@ static OpsButton ops_buttons[] = N_("Open the selected entry\n" " Raise window if already open\n" " Load Image dialog"), NULL, - NULL, 0 }, + NULL }, { raise_xpm, idea_up_callback, raise_ext_callbacks, N_("Move the selected entry up in the index\n" " To top"), NULL, - NULL, 0 }, + NULL }, { lower_xpm, idea_down_callback, lower_ext_callbacks, N_("Move the selected entry down in the index\n" " To bottom"), NULL, - NULL, 0 }, + NULL }, { delete_xpm, idea_remove_callback, NULL, N_("Remove the selected entry from the index"), NULL, - NULL, 0 }, - { NULL, NULL, NULL, NULL, NULL, NULL, 0 } + NULL }, + { NULL, NULL, NULL, NULL, NULL, NULL } }; diff --git a/app/gui/paths-dialog.c b/app/gui/paths-dialog.c index f12a1d6c12..99409e3613 100644 --- a/app/gui/paths-dialog.c +++ b/app/gui/paths-dialog.c @@ -155,28 +155,28 @@ static OpsButton paths_ops_buttons[] = { new_xpm, paths_dialog_new_path_callback, NULL, N_("New Path"), "paths/new_path.html", - NULL, 0 }, + NULL }, { duplicate_xpm, paths_dialog_dup_path_callback, NULL, N_("Duplicate Path"), "paths/duplicate_path.html", - NULL, 0 }, + NULL }, { toselection_xpm, paths_dialog_path_to_sel_callback, NULL, N_("Path to Selection"), "paths/path_to_selection.html", - NULL, 0 }, + NULL }, { topath_xpm, paths_dialog_sel_to_path_callback, to_path_ext_callbacks, N_("Selection to Path"), "filters/sel2path.html", - NULL, 0 }, + NULL }, { penstroke_xpm, paths_dialog_stroke_path_callback, NULL, N_("Stroke Path"), "paths/stroke_path.html", - NULL, 0 }, + NULL }, { delete_xpm, paths_dialog_delete_path_callback, NULL, N_("Delete Path"), "paths/delete_path.html", - NULL, 0 }, - { NULL, NULL, NULL, NULL, NULL, NULL, 0 } + NULL }, + { NULL, NULL, NULL, NULL, NULL, NULL } }; static OpsButton point_ops_buttons[] = @@ -184,20 +184,20 @@ static OpsButton point_ops_buttons[] = { pennorm_xpm, paths_dialog_new_point_callback, NULL, N_("New Point"), "#new_point_button", - NULL, 0 }, + NULL }, { penadd_xpm, paths_dialog_add_point_callback, NULL, N_("Add Point"), "#add_point_button", - NULL, 0 }, + NULL }, { pendel_xpm, paths_dialog_delete_point_callback, NULL, N_("Delete Point"), "#delete_point_button", - NULL, 0 }, + NULL }, { penedit_xpm, paths_dialog_edit_point_callback, NULL, N_("Edit Point"), "#edit_point_button", - NULL, 0 }, - { NULL, NULL, NULL, NULL, NULL, NULL, 0 } + NULL }, + { NULL, NULL, NULL, NULL, NULL, NULL } }; static void diff --git a/app/ops_buttons.c b/app/ops_buttons.c index 2b50a4d8a1..b8743cad7a 100644 --- a/app/ops_buttons.c +++ b/app/ops_buttons.c @@ -22,18 +22,25 @@ #include "libgimpwidgets/gimpwidgets.h" -#include "apptypes.h" - #include "ops_buttons.h" #include "libgimp/gimpintl.h" -static void ops_button_pressed_callback (GtkWidget *widget, - GdkEventButton *bevent, - gpointer data); -static void ops_button_extended_callback (GtkWidget *widget, - gpointer data); +typedef enum +{ + OPS_BUTTON_MODIFIER_NONE, + OPS_BUTTON_MODIFIER_SHIFT, + OPS_BUTTON_MODIFIER_CTRL, + OPS_BUTTON_MODIFIER_ALT, + OPS_BUTTON_MODIFIER_SHIFT_CTRL, + OPS_BUTTON_MODIFIER_LAST +} OpsButtonModifier; + + +static void ops_button_extended_clicked (GtkWidget *widget, + guint modifier_state, + gpointer data); GtkWidget * @@ -54,7 +61,7 @@ ops_button_box_new (OpsButton *ops_button, switch (ops_type) { case OPS_BUTTON_NORMAL: - button = gtk_button_new (); + button = gimp_button_new (); break; case OPS_BUTTON_RADIO: @@ -78,12 +85,9 @@ ops_button_box_new (OpsButton *ops_button, } else { - gtk_signal_connect (GTK_OBJECT (button), "button_press_event", - GTK_SIGNAL_FUNC (ops_button_pressed_callback), + gtk_signal_connect (GTK_OBJECT (button), "extended_clicked", + GTK_SIGNAL_FUNC (ops_button_extended_clicked), ops_button); - gtk_signal_connect (GTK_OBJECT (button), "clicked", - GTK_SIGNAL_FUNC (ops_button_extended_callback), - ops_button); } gimp_help_set_help_data (button, @@ -96,7 +100,6 @@ ops_button_box_new (OpsButton *ops_button, gtk_widget_show (button); ops_button->widget = button; - ops_button->modifier = OPS_BUTTON_MODIFIER_NONE; ops_button++; } @@ -105,49 +108,38 @@ ops_button_box_new (OpsButton *ops_button, } static void -ops_button_pressed_callback (GtkWidget *widget, - GdkEventButton *bevent, - gpointer data) +ops_button_extended_clicked (GtkWidget *widget, + guint modifier_state, + gpointer data) { - OpsButton *ops_button; + OpsButton *ops_button; + OpsButtonModifier modifier; g_return_if_fail (data != NULL); ops_button = (OpsButton *) data; - if (bevent->state & GDK_SHIFT_MASK) + if (modifier_state & GDK_SHIFT_MASK) { - if (bevent->state & GDK_CONTROL_MASK) - ops_button->modifier = OPS_BUTTON_MODIFIER_SHIFT_CTRL; + if (modifier_state & GDK_CONTROL_MASK) + modifier = OPS_BUTTON_MODIFIER_SHIFT_CTRL; else - ops_button->modifier = OPS_BUTTON_MODIFIER_SHIFT; + modifier = OPS_BUTTON_MODIFIER_SHIFT; } - else if (bevent->state & GDK_CONTROL_MASK) - ops_button->modifier = OPS_BUTTON_MODIFIER_CTRL; - else if (bevent->state & GDK_MOD1_MASK) - ops_button->modifier = OPS_BUTTON_MODIFIER_ALT; + else if (modifier_state & GDK_CONTROL_MASK) + modifier = OPS_BUTTON_MODIFIER_CTRL; + else if (modifier_state & GDK_MOD1_MASK) + modifier = OPS_BUTTON_MODIFIER_ALT; else - ops_button->modifier = OPS_BUTTON_MODIFIER_NONE; -} + modifier = OPS_BUTTON_MODIFIER_NONE; -static void -ops_button_extended_callback (GtkWidget *widget, - gpointer data) -{ - OpsButton *ops_button; - - g_return_if_fail (data != NULL); - ops_button = (OpsButton *) data; - - if (ops_button->modifier > OPS_BUTTON_MODIFIER_NONE && - ops_button->modifier < OPS_BUTTON_MODIFIER_LAST) + if (modifier > OPS_BUTTON_MODIFIER_NONE && + modifier < OPS_BUTTON_MODIFIER_LAST) { - if (ops_button->ext_callbacks[ops_button->modifier - 1] != NULL) - (ops_button->ext_callbacks[ops_button->modifier - 1]) (widget, NULL); + if (ops_button->ext_callbacks[modifier - 1] != NULL) + (ops_button->ext_callbacks[modifier - 1]) (widget, NULL); else (ops_button->callback) (widget, NULL); } else (ops_button->callback) (widget, NULL); - - ops_button->modifier = OPS_BUTTON_MODIFIER_NONE; } diff --git a/app/ops_buttons.h b/app/ops_buttons.h index ccccdfe848..fa718afd9a 100644 --- a/app/ops_buttons.h +++ b/app/ops_buttons.h @@ -20,16 +20,6 @@ #define __OPS_BUTTONS_H__ -typedef enum -{ - OPS_BUTTON_MODIFIER_NONE, - OPS_BUTTON_MODIFIER_SHIFT, - OPS_BUTTON_MODIFIER_CTRL, - OPS_BUTTON_MODIFIER_ALT, - OPS_BUTTON_MODIFIER_SHIFT_CTRL, - OPS_BUTTON_MODIFIER_LAST -} OpsButtonModifier; - typedef enum { OPS_BUTTON_NORMAL, @@ -47,7 +37,6 @@ struct _OpsButton gchar *tooltip; gchar *private_tip; GtkWidget *widget; /* the button widget */ - gint modifier; }; /* Function declarations */