app/widgets/Makefile.am app/widgets/widgets-types.h new GtkAction subclass

2004-04-27  Michael Natterer  <mitch@gimp.org>

	* app/widgets/Makefile.am
	* app/widgets/widgets-types.h
	* app/widgets/gimppluginaction.[ch]: new GtkAction subclass which
	remembers the PlugInProcDef.

	* app/widgets/gimpactiongroup.[ch]: added "gpointer user_data" to
	the GimpActionGroup struct and to gimp_action_group_new(). Removed
	the user_data parameter from gimp_action_group_add_*_actions().

	* app/widgets/gimpactionfactory.[ch]: changed accordingly.

	* app/actions/*-actions.[ch]: removed user_data from all setup_funcs.

	* app/actions/plug-in-actions.c: use a GimpPlugInAction and
	finally use the right user_data for the callback so plug-in
	callbacks have a proper context.

	* app/gui/plug-in-menus.[ch]: renamed plug_in_menus_create2() to
	plug_in_menus_setup().

	* app/gui/image-menu.c
	* app/gui/toolbox-menu.c: changed accordingly.
This commit is contained in:
Michael Natterer
2004-04-27 13:55:26 +00:00
committed by Michael Natterer
parent a5130581db
commit aae726ee94
83 changed files with 470 additions and 317 deletions

View File

@ -1,3 +1,28 @@
2004-04-27 Michael Natterer <mitch@gimp.org>
* app/widgets/Makefile.am
* app/widgets/widgets-types.h
* app/widgets/gimppluginaction.[ch]: new GtkAction subclass which
remembers the PlugInProcDef.
* app/widgets/gimpactiongroup.[ch]: added "gpointer user_data" to
the GimpActionGroup struct and to gimp_action_group_new(). Removed
the user_data parameter from gimp_action_group_add_*_actions().
* app/widgets/gimpactionfactory.[ch]: changed accordingly.
* app/actions/*-actions.[ch]: removed user_data from all setup_funcs.
* app/actions/plug-in-actions.c: use a GimpPlugInAction and
finally use the right user_data for the callback so plug-in
callbacks have a proper context.
* app/gui/plug-in-menus.[ch]: renamed plug_in_menus_create2() to
plug_in_menus_setup().
* app/gui/image-menu.c
* app/gui/toolbox-menu.c: changed accordingly.
2004-04-27 Michael Natterer <mitch@gimp.org>
* app/widgets/gimpactiongroup.[ch]: removed "translation-domain"

View File

@ -71,13 +71,11 @@ static GimpActionEntry brushes_actions[] =
void
brushes_actions_setup (GimpActionGroup *group,
gpointer data)
brushes_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
brushes_actions,
G_N_ELEMENTS (brushes_actions),
data);
G_N_ELEMENTS (brushes_actions));
}
void

View File

@ -20,8 +20,7 @@
#define __BRUSHES_ACTIONS_H__
void brushes_actions_setup (GimpActionGroup *group,
gpointer data);
void brushes_actions_setup (GimpActionGroup *group);
void brushes_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -64,13 +64,11 @@ static GimpActionEntry buffers_actions[] =
void
buffers_actions_setup (GimpActionGroup *group,
gpointer data)
buffers_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
buffers_actions,
G_N_ELEMENTS (buffers_actions),
data);
G_N_ELEMENTS (buffers_actions));
}
void

View File

@ -20,8 +20,7 @@
#define __BUFFERS_ACTIONS_H__
void buffers_actions_setup (GimpActionGroup *group,
gpointer data);
void buffers_actions_setup (GimpActionGroup *group);
void buffers_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -108,19 +108,16 @@ static GimpEnumActionEntry channels_to_selection_actions[] =
void
channels_actions_setup (GimpActionGroup *group,
gpointer data)
channels_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
channels_actions,
G_N_ELEMENTS (channels_actions),
data);
G_N_ELEMENTS (channels_actions));
gimp_action_group_add_enum_actions (group,
channels_to_selection_actions,
G_N_ELEMENTS (channels_to_selection_actions),
G_CALLBACK (channels_to_selection_cmd_callback),
data);
G_CALLBACK (channels_to_selection_cmd_callback));
}
void

View File

@ -20,8 +20,7 @@
#define __CHANNELS_ACTIONS_H__
void channels_actions_setup (GimpActionGroup *group,
gpointer data);
void channels_actions_setup (GimpActionGroup *group);
void channels_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -62,19 +62,16 @@ static GimpEnumActionEntry colormap_editor_add_color_actions[] =
void
colormap_editor_actions_setup (GimpActionGroup *group,
gpointer data)
colormap_editor_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
colormap_editor_actions,
G_N_ELEMENTS (colormap_editor_actions),
data);
G_N_ELEMENTS (colormap_editor_actions));
gimp_action_group_add_enum_actions (group,
colormap_editor_add_color_actions,
G_N_ELEMENTS (colormap_editor_add_color_actions),
G_CALLBACK (colormap_editor_add_color_cmd_callback),
data);
G_CALLBACK (colormap_editor_add_color_cmd_callback));
}
void

View File

@ -20,8 +20,7 @@
#define __COLORMAP_EDITOR_ACTIONS_H__
void colormap_editor_actions_setup (GimpActionGroup *group,
gpointer data);
void colormap_editor_actions_setup (GimpActionGroup *group);
void colormap_editor_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -62,19 +62,16 @@ static GimpEnumActionEntry colormap_editor_add_color_actions[] =
void
colormap_editor_actions_setup (GimpActionGroup *group,
gpointer data)
colormap_editor_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
colormap_editor_actions,
G_N_ELEMENTS (colormap_editor_actions),
data);
G_N_ELEMENTS (colormap_editor_actions));
gimp_action_group_add_enum_actions (group,
colormap_editor_add_color_actions,
G_N_ELEMENTS (colormap_editor_add_color_actions),
G_CALLBACK (colormap_editor_add_color_cmd_callback),
data);
G_CALLBACK (colormap_editor_add_color_cmd_callback));
}
void

View File

@ -20,8 +20,7 @@
#define __COLORMAP_EDITOR_ACTIONS_H__
void colormap_editor_actions_setup (GimpActionGroup *group,
gpointer data);
void colormap_editor_actions_setup (GimpActionGroup *group);
void colormap_editor_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -48,13 +48,11 @@ static GimpActionEntry debug_actions[] =
void
debug_actions_setup (GimpActionGroup *group,
gpointer data)
debug_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
debug_actions,
G_N_ELEMENTS (debug_actions),
data);
G_N_ELEMENTS (debug_actions));
}
void

View File

@ -20,8 +20,7 @@
#define __DEBUG_ACTIONS_H__
void debug_actions_setup (GimpActionGroup *group,
gpointer data);
void debug_actions_setup (GimpActionGroup *group);
void debug_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -202,25 +202,21 @@ static GimpStringActionEntry dialogs_toplevel_actions[] =
void
dialogs_actions_setup (GimpActionGroup *group,
gpointer data)
dialogs_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
dialogs_actions,
G_N_ELEMENTS (dialogs_actions),
data);
G_N_ELEMENTS (dialogs_actions));
gimp_action_group_add_string_actions (group,
dialogs_dockable_actions,
G_N_ELEMENTS (dialogs_dockable_actions),
G_CALLBACK (dialogs_create_dockable_cmd_callback),
data);
G_CALLBACK (dialogs_create_dockable_cmd_callback));
gimp_action_group_add_string_actions (group,
dialogs_toplevel_actions,
G_N_ELEMENTS (dialogs_toplevel_actions),
G_CALLBACK (dialogs_create_toplevel_cmd_callback),
data);
G_CALLBACK (dialogs_create_toplevel_cmd_callback));
}
void

View File

@ -24,8 +24,7 @@ extern GimpStringActionEntry dialogs_dockable_actions[];
extern gint n_dialogs_dockable_actions;
void dialogs_actions_setup (GimpActionGroup *group,
gpointer data);
void dialogs_actions_setup (GimpActionGroup *group);
void dialogs_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -133,45 +133,38 @@ static GimpRadioActionEntry dockable_view_type_actions[] =
void
dockable_actions_setup (GimpActionGroup *group,
gpointer data)
dockable_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
dockable_actions,
G_N_ELEMENTS (dockable_actions),
data);
G_N_ELEMENTS (dockable_actions));
gimp_action_group_add_toggle_actions (group,
dockable_toggle_actions,
G_N_ELEMENTS (dockable_toggle_actions),
data);
G_N_ELEMENTS (dockable_toggle_actions));
gimp_action_group_add_string_actions (group,
dialogs_dockable_actions,
n_dialogs_dockable_actions,
G_CALLBACK (dockable_add_tab_cmd_callback),
data);
G_CALLBACK (dockable_add_tab_cmd_callback));
gimp_action_group_add_radio_actions (group,
dockable_preview_size_actions,
G_N_ELEMENTS (dockable_preview_size_actions),
GIMP_PREVIEW_SIZE_MEDIUM,
G_CALLBACK (dockable_preview_size_cmd_callback),
data);
G_CALLBACK (dockable_preview_size_cmd_callback));
gimp_action_group_add_radio_actions (group,
dockable_tab_style_actions,
G_N_ELEMENTS (dockable_tab_style_actions),
GIMP_TAB_STYLE_PREVIEW,
G_CALLBACK (dockable_tab_style_cmd_callback),
data);
G_CALLBACK (dockable_tab_style_cmd_callback));
gimp_action_group_add_radio_actions (group,
dockable_view_type_actions,
G_N_ELEMENTS (dockable_view_type_actions),
GIMP_VIEW_TYPE_LIST,
G_CALLBACK (dockable_toggle_view_cmd_callback),
data);
G_CALLBACK (dockable_toggle_view_cmd_callback));
}
void

View File

@ -20,8 +20,7 @@
#define __DOCKABLE_ACTIONS_H__
void dockable_actions_setup (GimpActionGroup *group,
gpointer data);
void dockable_actions_setup (GimpActionGroup *group);
void dockable_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -79,13 +79,11 @@ static GimpActionEntry documents_actions[] =
void
documents_actions_setup (GimpActionGroup *group,
gpointer data)
documents_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
documents_actions,
G_N_ELEMENTS (documents_actions),
data);
G_N_ELEMENTS (documents_actions));
}
void

View File

@ -20,8 +20,7 @@
#define __DOCUMENTS_ACTIONS_H__
void documents_actions_setup (GimpActionGroup *group,
gpointer data);
void documents_actions_setup (GimpActionGroup *group);
void documents_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -98,25 +98,21 @@ static GimpEnumActionEntry drawable_rotate_actions[] =
void
drawable_actions_setup (GimpActionGroup *group,
gpointer data)
drawable_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
drawable_actions,
G_N_ELEMENTS (drawable_actions),
data);
G_N_ELEMENTS (drawable_actions));
gimp_action_group_add_enum_actions (group,
drawable_flip_actions,
G_N_ELEMENTS (drawable_flip_actions),
G_CALLBACK (drawable_flip_cmd_callback),
data);
G_CALLBACK (drawable_flip_cmd_callback));
gimp_action_group_add_enum_actions (group,
drawable_rotate_actions,
G_N_ELEMENTS (drawable_rotate_actions),
G_CALLBACK (drawable_rotate_cmd_callback),
data);
G_CALLBACK (drawable_rotate_cmd_callback));
}
void

View File

@ -20,8 +20,7 @@
#define __DRAWABLE_ACTIONS_H__
void drawable_actions_setup (GimpActionGroup *group,
gpointer data);
void drawable_actions_setup (GimpActionGroup *group);
void drawable_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -148,22 +148,19 @@ static GimpEnumActionEntry edit_fill_actions[] =
void
edit_actions_setup (GimpActionGroup *group,
gpointer data)
edit_actions_setup (GimpActionGroup *group)
{
GimpContext *user_context;
GimpRGB color;
gimp_action_group_add_actions (group,
edit_actions,
G_N_ELEMENTS (edit_actions),
data);
G_N_ELEMENTS (edit_actions));
gimp_action_group_add_enum_actions (group,
edit_fill_actions,
G_N_ELEMENTS (edit_fill_actions),
G_CALLBACK (edit_fill_cmd_callback),
data);
G_CALLBACK (edit_fill_cmd_callback));
g_signal_connect_object (group->gimp, "buffer_changed",
G_CALLBACK (edit_actions_buffer_changed),

View File

@ -20,8 +20,7 @@
#define __EDIT_ACTIONS_H__
void edit_actions_setup (GimpActionGroup *group,
gpointer data);
void edit_actions_setup (GimpActionGroup *group);
void edit_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -56,13 +56,11 @@ static GimpActionEntry error_console_actions[] =
void
error_console_actions_setup (GimpActionGroup *group,
gpointer data)
error_console_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
error_console_actions,
G_N_ELEMENTS (error_console_actions),
data);
G_N_ELEMENTS (error_console_actions));
}
void

View File

@ -20,8 +20,7 @@
#define __ERROR_CONSOLE_ACIONS_H__
void error_console_actions_setup (GimpActionGroup *group,
gpointer data);
void error_console_actions_setup (GimpActionGroup *group);
void error_console_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -109,8 +109,7 @@ static GimpActionEntry file_actions[] =
void
file_actions_setup (GimpActionGroup *group,
gpointer data)
file_actions_setup (GimpActionGroup *group)
{
GimpEnumActionEntry *entries;
gint n_entries;
@ -118,8 +117,7 @@ file_actions_setup (GimpActionGroup *group,
gimp_action_group_add_actions (group,
file_actions,
G_N_ELEMENTS (file_actions),
data);
G_N_ELEMENTS (file_actions));
n_entries = GIMP_GUI_CONFIG (group->gimp->config)->last_opened_size;
@ -143,8 +141,7 @@ file_actions_setup (GimpActionGroup *group,
}
gimp_action_group_add_enum_actions (group, entries, n_entries,
G_CALLBACK (file_last_opened_cmd_callback),
data);
G_CALLBACK (file_last_opened_cmd_callback));
for (i = 0; i < n_entries; i++)
{

View File

@ -20,8 +20,7 @@
#define __FILE_ACTIONS_H__
void file_actions_setup (GimpActionGroup *group,
gpointer data);
void file_actions_setup (GimpActionGroup *group);
void file_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -51,13 +51,11 @@ static GimpActionEntry fonts_actions[] =
void
fonts_actions_setup (GimpActionGroup *group,
gpointer data)
fonts_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
fonts_actions,
G_N_ELEMENTS (fonts_actions),
data);
G_N_ELEMENTS (fonts_actions));
}
void

View File

@ -20,8 +20,7 @@
#define __FONTS_ACTIONS_H__
void fonts_actions_setup (GimpActionGroup *group,
gpointer data);
void fonts_actions_setup (GimpActionGroup *group);
void fonts_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -300,52 +300,44 @@ static GimpRadioActionEntry gradient_editor_coloring_actions[] =
void
gradient_editor_actions_setup (GimpActionGroup *group,
gpointer data)
gradient_editor_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
gradient_editor_actions,
G_N_ELEMENTS (gradient_editor_actions),
data);
G_N_ELEMENTS (gradient_editor_actions));
gimp_action_group_add_enum_actions (group,
gradient_editor_load_left_actions,
G_N_ELEMENTS (gradient_editor_load_left_actions),
G_CALLBACK (gradient_editor_load_left_cmd_callback),
data);
G_CALLBACK (gradient_editor_load_left_cmd_callback));
gimp_action_group_add_enum_actions (group,
gradient_editor_save_left_actions,
G_N_ELEMENTS (gradient_editor_save_left_actions),
G_CALLBACK (gradient_editor_save_left_cmd_callback),
data);
G_CALLBACK (gradient_editor_save_left_cmd_callback));
gimp_action_group_add_enum_actions (group,
gradient_editor_load_right_actions,
G_N_ELEMENTS (gradient_editor_load_right_actions),
G_CALLBACK (gradient_editor_load_right_cmd_callback),
data);
G_CALLBACK (gradient_editor_load_right_cmd_callback));
gimp_action_group_add_enum_actions (group,
gradient_editor_save_right_actions,
G_N_ELEMENTS (gradient_editor_save_right_actions),
G_CALLBACK (gradient_editor_save_right_cmd_callback),
data);
G_CALLBACK (gradient_editor_save_right_cmd_callback));
gimp_action_group_add_radio_actions (group,
gradient_editor_blending_actions,
G_N_ELEMENTS (gradient_editor_blending_actions),
0,
G_CALLBACK (gradient_editor_blending_func_cmd_callback),
data);
G_CALLBACK (gradient_editor_blending_func_cmd_callback));
gimp_action_group_add_radio_actions (group,
gradient_editor_coloring_actions,
G_N_ELEMENTS (gradient_editor_coloring_actions),
0,
G_CALLBACK (gradient_editor_coloring_type_cmd_callback),
data);
G_CALLBACK (gradient_editor_coloring_type_cmd_callback));
}
void

View File

@ -20,8 +20,7 @@
#define __GRADIENT_EDITOR_ACTIONS_H__
void gradient_editor_actions_setup (GimpActionGroup *group,
gpointer data);
void gradient_editor_actions_setup (GimpActionGroup *group);
void gradient_editor_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -42,7 +42,7 @@
static GimpActionEntry gradients_actions[] =
{
{ "gradients-popup", NULL, N_("Gradients Menu") },
{ "gradients-popup", GIMP_STOCK_GRADIENT, N_("Gradients Menu") },
{ "gradients-edit", GIMP_STOCK_EDIT,
N_("_Edit Gradient..."), NULL, NULL,
@ -77,13 +77,11 @@ static GimpActionEntry gradients_actions[] =
void
gradients_actions_setup (GimpActionGroup *group,
gpointer data)
gradients_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
gradients_actions,
G_N_ELEMENTS (gradients_actions),
data);
G_N_ELEMENTS (gradients_actions));
}
void

View File

@ -20,8 +20,7 @@
#define __GRADIENTS_ACTIONS_H__
void gradients_actions_setup (GimpActionGroup *group,
gpointer data);
void gradients_actions_setup (GimpActionGroup *group);
void gradients_actions_update (GimpActionGroup *group,
gpointer user_data);

View File

@ -51,13 +51,11 @@ static GimpActionEntry help_actions[] =
void
help_actions_setup (GimpActionGroup *group,
gpointer data)
help_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
help_actions,
G_N_ELEMENTS (help_actions),
data);
G_N_ELEMENTS (help_actions));
}
void

View File

@ -20,8 +20,7 @@
#define __HELP_ACTIONS_H__
void help_actions_setup (GimpActionGroup *group,
gpointer data);
void help_actions_setup (GimpActionGroup *group);
void help_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -137,25 +137,21 @@ static GimpEnumActionEntry image_rotate_actions[] =
void
image_actions_setup (GimpActionGroup *group,
gpointer data)
image_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
image_actions,
G_N_ELEMENTS (image_actions),
data);
G_N_ELEMENTS (image_actions));
gimp_action_group_add_enum_actions (group,
image_flip_actions,
G_N_ELEMENTS (image_flip_actions),
G_CALLBACK (image_flip_cmd_callback),
data);
G_CALLBACK (image_flip_cmd_callback));
gimp_action_group_add_enum_actions (group,
image_rotate_actions,
G_N_ELEMENTS (image_rotate_actions),
G_CALLBACK (image_rotate_cmd_callback),
data);
G_CALLBACK (image_rotate_cmd_callback));
}
void

View File

@ -20,8 +20,7 @@
#define __IMAGE_ACTIONS_H__
void image_actions_setup (GimpActionGroup *group,
gpointer data);
void image_actions_setup (GimpActionGroup *group);
void image_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -59,13 +59,11 @@ static GimpActionEntry images_actions[] =
void
images_actions_setup (GimpActionGroup *group,
gpointer data)
images_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
images_actions,
G_N_ELEMENTS (images_actions),
data);
G_N_ELEMENTS (images_actions));
}
void

View File

@ -20,8 +20,7 @@
#define __IMAGES_ACTIONS_H__
void images_actions_setup (GimpActionGroup *group,
gpointer data);
void images_actions_setup (GimpActionGroup *group);
void images_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -233,25 +233,21 @@ static GimpEnumActionEntry layers_alpha_to_selection_actions[] =
};
void
layers_actions_setup (GimpActionGroup *group,
gpointer data)
layers_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
layers_actions,
G_N_ELEMENTS (layers_actions),
data);
G_N_ELEMENTS (layers_actions));
gimp_action_group_add_enum_actions (group,
layers_mask_to_selection_actions,
G_N_ELEMENTS (layers_mask_to_selection_actions),
G_CALLBACK (layers_mask_to_selection_cmd_callback),
data);
G_CALLBACK (layers_mask_to_selection_cmd_callback));
gimp_action_group_add_enum_actions (group,
layers_alpha_to_selection_actions,
G_N_ELEMENTS (layers_alpha_to_selection_actions),
G_CALLBACK (layers_alpha_to_selection_cmd_callback),
data);
G_CALLBACK (layers_alpha_to_selection_cmd_callback));
}
void

View File

@ -20,8 +20,7 @@
#define __LAYERS_ACTIONS_H__
void layers_actions_setup (GimpActionGroup *group,
gpointer data);
void layers_actions_setup (GimpActionGroup *group);
void layers_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -76,13 +76,11 @@ static GimpActionEntry palette_editor_actions[] =
void
palette_editor_actions_setup (GimpActionGroup *group,
gpointer data)
palette_editor_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
palette_editor_actions,
G_N_ELEMENTS (palette_editor_actions),
data);
G_N_ELEMENTS (palette_editor_actions));
}
void

View File

@ -20,8 +20,7 @@
#define __PALETTE_EDITOR_ACTIONS_H__
void palette_editor_actions_setup (GimpActionGroup *group,
gpointer data);
void palette_editor_actions_setup (GimpActionGroup *group);
void palette_editor_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -82,13 +82,11 @@ static GimpActionEntry palettes_actions[] =
void
palettes_actions_setup (GimpActionGroup *group,
gpointer data)
palettes_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
palettes_actions,
G_N_ELEMENTS (palettes_actions),
data);
G_N_ELEMENTS (palettes_actions));
}
void

View File

@ -20,8 +20,7 @@
#define __PALETTES_ACTIONS_H__
void palettes_actions_setup (GimpActionGroup *group,
gpointer data);
void palettes_actions_setup (GimpActionGroup *group);
void palettes_actions_update (GimpActionGroup *group,
gpointer user_data);

View File

@ -71,13 +71,11 @@ static GimpActionEntry patterns_actions[] =
void
patterns_actions_setup (GimpActionGroup *group,
gpointer data)
patterns_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
patterns_actions,
G_N_ELEMENTS (patterns_actions),
data);
G_N_ELEMENTS (patterns_actions));
}
void

View File

@ -20,8 +20,7 @@
#define __PATTERNS_ACTIONS_H__
void patterns_actions_setup (GimpActionGroup *group,
gpointer data);
void patterns_actions_setup (GimpActionGroup *group);
void patterns_actions_update (GimpActionGroup *group,
gpointer user_data);

View File

@ -40,6 +40,7 @@
#include "widgets/gimpactiongroup.h"
#include "widgets/gimphelp-ids.h"
#include "widgets/gimpitemtreeview.h"
#include "widgets/gimppluginaction.h"
#include "display/gimpdisplay.h"
#include "display/gimpdisplayshell.h"
@ -101,21 +102,18 @@ static GimpEnumActionEntry plug_in_repeat_actions[] =
/* public functions */
void
plug_in_actions_setup (GimpActionGroup *group,
gpointer data)
plug_in_actions_setup (GimpActionGroup *group)
{
GSList *list;
gimp_action_group_add_actions (group,
plug_in_actions,
G_N_ELEMENTS (plug_in_actions),
data);
G_N_ELEMENTS (plug_in_actions));
gimp_action_group_add_enum_actions (group,
plug_in_repeat_actions,
G_N_ELEMENTS (plug_in_repeat_actions),
G_CALLBACK (plug_in_repeat_cmd_callback),
data);
G_CALLBACK (plug_in_repeat_cmd_callback));
for (list = group->gimp->plug_in_proc_defs;
list;
@ -290,21 +288,23 @@ plug_in_actions_add_proc (GimpActionGroup *group,
if (p1 && p2)
{
gchar *label;
GtkAction *action;
GimpPlugInAction *action;
label = p2 + 1;
g_print ("adding plug-in action '%s' (%s)\n",
proc_def->db_info.name, label);
action = gtk_action_new (proc_def->db_info.name, label, NULL, NULL);
action = gimp_plug_in_action_new (proc_def->db_info.name,
label, NULL, NULL,
proc_def);
g_signal_connect (action, "activate",
g_signal_connect (action, "selected",
G_CALLBACK (plug_in_run_cmd_callback),
&proc_def->db_info);
group->user_data);
gtk_action_group_add_action_with_accel (GTK_ACTION_GROUP (group),
action,
GTK_ACTION (action),
proc_def->accelerator);
g_object_unref (action);

View File

@ -20,8 +20,7 @@
#define __PLUG_IN_ACTIONS_H__
void plug_in_actions_setup (GimpActionGroup *group,
gpointer data);
void plug_in_actions_setup (GimpActionGroup *group);
void plug_in_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -58,8 +58,7 @@
void
plug_in_run_cmd_callback (GtkWidget *widget,
gpointer data,
guint action)
gpointer data)
{
GtkItemFactory *item_factory;
Gimp *gimp;

View File

@ -21,8 +21,7 @@
void plug_in_run_cmd_callback (GtkWidget *widget,
gpointer data,
guint action);
gpointer data);
void plug_in_repeat_cmd_callback (GtkWidget *widget,
gpointer data,
guint action);

View File

@ -72,25 +72,21 @@ static GimpRadioActionEntry qmask_invert_actions[] =
void
qmask_actions_setup (GimpActionGroup *group,
gpointer data)
qmask_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
qmask_actions,
G_N_ELEMENTS (qmask_actions),
data);
G_N_ELEMENTS (qmask_actions));
gimp_action_group_add_toggle_actions (group,
qmask_toggle_actions,
G_N_ELEMENTS (qmask_toggle_actions),
data);
G_N_ELEMENTS (qmask_toggle_actions));
gimp_action_group_add_radio_actions (group,
qmask_invert_actions,
G_N_ELEMENTS (qmask_invert_actions),
FALSE,
G_CALLBACK (qmask_invert_cmd_callback),
data);
G_CALLBACK (qmask_invert_cmd_callback));
}
void

