diff --git a/ChangeLog b/ChangeLog index 2aa806c57c..de9f139d13 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,28 @@ +2004-04-27 Michael Natterer + + * 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 * app/widgets/gimpactiongroup.[ch]: removed "translation-domain" diff --git a/app/actions/brushes-actions.c b/app/actions/brushes-actions.c index 45b0b6edd3..42f25a3dfe 100644 --- a/app/actions/brushes-actions.c +++ b/app/actions/brushes-actions.c @@ -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 diff --git a/app/actions/brushes-actions.h b/app/actions/brushes-actions.h index a920aa448a..dbd839ad66 100644 --- a/app/actions/brushes-actions.h +++ b/app/actions/brushes-actions.h @@ -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); diff --git a/app/actions/buffers-actions.c b/app/actions/buffers-actions.c index da5a311ca3..10d9300413 100644 --- a/app/actions/buffers-actions.c +++ b/app/actions/buffers-actions.c @@ -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 diff --git a/app/actions/buffers-actions.h b/app/actions/buffers-actions.h index 84e0bf9eea..ac216a47c4 100644 --- a/app/actions/buffers-actions.h +++ b/app/actions/buffers-actions.h @@ -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); diff --git a/app/actions/channels-actions.c b/app/actions/channels-actions.c index 2c28dc8bc8..91a1068169 100644 --- a/app/actions/channels-actions.c +++ b/app/actions/channels-actions.c @@ -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 diff --git a/app/actions/channels-actions.h b/app/actions/channels-actions.h index 39f332bb91..5875eb2953 100644 --- a/app/actions/channels-actions.h +++ b/app/actions/channels-actions.h @@ -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); diff --git a/app/actions/colormap-actions.c b/app/actions/colormap-actions.c index eed6088e02..610bcfb2ea 100644 --- a/app/actions/colormap-actions.c +++ b/app/actions/colormap-actions.c @@ -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 diff --git a/app/actions/colormap-actions.h b/app/actions/colormap-actions.h index 15a494d6aa..c2d8270fae 100644 --- a/app/actions/colormap-actions.h +++ b/app/actions/colormap-actions.h @@ -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); diff --git a/app/actions/colormap-editor-actions.c b/app/actions/colormap-editor-actions.c index eed6088e02..610bcfb2ea 100644 --- a/app/actions/colormap-editor-actions.c +++ b/app/actions/colormap-editor-actions.c @@ -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 diff --git a/app/actions/colormap-editor-actions.h b/app/actions/colormap-editor-actions.h index 15a494d6aa..c2d8270fae 100644 --- a/app/actions/colormap-editor-actions.h +++ b/app/actions/colormap-editor-actions.h @@ -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); diff --git a/app/actions/debug-actions.c b/app/actions/debug-actions.c index c49298030d..bfa0131b69 100644 --- a/app/actions/debug-actions.c +++ b/app/actions/debug-actions.c @@ -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 diff --git a/app/actions/debug-actions.h b/app/actions/debug-actions.h index c39b251bb7..0f9a0da155 100644 --- a/app/actions/debug-actions.h +++ b/app/actions/debug-actions.h @@ -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); diff --git a/app/actions/dialogs-actions.c b/app/actions/dialogs-actions.c index e2dada9e1a..19414883f2 100644 --- a/app/actions/dialogs-actions.c +++ b/app/actions/dialogs-actions.c @@ -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 diff --git a/app/actions/dialogs-actions.h b/app/actions/dialogs-actions.h index 3b6c8b09c0..7095c18308 100644 --- a/app/actions/dialogs-actions.h +++ b/app/actions/dialogs-actions.h @@ -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); diff --git a/app/actions/dockable-actions.c b/app/actions/dockable-actions.c index e8f3ec6dd9..e2acf1d35d 100644 --- a/app/actions/dockable-actions.c +++ b/app/actions/dockable-actions.c @@ -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 diff --git a/app/actions/dockable-actions.h b/app/actions/dockable-actions.h index 1d44fb3fb2..beb30b18ec 100644 --- a/app/actions/dockable-actions.h +++ b/app/actions/dockable-actions.h @@ -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); diff --git a/app/actions/documents-actions.c b/app/actions/documents-actions.c index 322ff9bcac..19b195c99f 100644 --- a/app/actions/documents-actions.c +++ b/app/actions/documents-actions.c @@ -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 diff --git a/app/actions/documents-actions.h b/app/actions/documents-actions.h index 4d3981680c..6f03d3f960 100644 --- a/app/actions/documents-actions.h +++ b/app/actions/documents-actions.h @@ -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); diff --git a/app/actions/drawable-actions.c b/app/actions/drawable-actions.c index cbd8a78db9..460d9403f4 100644 --- a/app/actions/drawable-actions.c +++ b/app/actions/drawable-actions.c @@ -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 diff --git a/app/actions/drawable-actions.h b/app/actions/drawable-actions.h index 89a49fbdca..8673f0ad5c 100644 --- a/app/actions/drawable-actions.h +++ b/app/actions/drawable-actions.h @@ -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); diff --git a/app/actions/edit-actions.c b/app/actions/edit-actions.c index 4e5a7db1f8..3c702e076b 100644 --- a/app/actions/edit-actions.c +++ b/app/actions/edit-actions.c @@ -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), diff --git a/app/actions/edit-actions.h b/app/actions/edit-actions.h index 9e12f8baf0..12f1532ce9 100644 --- a/app/actions/edit-actions.h +++ b/app/actions/edit-actions.h @@ -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); diff --git a/app/actions/error-console-actions.c b/app/actions/error-console-actions.c index 2878ee6453..05013bef54 100644 --- a/app/actions/error-console-actions.c +++ b/app/actions/error-console-actions.c @@ -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 diff --git a/app/actions/error-console-actions.h b/app/actions/error-console-actions.h index 43c8ff289b..5b0e7f6f48 100644 --- a/app/actions/error-console-actions.h +++ b/app/actions/error-console-actions.h @@ -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); diff --git a/app/actions/file-actions.c b/app/actions/file-actions.c index 4372c84c4d..febbce6323 100644 --- a/app/actions/file-actions.c +++ b/app/actions/file-actions.c @@ -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++) { diff --git a/app/actions/file-actions.h b/app/actions/file-actions.h index 9f85d4fb43..dbb9544fa8 100644 --- a/app/actions/file-actions.h +++ b/app/actions/file-actions.h @@ -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); diff --git a/app/actions/fonts-actions.c b/app/actions/fonts-actions.c index dfda3f5baf..7183ffc11a 100644 --- a/app/actions/fonts-actions.c +++ b/app/actions/fonts-actions.c @@ -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 diff --git a/app/actions/fonts-actions.h b/app/actions/fonts-actions.h index b1742b8602..e965cf6737 100644 --- a/app/actions/fonts-actions.h +++ b/app/actions/fonts-actions.h @@ -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); diff --git a/app/actions/gradient-editor-actions.c b/app/actions/gradient-editor-actions.c index 6fa1b74182..8128a7047b 100644 --- a/app/actions/gradient-editor-actions.c +++ b/app/actions/gradient-editor-actions.c @@ -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 diff --git a/app/actions/gradient-editor-actions.h b/app/actions/gradient-editor-actions.h index 7530f6c2ba..96c8305a34 100644 --- a/app/actions/gradient-editor-actions.h +++ b/app/actions/gradient-editor-actions.h @@ -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); diff --git a/app/actions/gradients-actions.c b/app/actions/gradients-actions.c index e487a8c7f0..6ed41131bf 100644 --- a/app/actions/gradients-actions.c +++ b/app/actions/gradients-actions.c @@ -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 diff --git a/app/actions/gradients-actions.h b/app/actions/gradients-actions.h index 1bb5ea3044..48fd502143 100644 --- a/app/actions/gradients-actions.h +++ b/app/actions/gradients-actions.h @@ -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); diff --git a/app/actions/help-actions.c b/app/actions/help-actions.c index 219e395aff..942edd809b 100644 --- a/app/actions/help-actions.c +++ b/app/actions/help-actions.c @@ -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 diff --git a/app/actions/help-actions.h b/app/actions/help-actions.h index 205fa0f11a..5220f8f744 100644 --- a/app/actions/help-actions.h +++ b/app/actions/help-actions.h @@ -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); diff --git a/app/actions/image-actions.c b/app/actions/image-actions.c index 404298cf08..875846813d 100644 --- a/app/actions/image-actions.c +++ b/app/actions/image-actions.c @@ -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 diff --git a/app/actions/image-actions.h b/app/actions/image-actions.h index b568d9382c..f061bd0cd8 100644 --- a/app/actions/image-actions.h +++ b/app/actions/image-actions.h @@ -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); diff --git a/app/actions/images-actions.c b/app/actions/images-actions.c index cdbedcac71..59fdd5e078 100644 --- a/app/actions/images-actions.c +++ b/app/actions/images-actions.c @@ -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 diff --git a/app/actions/images-actions.h b/app/actions/images-actions.h index 9c56ad6e16..be4235e621 100644 --- a/app/actions/images-actions.h +++ b/app/actions/images-actions.h @@ -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); diff --git a/app/actions/layers-actions.c b/app/actions/layers-actions.c index e7fe759c3a..f14dd582b2 100644 --- a/app/actions/layers-actions.c +++ b/app/actions/layers-actions.c @@ -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 diff --git a/app/actions/layers-actions.h b/app/actions/layers-actions.h index b6eeebd6f0..a4e7512f38 100644 --- a/app/actions/layers-actions.h +++ b/app/actions/layers-actions.h @@ -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); diff --git a/app/actions/palette-editor-actions.c b/app/actions/palette-editor-actions.c index 0b93443111..2f5a78657c 100644 --- a/app/actions/palette-editor-actions.c +++ b/app/actions/palette-editor-actions.c @@ -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 diff --git a/app/actions/palette-editor-actions.h b/app/actions/palette-editor-actions.h index e9b4de8b7c..013c7b3210 100644 --- a/app/actions/palette-editor-actions.h +++ b/app/actions/palette-editor-actions.h @@ -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); diff --git a/app/actions/palettes-actions.c b/app/actions/palettes-actions.c index b777cc957d..c9e0adc8b0 100644 --- a/app/actions/palettes-actions.c +++ b/app/actions/palettes-actions.c @@ -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 diff --git a/app/actions/palettes-actions.h b/app/actions/palettes-actions.h index d4d6f6e7f1..0a2b55f4b1 100644 --- a/app/actions/palettes-actions.h +++ b/app/actions/palettes-actions.h @@ -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); diff --git a/app/actions/patterns-actions.c b/app/actions/patterns-actions.c index 91fe1e8373..7013da3db1 100644 --- a/app/actions/patterns-actions.c +++ b/app/actions/patterns-actions.c @@ -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 diff --git a/app/actions/patterns-actions.h b/app/actions/patterns-actions.h index 7ba8899455..2f151e7980 100644 --- a/app/actions/patterns-actions.h +++ b/app/actions/patterns-actions.h @@ -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); diff --git a/app/actions/plug-in-actions.c b/app/actions/plug-in-actions.c index 5af4d6db52..088165f587 100644 --- a/app/actions/plug-in-actions.c +++ b/app/actions/plug-in-actions.c @@ -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; @@ -289,22 +287,24 @@ plug_in_actions_add_proc (GimpActionGroup *group, if (p1 && p2) { - gchar *label; - GtkAction *action; + gchar *label; + 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); diff --git a/app/actions/plug-in-actions.h b/app/actions/plug-in-actions.h index fe3e7cd3b6..51f52317a3 100644 --- a/app/actions/plug-in-actions.h +++ b/app/actions/plug-in-actions.h @@ -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); diff --git a/app/actions/plug-in-commands.c b/app/actions/plug-in-commands.c index 5a9a9cda01..c191e46a77 100644 --- a/app/actions/plug-in-commands.c +++ b/app/actions/plug-in-commands.c @@ -58,8 +58,7 @@ void plug_in_run_cmd_callback (GtkWidget *widget, - gpointer data, - guint action) + gpointer data) { GtkItemFactory *item_factory; Gimp *gimp; diff --git a/app/actions/plug-in-commands.h b/app/actions/plug-in-commands.h index 2c9317d55d..af31c06486 100644 --- a/app/actions/plug-in-commands.h +++ b/app/actions/plug-in-commands.h @@ -20,12 +20,11 @@ #define __PLUG_IN_COMMANDS_H__ -void plug_in_run_cmd_callback (GtkWidget *widget, - gpointer data, - guint action); -void plug_in_repeat_cmd_callback (GtkWidget *widget, - gpointer data, - guint action); +void plug_in_run_cmd_callback (GtkWidget *widget, + gpointer data); +void plug_in_repeat_cmd_callback (GtkWidget *widget, + gpointer data, + guint action); #endif /* __PLUG_IN_COMMANDS_H__ */ diff --git a/app/actions/qmask-actions.c b/app/actions/qmask-actions.c index b4e2e8db0d..6707e0ebb2 100644 --- a/app/actions/qmask-actions.c +++ b/app/actions/qmask-actions.c @@ -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 diff --git a/app/actions/qmask-actions.h b/app/actions/qmask-actions.h index 5d7ea2138e..22c49eaea2 100644 --- a/app/actions/qmask-actions.h +++ b/app/actions/qmask-actions.h @@ -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); diff --git a/app/actions/quick-mask-actions.c b/app/actions/quick-mask-actions.c index b4e2e8db0d..6707e0ebb2 100644 --- a/app/actions/quick-mask-actions.c +++ b/app/actions/quick-mask-actions.c @@ -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 diff --git a/app/actions/quick-mask-actions.h b/app/actions/quick-mask-actions.h index 5d7ea2138e..22c49eaea2 100644 --- a/app/actions/quick-mask-actions.h +++ b/app/actions/quick-mask-actions.h @@ -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); diff --git a/app/actions/select-actions.c b/app/actions/select-actions.c index 37e49c237e..3e3dfca9c7 100644 --- a/app/actions/select-actions.c +++ b/app/actions/select-actions.c @@ -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 diff --git a/app/actions/select-actions.h b/app/actions/select-actions.h index 4b2b3b0a04..2e3e26135e 100644 --- a/app/actions/select-actions.h +++ b/app/actions/select-actions.h @@ -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); diff --git a/app/actions/templates-actions.c b/app/actions/templates-actions.c index 8183b8d58e..b53296b18a 100644 --- a/app/actions/templates-actions.c +++ b/app/actions/templates-actions.c @@ -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 diff --git a/app/actions/templates-actions.h b/app/actions/templates-actions.h index 963aa13a09..c7d6ac57c9 100644 --- a/app/actions/templates-actions.h +++ b/app/actions/templates-actions.h @@ -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); diff --git a/app/actions/tool-options-actions.c b/app/actions/tool-options-actions.c index ec8b748826..870d2affc7 100644 --- a/app/actions/tool-options-actions.c +++ b/app/actions/tool-options-actions.c @@ -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); diff --git a/app/actions/tool-options-actions.h b/app/actions/tool-options-actions.h index b1ff0705d1..fee0d22d48 100644 --- a/app/actions/tool-options-actions.h +++ b/app/actions/tool-options-actions.h @@ -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); diff --git a/app/actions/tools-actions.c b/app/actions/tools-actions.c index eb2e7fa5a5..cc60b47d52 100644 --- a/app/actions/tools-actions.c +++ b/app/actions/tools-actions.c @@ -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); } diff --git a/app/actions/tools-actions.h b/app/actions/tools-actions.h index 430997ec74..05bd36b26c 100644 --- a/app/actions/tools-actions.h +++ b/app/actions/tools-actions.h @@ -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); diff --git a/app/actions/vectors-actions.c b/app/actions/vectors-actions.c index ecd5e30944..ea0c17e9ec 100644 --- a/app/actions/vectors-actions.c +++ b/app/actions/vectors-actions.c @@ -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 diff --git a/app/actions/vectors-actions.h b/app/actions/vectors-actions.h index 1f125d8aaa..c5874ec798 100644 --- a/app/actions/vectors-actions.h +++ b/app/actions/vectors-actions.h @@ -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); diff --git a/app/actions/view-actions.c b/app/actions/view-actions.c index 373f73fe7a..e5e7bcec70 100644 --- a/app/actions/view-actions.c +++ b/app/actions/view-actions.c @@ -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 diff --git a/app/actions/view-actions.h b/app/actions/view-actions.h index ec6b85f439..bcfddb5980 100644 --- a/app/actions/view-actions.h +++ b/app/actions/view-actions.h @@ -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); diff --git a/app/gui/image-menu.c b/app/gui/image-menu.c index 87b55a535b..2a1023516f 100644 --- a/app/gui/image-menu.c +++ b/app/gui/image-menu.c @@ -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 diff --git a/app/gui/plug-in-menus.c b/app/gui/plug-in-menus.c index 98357c70d1..755fd5ed79 100644 --- a/app/gui/plug-in-menus.c +++ b/app/gui/plug-in-menus.c @@ -123,8 +123,8 @@ plug_in_menus_init (Gimp *gimp, } void -plug_in_menus_create2 (GimpUIManager *manager, - const gchar *ui_path) +plug_in_menus_setup (GimpUIManager *manager, + const gchar *ui_path) { GTree *menu_entries; GSList *list; diff --git a/app/gui/plug-in-menus.h b/app/gui/plug-in-menus.h index 9c59f0c85b..c4389b0f87 100644 --- a/app/gui/plug-in-menus.h +++ b/app/gui/plug-in-menus.h @@ -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, diff --git a/app/gui/toolbox-menu.c b/app/gui/toolbox-menu.c index c42bd87126..fa1b73ce41 100644 --- a/app/gui/toolbox-menu.c +++ b/app/gui/toolbox-menu.c @@ -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 diff --git a/app/menus/image-menu.c b/app/menus/image-menu.c index 87b55a535b..2a1023516f 100644 --- a/app/menus/image-menu.c +++ b/app/menus/image-menu.c @@ -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 diff --git a/app/menus/plug-in-menus.c b/app/menus/plug-in-menus.c index 98357c70d1..755fd5ed79 100644 --- a/app/menus/plug-in-menus.c +++ b/app/menus/plug-in-menus.c @@ -123,8 +123,8 @@ plug_in_menus_init (Gimp *gimp, } void -plug_in_menus_create2 (GimpUIManager *manager, - const gchar *ui_path) +plug_in_menus_setup (GimpUIManager *manager, + const gchar *ui_path) { GTree *menu_entries; GSList *list; diff --git a/app/menus/plug-in-menus.h b/app/menus/plug-in-menus.h index 9c59f0c85b..c4389b0f87 100644 --- a/app/menus/plug-in-menus.h +++ b/app/menus/plug-in-menus.h @@ -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, diff --git a/app/menus/toolbox-menu.c b/app/menus/toolbox-menu.c index c42bd87126..fa1b73ce41 100644 --- a/app/menus/toolbox-menu.c +++ b/app/menus/toolbox-menu.c @@ -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 diff --git a/app/widgets/Makefile.am b/app/widgets/Makefile.am index 06c2f21551..40869b6d21 100644 --- a/app/widgets/Makefile.am +++ b/app/widgets/Makefile.am @@ -148,6 +148,8 @@ libappwidgets_a_sources = \ gimppaletteeditor.h \ gimppatternfactoryview.c \ gimppatternfactoryview.h \ + gimppluginaction.c \ + gimppluginaction.h \ gimppreview.c \ gimppreview.h \ gimppreview-popup.c \ diff --git a/app/widgets/gimpactionfactory.c b/app/widgets/gimpactionfactory.c index ef2ef19b0f..ce0f0300f0 100644 --- a/app/widgets/gimpactionfactory.c +++ b/app/widgets/gimpactionfactory.c @@ -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; } diff --git a/app/widgets/gimpactionfactory.h b/app/widgets/gimpactionfactory.h index 97846bb82e..f457ecdaf5 100644 --- a/app/widgets/gimpactionfactory.h +++ b/app/widgets/gimpactionfactory.h @@ -66,12 +66,12 @@ GimpActionFactory * gimp_action_factory_new (Gimp *gimp); void gimp_action_factory_group_register (GimpActionFactory *factory, const gchar *identifier, - GimpActionGroupSetupFunc setup_func, + GimpActionGroupSetupFunc setup_func, GimpActionGroupUpdateFunc update_func); GimpActionGroup * gimp_action_factory_group_new (GimpActionFactory *factory, const gchar *identifier, - gpointer setup_data); + gpointer user_data); #endif /* __GIMP_ACTION_FACTORY_H__ */ diff --git a/app/widgets/gimpactiongroup.c b/app/widgets/gimpactiongroup.c index 249da159f2..059aec9373 100644 --- a/app/widgets/gimpactiongroup.c +++ b/app/widgets/gimpactiongroup.c @@ -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), diff --git a/app/widgets/gimpactiongroup.h b/app/widgets/gimpactiongroup.h index 7e432fd84d..15564f96e1 100644 --- a/app/widgets/gimpactiongroup.h +++ b/app/widgets/gimpactiongroup.h @@ -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, diff --git a/app/widgets/gimppluginaction.c b/app/widgets/gimppluginaction.c new file mode 100644 index 0000000000..eb8d77db21 --- /dev/null +++ b/app/widgets/gimppluginaction.c @@ -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 + * + * 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 + +#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); +} diff --git a/app/widgets/gimppluginaction.h b/app/widgets/gimppluginaction.h new file mode 100644 index 0000000000..8bddad4511 --- /dev/null +++ b/app/widgets/gimppluginaction.h @@ -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 + * + * 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 + + +#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__ */ diff --git a/app/widgets/widgets-types.h b/app/widgets/widgets-types.h index e7107e3d5d..b80e1c3fb3 100644 --- a/app/widgets/widgets-types.h +++ b/app/widgets/widgets-types.h @@ -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,