use GimpButton and connect to extended_clicked.

2001-05-14  Sven Neumann  <sven@gimp.org>

        * app/ops_buttons.[ch]: use GimpButton and connect to extended_clicked.

        * app/docindex.c
        * app/gui/paths-dialog.c: changed accordingly.
This commit is contained in:
Sven Neumann 2001-05-14 00:29:38 +00:00 committed by Sven Neumann
parent fdbdb390ab
commit 1f17b12681
5 changed files with 59 additions and 71 deletions

View File

@ -1,3 +1,10 @@
2001-05-14 Sven Neumann <sven@gimp.org>
* 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 <sven@gimp.org> 2001-05-14 Sven Neumann <sven@gimp.org>
* app/Makefile.am * app/Makefile.am

View File

@ -122,19 +122,19 @@ static OpsButton ops_buttons[] =
N_("Open the selected entry\n" N_("Open the selected entry\n"
"<Shift> Raise window if already open\n" "<Shift> Raise window if already open\n"
"<Ctrl> Load Image dialog"), NULL, "<Ctrl> Load Image dialog"), NULL,
NULL, 0 }, NULL },
{ raise_xpm, idea_up_callback, raise_ext_callbacks, { raise_xpm, idea_up_callback, raise_ext_callbacks,
N_("Move the selected entry up in the index\n" N_("Move the selected entry up in the index\n"
"<Shift> To top"), NULL, "<Shift> To top"), NULL,
NULL, 0 }, NULL },
{ lower_xpm, idea_down_callback, lower_ext_callbacks, { lower_xpm, idea_down_callback, lower_ext_callbacks,
N_("Move the selected entry down in the index\n" N_("Move the selected entry down in the index\n"
"<Shift> To bottom"), NULL, "<Shift> To bottom"), NULL,
NULL, 0 }, NULL },
{ delete_xpm, idea_remove_callback, NULL, { delete_xpm, idea_remove_callback, NULL,
N_("Remove the selected entry from the index"), NULL, N_("Remove the selected entry from the index"), NULL,
NULL, 0 }, NULL },
{ NULL, NULL, NULL, NULL, NULL, NULL, 0 } { NULL, NULL, NULL, NULL, NULL, NULL }
}; };

View File

@ -155,28 +155,28 @@ static OpsButton paths_ops_buttons[] =
{ new_xpm, paths_dialog_new_path_callback, NULL, { new_xpm, paths_dialog_new_path_callback, NULL,
N_("New Path"), N_("New Path"),
"paths/new_path.html", "paths/new_path.html",
NULL, 0 }, NULL },
{ duplicate_xpm, paths_dialog_dup_path_callback, NULL, { duplicate_xpm, paths_dialog_dup_path_callback, NULL,
N_("Duplicate Path"), N_("Duplicate Path"),
"paths/duplicate_path.html", "paths/duplicate_path.html",
NULL, 0 }, NULL },
{ toselection_xpm, paths_dialog_path_to_sel_callback, NULL, { toselection_xpm, paths_dialog_path_to_sel_callback, NULL,
N_("Path to Selection"), N_("Path to Selection"),
"paths/path_to_selection.html", "paths/path_to_selection.html",
NULL, 0 }, NULL },
{ topath_xpm, paths_dialog_sel_to_path_callback, to_path_ext_callbacks, { topath_xpm, paths_dialog_sel_to_path_callback, to_path_ext_callbacks,
N_("Selection to Path"), N_("Selection to Path"),
"filters/sel2path.html", "filters/sel2path.html",
NULL, 0 }, NULL },
{ penstroke_xpm, paths_dialog_stroke_path_callback, NULL, { penstroke_xpm, paths_dialog_stroke_path_callback, NULL,
N_("Stroke Path"), N_("Stroke Path"),
"paths/stroke_path.html", "paths/stroke_path.html",
NULL, 0 }, NULL },
{ delete_xpm, paths_dialog_delete_path_callback, NULL, { delete_xpm, paths_dialog_delete_path_callback, NULL,
N_("Delete Path"), N_("Delete Path"),
"paths/delete_path.html", "paths/delete_path.html",
NULL, 0 }, NULL },
{ NULL, NULL, NULL, NULL, NULL, NULL, 0 } { NULL, NULL, NULL, NULL, NULL, NULL }
}; };
static OpsButton point_ops_buttons[] = static OpsButton point_ops_buttons[] =
@ -184,20 +184,20 @@ static OpsButton point_ops_buttons[] =
{ pennorm_xpm, paths_dialog_new_point_callback, NULL, { pennorm_xpm, paths_dialog_new_point_callback, NULL,
N_("New Point"), N_("New Point"),
"#new_point_button", "#new_point_button",
NULL, 0 }, NULL },
{ penadd_xpm, paths_dialog_add_point_callback, NULL, { penadd_xpm, paths_dialog_add_point_callback, NULL,
N_("Add Point"), N_("Add Point"),
"#add_point_button", "#add_point_button",
NULL, 0 }, NULL },
{ pendel_xpm, paths_dialog_delete_point_callback, NULL, { pendel_xpm, paths_dialog_delete_point_callback, NULL,
N_("Delete Point"), N_("Delete Point"),
"#delete_point_button", "#delete_point_button",
NULL, 0 }, NULL },
{ penedit_xpm, paths_dialog_edit_point_callback, NULL, { penedit_xpm, paths_dialog_edit_point_callback, NULL,
N_("Edit Point"), N_("Edit Point"),
"#edit_point_button", "#edit_point_button",
NULL, 0 }, NULL },
{ NULL, NULL, NULL, NULL, NULL, NULL, 0 } { NULL, NULL, NULL, NULL, NULL, NULL }
}; };
static void static void