View File

@ -20,8 +20,7 @@
#define __QMASK_ACTIONS_H__
void qmask_actions_setup (GimpActionGroup *group,
gpointer data);
void qmask_actions_setup (GimpActionGroup *group);
void qmask_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -72,25 +72,21 @@ static GimpRadioActionEntry qmask_invert_actions[] =
void
qmask_actions_setup (GimpActionGroup *group,
gpointer data)
qmask_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
qmask_actions,
G_N_ELEMENTS (qmask_actions),
data);
G_N_ELEMENTS (qmask_actions));
gimp_action_group_add_toggle_actions (group,
qmask_toggle_actions,
G_N_ELEMENTS (qmask_toggle_actions),
data);
G_N_ELEMENTS (qmask_toggle_actions));
gimp_action_group_add_radio_actions (group,
qmask_invert_actions,
G_N_ELEMENTS (qmask_invert_actions),
FALSE,
G_CALLBACK (qmask_invert_cmd_callback),
data);
G_CALLBACK (qmask_invert_cmd_callback));
}
void

View File

@ -20,8 +20,7 @@
#define __QMASK_ACTIONS_H__
void qmask_actions_setup (GimpActionGroup *group,
gpointer data);
void qmask_actions_setup (GimpActionGroup *group);
void qmask_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -123,19 +123,16 @@ static GimpStringActionEntry select_tool_actions[] =
void
select_actions_setup (GimpActionGroup *group,
gpointer data)
select_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
select_actions,
G_N_ELEMENTS (select_actions),
data);
G_N_ELEMENTS (select_actions));
gimp_action_group_add_string_actions (group,
select_tool_actions,
G_N_ELEMENTS (select_tool_actions),
G_CALLBACK (tools_select_cmd_callback),
data);
G_CALLBACK (tools_select_cmd_callback));
}
void

View File

@ -20,8 +20,7 @@
#define __SELECT_ACTIONS_H__
void select_actions_setup (GimpActionGroup *group,
gpointer data);
void select_actions_setup (GimpActionGroup *group);
void select_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -69,13 +69,11 @@ static GimpActionEntry templates_actions[] =
void
templates_actions_setup (GimpActionGroup *group,
gpointer data)
templates_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
templates_actions,
G_N_ELEMENTS (templates_actions),
data);
G_N_ELEMENTS (templates_actions));
}
void

View File

@ -20,8 +20,7 @@
#define __TEMPLATES_ACTIONS_H__
void templates_actions_setup (GimpActionGroup *group,
gpointer data);
void templates_actions_setup (GimpActionGroup *group);
void templates_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -87,13 +87,11 @@ static GimpActionEntry tool_options_actions[] =
gimp_action_group_set_action_important (group, action, (condition) != 0)
void
tool_options_actions_setup (GimpActionGroup *group,
gpointer data)
tool_options_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
tool_options_actions,
G_N_ELEMENTS (tool_options_actions),
data);
G_N_ELEMENTS (tool_options_actions));
SET_IMPORTANT ("tool-options-restore-menu", FALSE);
SET_IMPORTANT ("tool-options-rename-menu", FALSE);