View File

@ -22,18 +22,25 @@
#include "libgimpwidgets/gimpwidgets.h" #include "libgimpwidgets/gimpwidgets.h"
#include "apptypes.h"
#include "ops_buttons.h" #include "ops_buttons.h"
#include "libgimp/gimpintl.h" #include "libgimp/gimpintl.h"
static void ops_button_pressed_callback (GtkWidget *widget, typedef enum
GdkEventButton *bevent, {
gpointer data); OPS_BUTTON_MODIFIER_NONE,
static void ops_button_extended_callback (GtkWidget *widget, OPS_BUTTON_MODIFIER_SHIFT,
gpointer data); 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 * GtkWidget *
@ -54,7 +61,7 @@ ops_button_box_new (OpsButton *ops_button,
switch (ops_type) switch (ops_type)
{ {
case OPS_BUTTON_NORMAL: case OPS_BUTTON_NORMAL:
button = gtk_button_new (); button = gimp_button_new ();
break; break;
case OPS_BUTTON_RADIO: case OPS_BUTTON_RADIO:
@ -78,12 +85,9 @@ ops_button_box_new (OpsButton *ops_button,
} }
else else
{ {
gtk_signal_connect (GTK_OBJECT (button), "button_press_event", gtk_signal_connect (GTK_OBJECT (button), "extended_clicked",
GTK_SIGNAL_FUNC (ops_button_pressed_callback), GTK_SIGNAL_FUNC (ops_button_extended_clicked),
ops_button); ops_button);
gtk_signal_connect (GTK_OBJECT (button), "clicked",
GTK_SIGNAL_FUNC (ops_button_extended_callback),
ops_button);
} }
gimp_help_set_help_data (button, gimp_help_set_help_data (button,
@ -96,7 +100,6 @@ ops_button_box_new (OpsButton *ops_button,
gtk_widget_show (button); gtk_widget_show (button);
ops_button->widget = button; ops_button->widget = button;
ops_button->modifier = OPS_BUTTON_MODIFIER_NONE;
ops_button++; ops_button++;
} }
@ -105,49 +108,38 @@ ops_button_box_new (OpsButton *ops_button,
} }
static void static void
ops_button_pressed_callback (GtkWidget *widget, ops_button_extended_clicked (GtkWidget *widget,
GdkEventButton *bevent, guint modifier_state,
gpointer data) gpointer data)
{ {
OpsButton *ops_button; OpsButton *ops_button;
OpsButtonModifier modifier;
g_return_if_fail (data != NULL); g_return_if_fail (data != NULL);
ops_button = (OpsButton *) data; ops_button = (OpsButton *) data;
if (bevent->state & GDK_SHIFT_MASK) if (modifier_state & GDK_SHIFT_MASK)
{ {
if (bevent->state & GDK_CONTROL_MASK) if (modifier_state & GDK_CONTROL_MASK)
ops_button->modifier = OPS_BUTTON_MODIFIER_SHIFT_CTRL; modifier = OPS_BUTTON_MODIFIER_SHIFT_CTRL;
else else
ops_button->modifier = OPS_BUTTON_MODIFIER_SHIFT; modifier = OPS_BUTTON_MODIFIER_SHIFT;
} }
else if (bevent->state & GDK_CONTROL_MASK) else if (modifier_state & GDK_CONTROL_MASK)
ops_button->modifier = OPS_BUTTON_MODIFIER_CTRL; modifier = OPS_BUTTON_MODIFIER_CTRL;
else if (bevent->state & GDK_MOD1_MASK) else if (modifier_state & GDK_MOD1_MASK)
ops_button->modifier = OPS_BUTTON_MODIFIER_ALT; modifier = OPS_BUTTON_MODIFIER_ALT;
else else
ops_button->modifier = OPS_BUTTON_MODIFIER_NONE; modifier = OPS_BUTTON_MODIFIER_NONE;
}
static void if (modifier > OPS_BUTTON_MODIFIER_NONE &&
ops_button_extended_callback (GtkWidget *widget, modifier < OPS_BUTTON_MODIFIER_LAST)
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 (ops_button->ext_callbacks[ops_button->modifier - 1] != NULL) if (ops_button->ext_callbacks[modifier - 1] != NULL)
(ops_button->ext_callbacks[ops_button->modifier - 1]) (widget, NULL); (ops_button->ext_callbacks[modifier - 1]) (widget, NULL);
else else
(ops_button->callback) (widget, NULL); (ops_button->callback) (widget, NULL);
} }
else else
(ops_button->callback) (widget, NULL); (ops_button->callback) (widget, NULL);
ops_button->modifier = OPS_BUTTON_MODIFIER_NONE;
} }

View File

@ -20,16 +20,6 @@
#define __OPS_BUTTONS_H__ #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 typedef enum
{ {
OPS_BUTTON_NORMAL, OPS_BUTTON_NORMAL,
@ -47,7 +37,6 @@ struct _OpsButton
gchar *tooltip; gchar *tooltip;
gchar *private_tip; gchar *private_tip;
GtkWidget *widget; /* the button widget */ GtkWidget *widget; /* the button widget */
gint modifier;
}; };
/* Function declarations */ /* Function declarations */