View File

@ -20,8 +20,7 @@
#define __TOOL_OPTIONS_ACTIONS_H__
void tool_options_actions_setup (GimpActionGroup *group,
gpointer data);
void tool_options_actions_setup (GimpActionGroup *group);
void tool_options_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -60,15 +60,13 @@ static GimpActionEntry tools_actions[] =
void
tools_actions_setup (GimpActionGroup *group,
gpointer data)
tools_actions_setup (GimpActionGroup *group)
{
GList *list;
gimp_action_group_add_actions (group,
tools_actions,
G_N_ELEMENTS (tools_actions),
data);
G_N_ELEMENTS (tools_actions));
for (list = GIMP_LIST (group->gimp->tool_info_list)->list;
list;
@ -101,8 +99,7 @@ tools_actions_setup (GimpActionGroup *group,
gimp_action_group_add_string_actions (group,
&entry, 1,
G_CALLBACK (tools_select_cmd_callback),
data);
G_CALLBACK (tools_select_cmd_callback));
g_free (name);
}

View File

@ -20,8 +20,7 @@
#define __TOOLS_ACTIONS_H__
void tools_actions_setup (GimpActionGroup *group,
gpointer data);
void tools_actions_setup (GimpActionGroup *group);
void tools_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -148,19 +148,16 @@ static GimpEnumActionEntry vectors_to_selection_actions[] =
void
vectors_actions_setup (GimpActionGroup *group,
gpointer data)
vectors_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
vectors_actions,
G_N_ELEMENTS (vectors_actions),
data);
G_N_ELEMENTS (vectors_actions));
gimp_action_group_add_enum_actions (group,
vectors_to_selection_actions,
G_N_ELEMENTS (vectors_to_selection_actions),
G_CALLBACK (vectors_to_selection_cmd_callback),
data);
G_CALLBACK (vectors_to_selection_cmd_callback));
}
void

View File

@ -20,8 +20,7 @@
#define __VECTORS_ACTIONS_H__
void vectors_actions_setup (GimpActionGroup *group,
gpointer data);
void vectors_actions_setup (GimpActionGroup *group);
void vectors_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -232,25 +232,21 @@ static GimpRadioActionEntry view_zoom_actions[] =
void
view_actions_setup (GimpActionGroup *group,
gpointer data)
view_actions_setup (GimpActionGroup *group)
{
gimp_action_group_add_actions (group,
view_actions,
G_N_ELEMENTS (view_actions),
data);
G_N_ELEMENTS (view_actions));
gimp_action_group_add_toggle_actions (group,
view_toggle_actions,
G_N_ELEMENTS (view_toggle_actions),
data);
G_N_ELEMENTS (view_toggle_actions));
gimp_action_group_add_radio_actions (group,
view_zoom_actions,
G_N_ELEMENTS (view_zoom_actions),
10000,
G_CALLBACK (view_zoom_cmd_callback),
data);
G_CALLBACK (view_zoom_cmd_callback));
}
void

View File

@ -20,8 +20,7 @@
#define __VIEW_ACTIONS_H__
void view_actions_setup (GimpActionGroup *group,
gpointer data);
void view_actions_setup (GimpActionGroup *group);
void view_actions_update (GimpActionGroup *group,
gpointer data);

View File

@ -1140,7 +1140,7 @@ image_menu_setup2 (GimpUIManager *manager,
const gchar *ui_path)
{
menus_open_recent_add (manager, ui_path);
plug_in_menus_create2 (manager, ui_path);
plug_in_menus_setup (manager, ui_path);
}
void

View File

@ -123,7 +123,7 @@ plug_in_menus_init (Gimp *gimp,
}
void
plug_in_menus_create2 (GimpUIManager *manager,
plug_in_menus_setup (GimpUIManager *manager,
const gchar *ui_path)
{
GTree *menu_entries;

View File

@ -24,7 +24,7 @@ void plug_in_menus_init (Gimp *gimp,
GSList *plug_in_defs,
const gchar *std_plugins_domain);
void plug_in_menus_create2 (GimpUIManager *manager,
void plug_in_menus_setup (GimpUIManager *manager,
const gchar *ui_path);
void plug_in_menus_add_proc (GimpUIManager *manager,
const gchar *ui_path,

View File

@ -290,7 +290,7 @@ toolbox_menu_setup2 (GimpUIManager *manager,
const gchar *ui_path)
{
menus_open_recent_add (manager, ui_path);
plug_in_menus_create2 (manager, ui_path);
plug_in_menus_setup (manager, ui_path);
}
void

View File

@ -1140,7 +1140,7 @@ image_menu_setup2 (GimpUIManager *manager,
const gchar *ui_path)
{
menus_open_recent_add (manager, ui_path);
plug_in_menus_create2 (manager, ui_path);
plug_in_menus_setup (manager, ui_path);
}
void

View File

@ -123,7 +123,7 @@ plug_in_menus_init (Gimp *gimp,
}
void
plug_in_menus_create2 (GimpUIManager *manager,
plug_in_menus_setup (GimpUIManager *manager,
const gchar *ui_path)
{
GTree *menu_entries;

View File

@ -24,7 +24,7 @@ void plug_in_menus_init (Gimp *gimp,
GSList *plug_in_defs,
const gchar *std_plugins_domain);
void plug_in_menus_create2 (GimpUIManager *manager,
void plug_in_menus_setup (GimpUIManager *manager,
const gchar *ui_path);
void plug_in_menus_add_proc (GimpUIManager *manager,
const gchar *ui_path,

View File

@ -290,7 +290,7 @@ toolbox_menu_setup2 (GimpUIManager *manager,
const gchar *ui_path)
{
menus_open_recent_add (manager, ui_path);
plug_in_menus_create2 (manager, ui_path);
plug_in_menus_setup (manager, ui_path);
}
void

View File

@ -148,6 +148,8 @@ libappwidgets_a_sources = \
gimppaletteeditor.h \
gimppatternfactoryview.c \
gimppatternfactoryview.h \
gimppluginaction.c \
gimppluginaction.h \
gimppreview.c \
gimppreview.h \
gimppreview-popup.c \

View File

@ -149,7 +149,7 @@ gimp_action_factory_group_register (GimpActionFactory *factory,
GimpActionGroup *
gimp_action_factory_group_new (GimpActionFactory *factory,
const gchar *identifier,
gpointer setup_data)
gpointer user_data)
{
GList *list;
@ -166,10 +166,11 @@ gimp_action_factory_group_new (GimpActionFactory *factory,
group = gimp_action_group_new (factory->gimp,
entry->identifier,
user_data,
entry->update_func);
if (entry->setup_func)
entry->setup_func (group, setup_data);
entry->setup_func (group);
return group;
}

View File

@ -71,7 +71,7 @@ void gimp_action_factory_group_register (GimpActionFactory *factory,
GimpActionGroup * gimp_action_factory_group_new (GimpActionFactory *factory,
const gchar *identifier,
gpointer setup_data);
gpointer user_data);
#endif /* __GIMP_ACTION_FACTORY_H__ */

View File

@ -235,6 +235,7 @@ gimp_action_group_get_property (GObject *object,
GimpActionGroup *
gimp_action_group_new (Gimp *gimp,
const gchar *name,
gpointer user_data,
GimpActionGroupUpdateFunc update_func)
{
GimpActionGroup *group;
@ -247,6 +248,7 @@ gimp_action_group_new (Gimp *gimp,
"name", name,
NULL);
group->user_data = user_data;
group->update_func = update_func;
return group;
@ -282,8 +284,7 @@ gimp_action_group_update (GimpActionGroup *group,
void
gimp_action_group_add_actions (GimpActionGroup *group,
GimpActionEntry *entries,
guint n_entries,
gpointer user_data)
guint n_entries)
{
gint i;
@ -304,7 +305,7 @@ gimp_action_group_add_actions (GimpActionGroup *group,
if (entries[i].callback)
g_signal_connect (action, "activate",
entries[i].callback,
user_data);
group->user_data);
gtk_action_group_add_action_with_accel (GTK_ACTION_GROUP (group),
action,
@ -316,8 +317,7 @@ gimp_action_group_add_actions (GimpActionGroup *group,
void
gimp_action_group_add_toggle_actions (GimpActionGroup *group,
GimpToggleActionEntry *entries,
guint n_entries,
gpointer user_data)
guint n_entries)
{
gint i;
@ -340,7 +340,7 @@ gimp_action_group_add_toggle_actions (GimpActionGroup *group,
if (entries[i].callback)
g_signal_connect (action, "toggled",
entries[i].callback,
user_data);
group->user_data);
gtk_action_group_add_action_with_accel (GTK_ACTION_GROUP (group),
GTK_ACTION (action),
@ -354,8 +354,7 @@ gimp_action_group_add_radio_actions (GimpActionGroup *group,
GimpRadioActionEntry *entries,
guint n_entries,
gint value,
GCallback callback,
gpointer user_data)
GCallback callback)
{
GtkRadioAction *first_action = NULL;
GSList *radio_group = NULL;
@ -394,15 +393,14 @@ gimp_action_group_add_radio_actions (GimpActionGroup *group,
if (callback && first_action)
g_signal_connect (first_action, "changed",
callback,
user_data);
group->user_data);
}
void
gimp_action_group_add_enum_actions (GimpActionGroup *group,
GimpEnumActionEntry *entries,
guint n_entries,
GCallback callback,
gpointer user_data)
GCallback callback)
{
gint i;
@ -424,7 +422,7 @@ gimp_action_group_add_enum_actions (GimpActionGroup *group,
if (callback)
g_signal_connect (action, "selected",
callback,
user_data);
group->user_data);
gtk_action_group_add_action_with_accel (GTK_ACTION_GROUP (group),
GTK_ACTION (action),
@ -437,8 +435,7 @@ void
gimp_action_group_add_string_actions (GimpActionGroup *group,
GimpStringActionEntry *entries,
guint n_entries,
GCallback callback,
gpointer user_data)
GCallback callback)
{
gint i;
@ -460,7 +457,7 @@ gimp_action_group_add_string_actions (GimpActionGroup *group,
if (callback)
g_signal_connect (action, "selected",
callback,
user_data);
group->user_data);
gtk_action_group_add_action_with_accel (GTK_ACTION_GROUP (group),
GTK_ACTION (action),

View File

@ -40,6 +40,7 @@ struct _GimpActionGroup
GtkActionGroup parent_instance;
Gimp *gimp;
gpointer user_data;
GimpActionGroupUpdateFunc update_func;
};
@ -116,6 +117,7 @@ struct _GimpStringActionEntry
GType gimp_action_group_get_type (void);
GimpActionGroup *gimp_action_group_new (Gimp *gimp,
const gchar *name,
gpointer user_data,
GimpActionGroupUpdateFunc update_func);
GList *gimp_action_groups_from_name (const gchar *name);
@ -125,29 +127,24 @@ void gimp_action_group_update (GimpActionGroup *group,
void gimp_action_group_add_actions (GimpActionGroup *group,
GimpActionEntry *entries,
guint n_entries,
gpointer user_data);
guint n_entries);
void gimp_action_group_add_toggle_actions (GimpActionGroup *group,
GimpToggleActionEntry *entries,
guint n_entries,
gpointer user_data);
guint n_entries);
void gimp_action_group_add_radio_actions (GimpActionGroup *group,
GimpRadioActionEntry *entries,
guint n_entries,
gint value,
GCallback on_change,
gpointer user_data);
GCallback on_change);
void gimp_action_group_add_enum_actions (GimpActionGroup *group,
GimpEnumActionEntry *entries,
guint n_entries,
GCallback callback,
gpointer user_data);
GCallback callback);
void gimp_action_group_add_string_actions (GimpActionGroup *group,
GimpStringActionEntry *entries,
guint n_entries,
GCallback callback,
gpointer user_data);
GCallback callback);
void gimp_action_group_set_action_visible (GimpActionGroup *group,
const gchar *action_name,

View File

@ -0,0 +1,196 @@
/* The GIMP -- an image manipulation program
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* gimppluginaction.c
* Copyright (C) 2004 Michael Natterer <mitch@gimp.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#include "config.h"
#include <gtk/gtk.h>
#include "widgets-types.h"
#include "core/gimpmarshal.h"
#include "gimppluginaction.h"
enum
{
SELECTED,
LAST_SIGNAL
};
enum
{
PROP_0,
PROP_PROC_DEF
};
static void gimp_plug_in_action_init (GimpPlugInAction *action);
static void gimp_plug_in_action_class_init (GimpPlugInActionClass *klass);
static void gimp_plug_in_action_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec);
static void gimp_plug_in_action_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec);
static void gimp_plug_in_action_activate (GtkAction *action);
static GtkActionClass *parent_class = NULL;
static guint action_signals[LAST_SIGNAL] = { 0 };
GType
gimp_plug_in_action_get_type (void)
{
static GType type = 0;
if (!type)
{
static const GTypeInfo type_info =
{
sizeof (GimpPlugInActionClass),
(GBaseInitFunc) NULL,
(GBaseFinalizeFunc) NULL,
(GClassInitFunc) gimp_plug_in_action_class_init,
(GClassFinalizeFunc) NULL,
NULL,
sizeof (GimpPlugInAction),
0, /* n_preallocs */
(GInstanceInitFunc) gimp_plug_in_action_init,
};
type = g_type_register_static (GTK_TYPE_ACTION,
"GimpPlugInAction",
&type_info, 0);
}
return type;
}
static void
gimp_plug_in_action_class_init (GimpPlugInActionClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkActionClass *action_class = GTK_ACTION_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
object_class->set_property = gimp_plug_in_action_set_property;
object_class->get_property = gimp_plug_in_action_get_property;
action_class->activate = gimp_plug_in_action_activate;
g_object_class_install_property (object_class, PROP_PROC_DEF,
g_param_spec_pointer ("proc-def",
NULL, NULL,
G_PARAM_READWRITE));
action_signals[SELECTED] =
g_signal_new ("selected",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_FIRST,
G_STRUCT_OFFSET (GimpPlugInActionClass, selected),
NULL, NULL,
gimp_marshal_VOID__POINTER,
G_TYPE_NONE, 1,
G_TYPE_POINTER);
}
static void
gimp_plug_in_action_init (GimpPlugInAction *action)
{
action->proc_def = NULL;
}
static void
gimp_plug_in_action_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
GimpPlugInAction *action = GIMP_PLUG_IN_ACTION (object);
switch (prop_id)
{
case PROP_PROC_DEF:
g_value_set_pointer (value, action->proc_def);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
gimp_plug_in_action_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec)
{
GimpPlugInAction *action = GIMP_PLUG_IN_ACTION (object);
switch (prop_id)
{
case PROP_PROC_DEF:
action->proc_def = g_value_get_pointer (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
GimpPlugInAction *
gimp_plug_in_action_new (const gchar *name,
const gchar *label,
const gchar *tooltip,
const gchar *stock_id,
PlugInProcDef *proc_def)
{
return g_object_new (GIMP_TYPE_PLUG_IN_ACTION,
"name", name,
"label", label,
"tooltip", tooltip,
"stock_id", stock_id,
"proc-def", proc_def,
NULL);
}
static void
gimp_plug_in_action_activate (GtkAction *action)
{
GimpPlugInAction *plug_in_action = GIMP_PLUG_IN_ACTION (action);
gimp_plug_in_action_selected (plug_in_action);
}
void
gimp_plug_in_action_selected (GimpPlugInAction *action)
{
g_return_if_fail (GIMP_IS_PLUG_IN_ACTION (action));
g_signal_emit (action, action_signals[SELECTED], 0, action->proc_def);
}

View File

@ -0,0 +1,64 @@
/* The GIMP -- an image manipulation program
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
*
* gimppluginaction.h
* Copyright (C) 2004 Michael Natterer <mitch@gimp.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __GIMP_PLUG_IN_ACTION_H__
#define __GIMP_PLUG_IN_ACTION_H__
#include <gtk/gtkaction.h>
#define GIMP_TYPE_PLUG_IN_ACTION (gimp_plug_in_action_get_type ())
#define GIMP_PLUG_IN_ACTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_PLUG_IN_ACTION, GimpPlugInAction))
#define GIMP_PLUG_IN_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_PLUG_IN_ACTION, GimpPlugInActionClass))
#define GIMP_IS_PLUG_IN_ACTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_PLUG_IN_ACTION))
#define GIMP_IS_PLUG_IN_ACTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), GIMP_TYPE_PLUG_IN_ACTION))
#define GIMP_PLUG_IN_ACTION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GIMP_TYPE_PLUG_IN_ACTION, GimpPlugInActionClass))
typedef struct _GimpPlugInActionClass GimpPlugInActionClass;
struct _GimpPlugInAction
{
GtkAction parent_instance;
PlugInProcDef *proc_def;
};
struct _GimpPlugInActionClass
{
GtkActionClass parent_class;
void (* selected) (GimpPlugInAction *action,
PlugInProcDef *proc_def);
};
GType gimp_plug_in_action_get_type (void);
GimpPlugInAction * gimp_plug_in_action_new (const gchar *name,
const gchar *label,
const gchar *tooltip,
const gchar *stock_id,
PlugInProcDef *proc_def);
void gimp_plug_in_action_selected (GimpPlugInAction *action);
#endif /* __GIMP_PLUG_IN_ACTION_H__ */

View File

@ -36,6 +36,7 @@ typedef struct _GimpMenuFactory GimpMenuFactory;
typedef struct _GimpActionFactory GimpActionFactory;
typedef struct _GimpActionGroup GimpActionGroup;
typedef struct _GimpEnumAction GimpEnumAction;
typedef struct _GimpPlugInAction GimpPlugInAction;
typedef struct _GimpStringAction GimpStringAction;
typedef struct _GimpUIManager GimpUIManager;
@ -145,9 +146,8 @@ typedef struct _GimpSessionInfoAux GimpSessionInfoAux;
/* function types */
typedef void (* GimpActionGroupSetupFunc) (GimpActionGroup *factory,
gpointer data);
typedef void (* GimpActionGroupUpdateFunc) (GimpActionGroup *factory,
typedef void (* GimpActionGroupSetupFunc) (GimpActionGroup *group);
typedef void (* GimpActionGroupUpdateFunc) (GimpActionGroup *group,
gpointer data);
typedef void (* GimpUIManagerSetupFunc) (GimpUIManager *manager,