mirror of https://github.com/GNOME/gimp.git
app/widgets/Makefile.am app/widgets/widgets-types.h new GtkUIManager
2004-04-21 Michael Natterer <mitch@gimp.org> * app/widgets/Makefile.am * app/widgets/widgets-types.h * app/widgets/gimpuimanager.[ch]: new GtkUIManager subclass. Adds API to update all action groups and knows which UIs it can create from which XML files. * app/widgets/gimpmenufactory.[ch]: register the XML file basenames along with path of their toplevel menus. Create GimpUIManagers instead of GtkUIManagers and register the XML files and menu paths with them. * app/gui/menus.c: register all XML files and their toplevel menu paths. * app/widgets/gimpeditor.[ch]: also create a GimpUIManager when creating the GtkItemFactory. Added "const gchar *ui_identifier" parameter to gimp_editor_create_menu(). * app/widgets/gimpcontainereditor.[ch] * app/widgets/gimpdataeditor.[ch] * app/widgets/gimpdatafactoryview.[ch] * app/widgets/gimpitemtreeview.[ch]: added "ui_identifier" parameters to all constructors. * app/widgets/gimpbrusheditor.c * app/widgets/gimpbrushfactoryview.c * app/widgets/gimpbufferview.c * app/widgets/gimpcolormapeditor.c * app/widgets/gimpcomponenteditor.c * app/widgets/gimpcontainerpopup.c * app/widgets/gimpdocumentview.c * app/widgets/gimperrorconsole.c * app/widgets/gimpfontview.c * app/widgets/gimpgradienteditor.c * app/widgets/gimpimageview.c * app/widgets/gimppaletteeditor.c * app/widgets/gimppatternfactoryview.c * app/widgets/gimptemplateview.c * app/widgets/gimptooloptionseditor.c * app/gui/dialogs-constructors.c * app/gui/gradient-select.c * app/gui/palette-select.c * app/gui/pattern-select.c: pass UI identifiers to the changed functions above. * app/display/gimpdisplayshell.[ch]: added a GimpUIManager for the menubar (menubar creating code still commented out). * app/display/gimpdisplay.c * app/gui/gui-vtable.c: update the ui manager.
This commit is contained in:
parent
2c601c7dc3
commit
0b8c4b3ec9
53
ChangeLog
53
ChangeLog
|
@ -1,3 +1,56 @@
|
|||
2004-04-21 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/widgets/Makefile.am
|
||||
* app/widgets/widgets-types.h
|
||||
* app/widgets/gimpuimanager.[ch]: new GtkUIManager subclass. Adds
|
||||
API to update all action groups and knows which UIs it can create
|
||||
from which XML files.
|
||||
|
||||
* app/widgets/gimpmenufactory.[ch]: register the XML file
|
||||
basenames along with path of their toplevel menus. Create
|
||||
GimpUIManagers instead of GtkUIManagers and register the
|
||||
XML files and menu paths with them.
|
||||
|
||||
* app/gui/menus.c: register all XML files and their toplevel
|
||||
menu paths.
|
||||
|
||||
* app/widgets/gimpeditor.[ch]: also create a GimpUIManager when
|
||||
creating the GtkItemFactory. Added "const gchar *ui_identifier"
|
||||
parameter to gimp_editor_create_menu().
|
||||
|
||||
* app/widgets/gimpcontainereditor.[ch]
|
||||
* app/widgets/gimpdataeditor.[ch]
|
||||
* app/widgets/gimpdatafactoryview.[ch]
|
||||
* app/widgets/gimpitemtreeview.[ch]: added "ui_identifier"
|
||||
parameters to all constructors.
|
||||
|
||||
* app/widgets/gimpbrusheditor.c
|
||||
* app/widgets/gimpbrushfactoryview.c
|
||||
* app/widgets/gimpbufferview.c
|
||||
* app/widgets/gimpcolormapeditor.c
|
||||
* app/widgets/gimpcomponenteditor.c
|
||||
* app/widgets/gimpcontainerpopup.c
|
||||
* app/widgets/gimpdocumentview.c
|
||||
* app/widgets/gimperrorconsole.c
|
||||
* app/widgets/gimpfontview.c
|
||||
* app/widgets/gimpgradienteditor.c
|
||||
* app/widgets/gimpimageview.c
|
||||
* app/widgets/gimppaletteeditor.c
|
||||
* app/widgets/gimppatternfactoryview.c
|
||||
* app/widgets/gimptemplateview.c
|
||||
* app/widgets/gimptooloptionseditor.c
|
||||
* app/gui/dialogs-constructors.c
|
||||
* app/gui/gradient-select.c
|
||||
* app/gui/palette-select.c
|
||||
* app/gui/pattern-select.c: pass UI identifiers to the changed
|
||||
functions above.
|
||||
|
||||
* app/display/gimpdisplayshell.[ch]: added a GimpUIManager for
|
||||
the menubar (menubar creating code still commented out).
|
||||
|
||||
* app/display/gimpdisplay.c
|
||||
* app/gui/gui-vtable.c: update the ui manager.
|
||||
|
||||
2004-04-21 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/actions/actions.c: forgot to register the "patterns" actions.
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include "core/gimplist.h"
|
||||
|
||||
#include "widgets/gimpitemfactory.h"
|
||||
#include "widgets/gimpuimanager.h"
|
||||
|
||||
#include "tools/gimptool.h"
|
||||
#include "tools/tool_manager.h"
|
||||
|
@ -511,6 +512,7 @@ gimp_display_flush_whenever (GimpDisplay *gdisp,
|
|||
GimpContext *user_context;
|
||||
|
||||
gimp_item_factory_update (shell->menubar_factory, shell);
|
||||
gimp_ui_manager_update (shell->menubar_manager, shell);
|
||||
|
||||
user_context = gimp_get_user_context (gdisp->gimage->gimp);
|
||||
|
||||
|
|
|
@ -314,7 +314,8 @@ dialogs_gradient_list_view_new (GimpDialogFactory *factory,
|
|||
dialogs_edit_gradient_func,
|
||||
context,
|
||||
preview_size, 1,
|
||||
factory->menu_factory, "<Gradients>");
|
||||
factory->menu_factory, "<Gradients>",
|
||||
"/gradients-popup");
|
||||
|
||||
return dialogs_dockable_new (view,
|
||||
_("Gradients"), NULL,
|
||||
|
@ -334,7 +335,8 @@ dialogs_palette_list_view_new (GimpDialogFactory *factory,
|
|||
dialogs_edit_palette_func,
|
||||
context,
|
||||
preview_size, 1,
|
||||
factory->menu_factory, "<Palettes>");
|
||||
factory->menu_factory, "<Palettes>",
|
||||
"/palettes-popup");
|
||||
|
||||
return dialogs_dockable_new (view,
|
||||
_("Palettes"), NULL,
|
||||
|
@ -521,7 +523,8 @@ dialogs_gradient_grid_view_new (GimpDialogFactory *factory,
|
|||
dialogs_edit_gradient_func,
|
||||
context,
|
||||
preview_size, 1,
|
||||
factory->menu_factory, "<Gradients>");
|
||||
factory->menu_factory, "<Gradients>",
|
||||
"/gradients-popup");
|
||||
|
||||
return dialogs_dockable_new (view,
|
||||
_("Gradients"), NULL,
|
||||
|
@ -541,7 +544,8 @@ dialogs_palette_grid_view_new (GimpDialogFactory *factory,
|
|||
dialogs_edit_palette_func,
|
||||
context,
|
||||
preview_size, 1,
|
||||
factory->menu_factory, "<Palettes>");
|
||||
factory->menu_factory, "<Palettes>",
|
||||
"/palettes-popup");
|
||||
|
||||
return dialogs_dockable_new (view,
|
||||
_("Palettes"), NULL,
|
||||
|
@ -647,7 +651,8 @@ dialogs_layer_list_view_new (GimpDialogFactory *factory,
|
|||
(GimpEditItemFunc) layers_edit_layer_query,
|
||||
(GimpNewItemFunc) layers_new_layer_query,
|
||||
(GimpActivateItemFunc) layers_text_tool,
|
||||
factory->menu_factory, "<Layers>");
|
||||
factory->menu_factory, "<Layers>",
|
||||
"/layers-popup");
|
||||
|
||||
dockable = dialogs_dockable_new (view,
|
||||
_("Layers"), NULL,
|
||||
|
@ -678,7 +683,8 @@ dialogs_channel_list_view_new (GimpDialogFactory *factory,
|
|||
(GimpEditItemFunc) channels_edit_channel_query,
|
||||
(GimpNewItemFunc) channels_new_channel_query,
|
||||
(GimpActivateItemFunc) channels_edit_channel_query,
|
||||
factory->menu_factory, "<Channels>");
|
||||
factory->menu_factory, "<Channels>",
|
||||
"/channels-popup");
|
||||
|
||||
dockable = dialogs_dockable_new (view,
|
||||
_("Channels"), NULL,
|
||||
|
@ -710,7 +716,8 @@ dialogs_vectors_list_view_new (GimpDialogFactory *factory,
|
|||
(GimpEditItemFunc) vectors_edit_vectors_query,
|
||||
(GimpNewItemFunc) vectors_new_vectors_query,
|
||||
(GimpActivateItemFunc) vectors_vectors_tool,
|
||||
factory->menu_factory, "<Vectors>");
|
||||
factory->menu_factory, "<Vectors>",
|
||||
"/vectors-popup");
|
||||
|
||||
vectors_view = GIMP_VECTORS_TREE_VIEW (view);
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
#include "core/gimplist.h"
|
||||
|
||||
#include "widgets/gimpitemfactory.h"
|
||||
#include "widgets/gimpuimanager.h"
|
||||
|
||||
#include "tools/gimptool.h"
|
||||
#include "tools/tool_manager.h"
|
||||
|
@ -511,6 +512,7 @@ gimp_display_flush_whenever (GimpDisplay *gdisp,
|
|||
GimpContext *user_context;
|
||||
|
||||
gimp_item_factory_update (shell->menubar_factory, shell);
|
||||
gimp_ui_manager_update (shell->menubar_manager, shell);
|
||||
|
||||
user_context = gimp_get_user_context (gdisp->gimage->gimp);
|
||||
|
||||
|
|
|
@ -59,6 +59,7 @@
|
|||
#include "widgets/gimphelp-ids.h"
|
||||
#include "widgets/gimpitemfactory.h"
|
||||
#include "widgets/gimpmenufactory.h"
|
||||
#include "widgets/gimpuimanager.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "gui/info-window.h"
|
||||
|
@ -207,6 +208,7 @@ gimp_display_shell_init (GimpDisplayShell *shell)
|
|||
{
|
||||
shell->gdisp = NULL;
|
||||
shell->menubar_factory = NULL;
|
||||
shell->menubar_manager = NULL;
|
||||
shell->popup_factory = NULL;
|
||||
shell->qmask_factory = NULL;
|
||||
|
||||
|
@ -374,6 +376,12 @@ gimp_display_shell_destroy (GtkObject *object)
|
|||
shell->menubar_factory = NULL;
|
||||
}
|
||||
|
||||
if (shell->menubar_manager)
|
||||
{
|
||||
g_object_unref (shell->menubar_manager);
|
||||
shell->menubar_manager = NULL;
|
||||
}
|
||||
|
||||
shell->popup_factory = NULL;
|
||||
|
||||
if (shell->qmask_factory)
|
||||
|
@ -478,6 +486,7 @@ gimp_display_shell_real_scaled (GimpDisplayShell *shell)
|
|||
|
||||
/* update the <Image>/View/Zoom menu */
|
||||
gimp_item_factory_update (shell->menubar_factory, shell);
|
||||
gimp_ui_manager_update (shell->menubar_manager, shell);
|
||||
|
||||
user_context = gimp_get_user_context (shell->gdisp->gimage->gimp);
|
||||
|
||||
|
@ -594,6 +603,10 @@ gimp_display_shell_new (GimpDisplay *gdisp,
|
|||
GTK_TYPE_MENU_BAR,
|
||||
gdisp,
|
||||
FALSE);
|
||||
shell->menubar_manager = gimp_menu_factory_manager_new (menu_factory,
|
||||
"<Image>",
|
||||
gdisp,
|
||||
FALSE);
|
||||
|
||||
shell->popup_factory = popup_factory;
|
||||
|
||||
|
@ -603,6 +616,7 @@ gimp_display_shell_new (GimpDisplay *gdisp,
|
|||
shell,
|
||||
FALSE);
|
||||
|
||||
|
||||
/* The accelerator table for images */
|
||||
gtk_window_add_accel_group (GTK_WINDOW (shell),
|
||||
GTK_ITEM_FACTORY (shell->menubar_factory)->accel_group);
|
||||
|
@ -658,6 +672,13 @@ gimp_display_shell_new (GimpDisplay *gdisp,
|
|||
if (shell->options->show_menubar)
|
||||
gtk_widget_show (menubar);
|
||||
|
||||
#if 0
|
||||
menubar = gimp_ui_manager_ui_create (shell->menubar_manager,
|
||||
"/image-menubar");
|
||||
gtk_box_pack_start (GTK_BOX (main_vbox), menubar, FALSE, FALSE, 0);
|
||||
gtk_widget_show (menubar);
|
||||
#endif
|
||||
|
||||
/* make sure we can activate accels even if the menubar is invisible
|
||||
* (see http://bugzilla.gnome.org/show_bug.cgi?id=137151)
|
||||
*/
|
||||
|
|
|
@ -71,6 +71,8 @@ struct _GimpDisplayShell
|
|||
GimpDisplay *gdisp;
|
||||
|
||||
GimpItemFactory *menubar_factory;
|
||||
GimpUIManager *menubar_manager;
|
||||
|
||||
GimpItemFactory *popup_factory;
|
||||
GimpItemFactory *qmask_factory;
|
||||
|
||||
|
|
|
@ -314,7 +314,8 @@ dialogs_gradient_list_view_new (GimpDialogFactory *factory,
|
|||
dialogs_edit_gradient_func,
|
||||
context,
|
||||
preview_size, 1,
|
||||
factory->menu_factory, "<Gradients>");
|
||||
factory->menu_factory, "<Gradients>",
|
||||
"/gradients-popup");
|
||||
|
||||
return dialogs_dockable_new (view,
|
||||
_("Gradients"), NULL,
|
||||
|
@ -334,7 +335,8 @@ dialogs_palette_list_view_new (GimpDialogFactory *factory,
|
|||
dialogs_edit_palette_func,
|
||||
context,
|
||||
preview_size, 1,
|
||||
factory->menu_factory, "<Palettes>");
|
||||
factory->menu_factory, "<Palettes>",
|
||||
"/palettes-popup");
|
||||
|
||||
return dialogs_dockable_new (view,
|
||||
_("Palettes"), NULL,
|
||||
|
@ -521,7 +523,8 @@ dialogs_gradient_grid_view_new (GimpDialogFactory *factory,
|
|||
dialogs_edit_gradient_func,
|
||||
context,
|
||||
preview_size, 1,
|
||||
factory->menu_factory, "<Gradients>");
|
||||
factory->menu_factory, "<Gradients>",
|
||||
"/gradients-popup");
|
||||
|
||||
return dialogs_dockable_new (view,
|
||||
_("Gradients"), NULL,
|
||||
|
@ -541,7 +544,8 @@ dialogs_palette_grid_view_new (GimpDialogFactory *factory,
|
|||
dialogs_edit_palette_func,
|
||||
context,
|
||||
preview_size, 1,
|
||||
factory->menu_factory, "<Palettes>");
|
||||
factory->menu_factory, "<Palettes>",
|
||||
"/palettes-popup");
|
||||
|
||||
return dialogs_dockable_new (view,
|
||||
_("Palettes"), NULL,
|
||||
|
@ -647,7 +651,8 @@ dialogs_layer_list_view_new (GimpDialogFactory *factory,
|
|||
(GimpEditItemFunc) layers_edit_layer_query,
|
||||
(GimpNewItemFunc) layers_new_layer_query,
|
||||
(GimpActivateItemFunc) layers_text_tool,
|
||||
factory->menu_factory, "<Layers>");
|
||||
factory->menu_factory, "<Layers>",
|
||||
"/layers-popup");
|
||||
|
||||
dockable = dialogs_dockable_new (view,
|
||||
_("Layers"), NULL,
|
||||
|
@ -678,7 +683,8 @@ dialogs_channel_list_view_new (GimpDialogFactory *factory,
|
|||
(GimpEditItemFunc) channels_edit_channel_query,
|
||||
(GimpNewItemFunc) channels_new_channel_query,
|
||||
(GimpActivateItemFunc) channels_edit_channel_query,
|
||||
factory->menu_factory, "<Channels>");
|
||||
factory->menu_factory, "<Channels>",
|
||||
"/channels-popup");
|
||||
|
||||
dockable = dialogs_dockable_new (view,
|
||||
_("Channels"), NULL,
|
||||
|
@ -710,7 +716,8 @@ dialogs_vectors_list_view_new (GimpDialogFactory *factory,
|
|||
(GimpEditItemFunc) vectors_edit_vectors_query,
|
||||
(GimpNewItemFunc) vectors_new_vectors_query,
|
||||
(GimpActivateItemFunc) vectors_vectors_tool,
|
||||
factory->menu_factory, "<Vectors>");
|
||||
factory->menu_factory, "<Vectors>",
|
||||
"/vectors-popup");
|
||||
|
||||
vectors_view = GIMP_VECTORS_TREE_VIEW (view);
|
||||
|
||||
|
|
|
@ -137,7 +137,8 @@ gradient_select_new (Gimp *gimp,
|
|||
dialogs_edit_gradient_func,
|
||||
gsp->context,
|
||||
GIMP_PREVIEW_SIZE_MEDIUM, 1,
|
||||
global_menu_factory, "<Gradients>");
|
||||
global_menu_factory, "<Gradients>",
|
||||
"/gradients-popup");
|
||||
|
||||
gimp_container_view_set_size_request (GIMP_CONTAINER_VIEW (GIMP_CONTAINER_EDITOR (gsp->view)->view),
|
||||
6 * (GIMP_PREVIEW_SIZE_MEDIUM + 2),
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#include "widgets/gimpdialogfactory.h"
|
||||
#include "widgets/gimperrorconsole.h"
|
||||
#include "widgets/gimpitemfactory.h"
|
||||
#include "widgets/gimpuimanager.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
|
@ -199,6 +200,7 @@ gui_display_new (GimpImage *gimage,
|
|||
gimp_context_set_display (gimp_get_user_context (gimage->gimp), gdisp);
|
||||
|
||||
gimp_item_factory_update (shell->menubar_factory, shell);
|
||||
gimp_ui_manager_update (shell->menubar_manager, shell);
|
||||
|
||||
return GIMP_OBJECT (gdisp);
|
||||
}
|
||||
|
|
120
app/gui/menus.c
120
app/gui/menus.c
|
@ -127,9 +127,22 @@ menus_init (Gimp *gimp)
|
|||
n_image_menu_entries,
|
||||
image_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Image>",
|
||||
"file", "edit", "select", "view",
|
||||
"image", "drawable", "layers", "vectors",
|
||||
"tools", "dialogs", "plug-in", NULL);
|
||||
"file",
|
||||
"edit",
|
||||
"select",
|
||||
"view",
|
||||
"image",
|
||||
"drawable",
|
||||
"layers",
|
||||
"vectors",
|
||||
"tools",
|
||||
"dialogs",
|
||||
"plug-in",
|
||||
NULL,
|
||||
"/toolbox-menubar", "toolbox-menu.xml",
|
||||
"/image-menubar", "image-menu.xml",
|
||||
"/qmask-popup", "qmask-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Load>",
|
||||
_("Open Menu"),
|
||||
|
@ -152,6 +165,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, layers_menu_update, TRUE,
|
||||
n_layers_menu_entries,
|
||||
layers_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Layers>",
|
||||
"layers",
|
||||
NULL,
|
||||
"/layers-popup", "layers-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Channels>",
|
||||
_("Channels Menu"),
|
||||
|
@ -159,6 +177,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, channels_menu_update, TRUE,
|
||||
n_channels_menu_entries,
|
||||
channels_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Channels>",
|
||||
"channels",
|
||||
NULL,
|
||||
"/channels-popup", "channels-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Vectors>",
|
||||
_("Paths Menu"),
|
||||
|
@ -166,6 +189,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, vectors_menu_update, TRUE,
|
||||
n_vectors_menu_entries,
|
||||
vectors_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Vectors>",
|
||||
"vectors",
|
||||
NULL,
|
||||
"/vectors-popup", "vectors-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Dialogs>",
|
||||
_("Dialogs Menu"),
|
||||
|
@ -173,6 +201,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, dialogs_menu_update, TRUE,
|
||||
n_dialogs_menu_entries,
|
||||
dialogs_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Dialogs>",
|
||||
"dockable",
|
||||
NULL,
|
||||
"/dockable-popup", "dockable-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Brushes>",
|
||||
_("Brushes Menu"),
|
||||
|
@ -180,6 +213,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, brushes_menu_update, TRUE,
|
||||
n_brushes_menu_entries,
|
||||
brushes_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Brushes>",
|
||||
"brushes",
|
||||
NULL,
|
||||
"/brushes-popup", "brushes-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Patterns>",
|
||||
_("Patterns Menu"),
|
||||
|
@ -187,6 +225,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, patterns_menu_update, TRUE,
|
||||
n_patterns_menu_entries,
|
||||
patterns_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Patterns>",
|
||||
"patterns",
|
||||
NULL,
|
||||
"/patterns-popup", "patterns-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Gradients>",
|
||||
_("Gradients Menu"),
|
||||
|
@ -194,6 +237,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, gradients_menu_update, TRUE,
|
||||
n_gradients_menu_entries,
|
||||
gradients_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Gradients>",
|
||||
"gradients",
|
||||
NULL,
|
||||
"/gradients-popup", "gradients-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Palettes>",
|
||||
_("Palettes Menu"),
|
||||
|
@ -201,6 +249,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, palettes_menu_update, TRUE,
|
||||
n_palettes_menu_entries,
|
||||
palettes_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Palettes>",
|
||||
"palettes",
|
||||
NULL,
|
||||
"/palettes-popup", "palettes-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Fonts>",
|
||||
_("Fonts Menu"),
|
||||
|
@ -208,6 +261,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, fonts_menu_update, TRUE,
|
||||
n_fonts_menu_entries,
|
||||
fonts_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Fonts>",
|
||||
"fonts",
|
||||
NULL,
|
||||
"/fonts-popup", "fonts-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Buffers>",
|
||||
_("Buffers Menu"),
|
||||
|
@ -215,6 +273,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, buffers_menu_update, TRUE,
|
||||
n_buffers_menu_entries,
|
||||
buffers_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Buffers>",
|
||||
"buffers",
|
||||
NULL,
|
||||
"/buffers-popup", "buffers-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Documents>",
|
||||
_("Documents Menu"),
|
||||
|
@ -222,6 +285,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, documents_menu_update, TRUE,
|
||||
n_documents_menu_entries,
|
||||
documents_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Documents>",
|
||||
"documents",
|
||||
NULL,
|
||||
"/documents-popup", "documents-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Templates>",
|
||||
_("Templates Menu"),
|
||||
|
@ -229,6 +297,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, templates_menu_update, TRUE,
|
||||
n_templates_menu_entries,
|
||||
templates_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Templates>",
|
||||
"templates",
|
||||
NULL,
|
||||
"/templates-popup", "templates-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Images>",
|
||||
_("Images Menu"),
|
||||
|
@ -236,6 +309,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, images_menu_update, TRUE,
|
||||
n_images_menu_entries,
|
||||
images_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Images>",
|
||||
"images",
|
||||
NULL,
|
||||
"/images-popup", "images-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<GradientEditor>",
|
||||
_("Gradient Editor Menu"),
|
||||
|
@ -243,6 +321,12 @@ menus_init (Gimp *gimp)
|
|||
NULL, gradient_editor_menu_update, TRUE,
|
||||
n_gradient_editor_menu_entries,
|
||||
gradient_editor_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<GradientEditor>",
|
||||
"gradient-editor",
|
||||
NULL,
|
||||
"/gradient-editor-popup",
|
||||
"gradient-editor-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<PaletteEditor>",
|
||||
_("Palette Editor Menu"),
|
||||
|
@ -250,6 +334,12 @@ menus_init (Gimp *gimp)
|
|||
NULL, palette_editor_menu_update, TRUE,
|
||||
n_palette_editor_menu_entries,
|
||||
palette_editor_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<PaletteEditor>",
|
||||
"pelette-editor",
|
||||
NULL,
|
||||
"/palette-editor-popup",
|
||||
"palette-editor-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<ColormapEditor>",
|
||||
_("Indexed Palette Menu"),
|
||||
|
@ -257,6 +347,12 @@ menus_init (Gimp *gimp)
|
|||
NULL, colormap_editor_menu_update, TRUE,
|
||||
n_colormap_editor_menu_entries,
|
||||
colormap_editor_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<ColormapEditor>",
|
||||
"colormap-editor",
|
||||
NULL,
|
||||
"/colormap-editor-popup",
|
||||
"colormap-editor-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<QMask>",
|
||||
_("QuickMask Menu"),
|
||||
|
@ -264,6 +360,12 @@ menus_init (Gimp *gimp)
|
|||
NULL, qmask_menu_update, TRUE,
|
||||
n_qmask_menu_entries,
|
||||
qmask_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<QMask>",
|
||||
"qmask",
|
||||
NULL,
|
||||
"/qmask-popup",
|
||||
"qmask-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<ErrorConsole>",
|
||||
_("Error Console Menu"),
|
||||
|
@ -271,6 +373,12 @@ menus_init (Gimp *gimp)
|
|||
NULL, error_console_menu_update, TRUE,
|
||||
n_error_console_menu_entries,
|
||||
error_console_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<ErrorConsole>",
|
||||
"error-console",
|
||||
NULL,
|
||||
"/error-console-popup",
|
||||
"error-console-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<ToolOptions>",
|
||||
_("Tool Options Menu"),
|
||||
|
@ -279,6 +387,12 @@ menus_init (Gimp *gimp)
|
|||
tool_options_menu_update, TRUE,
|
||||
n_tool_options_menu_entries,
|
||||
tool_options_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<ToolOptions>",
|
||||
"tool-options",
|
||||
NULL,
|
||||
"/tool-options-popup",
|
||||
"tool-options-menu.xml",
|
||||
NULL);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -139,7 +139,8 @@ palette_select_new (Gimp *gimp,
|
|||
dialogs_edit_palette_func,
|
||||
psp->context,
|
||||
GIMP_PREVIEW_SIZE_MEDIUM, 1,
|
||||
global_menu_factory, "<Palettes>");
|
||||
global_menu_factory, "<Palettes>",
|
||||
"/palettes-popup");
|
||||
|
||||
gimp_container_view_set_size_request (GIMP_CONTAINER_VIEW (GIMP_CONTAINER_EDITOR (psp->view)->view),
|
||||
5 * (GIMP_PREVIEW_SIZE_MEDIUM + 2),
|
||||
|
|
|
@ -135,7 +135,8 @@ pattern_select_new (Gimp *gimp,
|
|||
NULL,
|
||||
psp->context,
|
||||
GIMP_PREVIEW_SIZE_MEDIUM, 1,
|
||||
global_menu_factory, "<Patterns>");
|
||||
global_menu_factory, "<Patterns>",
|
||||
"/patterns-popup");
|
||||
|
||||
gimp_container_view_set_size_request (GIMP_CONTAINER_VIEW (GIMP_CONTAINER_EDITOR (psp->view)->view),
|
||||
6 * (GIMP_PREVIEW_SIZE_MEDIUM + 2),
|
||||
|
|
|
@ -127,9 +127,22 @@ menus_init (Gimp *gimp)
|
|||
n_image_menu_entries,
|
||||
image_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Image>",
|
||||
"file", "edit", "select", "view",
|
||||
"image", "drawable", "layers", "vectors",
|
||||
"tools", "dialogs", "plug-in", NULL);
|
||||
"file",
|
||||
"edit",
|
||||
"select",
|
||||
"view",
|
||||
"image",
|
||||
"drawable",
|
||||
"layers",
|
||||
"vectors",
|
||||
"tools",
|
||||
"dialogs",
|
||||
"plug-in",
|
||||
NULL,
|
||||
"/toolbox-menubar", "toolbox-menu.xml",
|
||||
"/image-menubar", "image-menu.xml",
|
||||
"/qmask-popup", "qmask-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Load>",
|
||||
_("Open Menu"),
|
||||
|
@ -152,6 +165,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, layers_menu_update, TRUE,
|
||||
n_layers_menu_entries,
|
||||
layers_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Layers>",
|
||||
"layers",
|
||||
NULL,
|
||||
"/layers-popup", "layers-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Channels>",
|
||||
_("Channels Menu"),
|
||||
|
@ -159,6 +177,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, channels_menu_update, TRUE,
|
||||
n_channels_menu_entries,
|
||||
channels_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Channels>",
|
||||
"channels",
|
||||
NULL,
|
||||
"/channels-popup", "channels-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Vectors>",
|
||||
_("Paths Menu"),
|
||||
|
@ -166,6 +189,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, vectors_menu_update, TRUE,
|
||||
n_vectors_menu_entries,
|
||||
vectors_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Vectors>",
|
||||
"vectors",
|
||||
NULL,
|
||||
"/vectors-popup", "vectors-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Dialogs>",
|
||||
_("Dialogs Menu"),
|
||||
|
@ -173,6 +201,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, dialogs_menu_update, TRUE,
|
||||
n_dialogs_menu_entries,
|
||||
dialogs_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Dialogs>",
|
||||
"dockable",
|
||||
NULL,
|
||||
"/dockable-popup", "dockable-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Brushes>",
|
||||
_("Brushes Menu"),
|
||||
|
@ -180,6 +213,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, brushes_menu_update, TRUE,
|
||||
n_brushes_menu_entries,
|
||||
brushes_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Brushes>",
|
||||
"brushes",
|
||||
NULL,
|
||||
"/brushes-popup", "brushes-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Patterns>",
|
||||
_("Patterns Menu"),
|
||||
|
@ -187,6 +225,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, patterns_menu_update, TRUE,
|
||||
n_patterns_menu_entries,
|
||||
patterns_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Patterns>",
|
||||
"patterns",
|
||||
NULL,
|
||||
"/patterns-popup", "patterns-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Gradients>",
|
||||
_("Gradients Menu"),
|
||||
|
@ -194,6 +237,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, gradients_menu_update, TRUE,
|
||||
n_gradients_menu_entries,
|
||||
gradients_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Gradients>",
|
||||
"gradients",
|
||||
NULL,
|
||||
"/gradients-popup", "gradients-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Palettes>",
|
||||
_("Palettes Menu"),
|
||||
|
@ -201,6 +249,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, palettes_menu_update, TRUE,
|
||||
n_palettes_menu_entries,
|
||||
palettes_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Palettes>",
|
||||
"palettes",
|
||||
NULL,
|
||||
"/palettes-popup", "palettes-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Fonts>",
|
||||
_("Fonts Menu"),
|
||||
|
@ -208,6 +261,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, fonts_menu_update, TRUE,
|
||||
n_fonts_menu_entries,
|
||||
fonts_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Fonts>",
|
||||
"fonts",
|
||||
NULL,
|
||||
"/fonts-popup", "fonts-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Buffers>",
|
||||
_("Buffers Menu"),
|
||||
|
@ -215,6 +273,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, buffers_menu_update, TRUE,
|
||||
n_buffers_menu_entries,
|
||||
buffers_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Buffers>",
|
||||
"buffers",
|
||||
NULL,
|
||||
"/buffers-popup", "buffers-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Documents>",
|
||||
_("Documents Menu"),
|
||||
|
@ -222,6 +285,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, documents_menu_update, TRUE,
|
||||
n_documents_menu_entries,
|
||||
documents_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Documents>",
|
||||
"documents",
|
||||
NULL,
|
||||
"/documents-popup", "documents-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Templates>",
|
||||
_("Templates Menu"),
|
||||
|
@ -229,6 +297,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, templates_menu_update, TRUE,
|
||||
n_templates_menu_entries,
|
||||
templates_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Templates>",
|
||||
"templates",
|
||||
NULL,
|
||||
"/templates-popup", "templates-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<Images>",
|
||||
_("Images Menu"),
|
||||
|
@ -236,6 +309,11 @@ menus_init (Gimp *gimp)
|
|||
NULL, images_menu_update, TRUE,
|
||||
n_images_menu_entries,
|
||||
images_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<Images>",
|
||||
"images",
|
||||
NULL,
|
||||
"/images-popup", "images-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<GradientEditor>",
|
||||
_("Gradient Editor Menu"),
|
||||
|
@ -243,6 +321,12 @@ menus_init (Gimp *gimp)
|
|||
NULL, gradient_editor_menu_update, TRUE,
|
||||
n_gradient_editor_menu_entries,
|
||||
gradient_editor_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<GradientEditor>",
|
||||
"gradient-editor",
|
||||
NULL,
|
||||
"/gradient-editor-popup",
|
||||
"gradient-editor-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<PaletteEditor>",
|
||||
_("Palette Editor Menu"),
|
||||
|
@ -250,6 +334,12 @@ menus_init (Gimp *gimp)
|
|||
NULL, palette_editor_menu_update, TRUE,
|
||||
n_palette_editor_menu_entries,
|
||||
palette_editor_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<PaletteEditor>",
|
||||
"pelette-editor",
|
||||
NULL,
|
||||
"/palette-editor-popup",
|
||||
"palette-editor-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<ColormapEditor>",
|
||||
_("Indexed Palette Menu"),
|
||||
|
@ -257,6 +347,12 @@ menus_init (Gimp *gimp)
|
|||
NULL, colormap_editor_menu_update, TRUE,
|
||||
n_colormap_editor_menu_entries,
|
||||
colormap_editor_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<ColormapEditor>",
|
||||
"colormap-editor",
|
||||
NULL,
|
||||
"/colormap-editor-popup",
|
||||
"colormap-editor-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<QMask>",
|
||||
_("QuickMask Menu"),
|
||||
|
@ -264,6 +360,12 @@ menus_init (Gimp *gimp)
|
|||
NULL, qmask_menu_update, TRUE,
|
||||
n_qmask_menu_entries,
|
||||
qmask_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<QMask>",
|
||||
"qmask",
|
||||
NULL,
|
||||
"/qmask-popup",
|
||||
"qmask-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<ErrorConsole>",
|
||||
_("Error Console Menu"),
|
||||
|
@ -271,6 +373,12 @@ menus_init (Gimp *gimp)
|
|||
NULL, error_console_menu_update, TRUE,
|
||||
n_error_console_menu_entries,
|
||||
error_console_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<ErrorConsole>",
|
||||
"error-console",
|
||||
NULL,
|
||||
"/error-console-popup",
|
||||
"error-console-menu.xml",
|
||||
NULL);
|
||||
|
||||
gimp_menu_factory_menu_register (global_menu_factory, "<ToolOptions>",
|
||||
_("Tool Options Menu"),
|
||||
|
@ -279,6 +387,12 @@ menus_init (Gimp *gimp)
|
|||
tool_options_menu_update, TRUE,
|
||||
n_tool_options_menu_entries,
|
||||
tool_options_menu_entries);
|
||||
gimp_menu_factory_manager_register (global_menu_factory, "<ToolOptions>",
|
||||
"tool-options",
|
||||
NULL,
|
||||
"/tool-options-popup",
|
||||
"tool-options-menu.xml",
|
||||
NULL);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -200,6 +200,8 @@ libappwidgets_a_sources = \
|
|||
gimptooldialog.h \
|
||||
gimptooloptionseditor.c \
|
||||
gimptooloptionseditor.h \
|
||||
gimpuimanager.c \
|
||||
gimpuimanager.h \
|
||||
gimpundoeditor.c \
|
||||
gimpundoeditor.h \
|
||||
gimpvectorstreeview.c \
|
||||
|
|
|
@ -226,7 +226,7 @@ gimp_brush_editor_new (Gimp *gimp)
|
|||
|
||||
if (! gimp_data_editor_construct (GIMP_DATA_EDITOR (brush_editor),
|
||||
gimp->brush_factory,
|
||||
NULL, NULL))
|
||||
NULL, NULL, NULL))
|
||||
{
|
||||
g_object_unref (brush_editor);
|
||||
return NULL;
|
||||
|
|
|
@ -174,7 +174,8 @@ gimp_brush_factory_view_new (GimpViewType view_type,
|
|||
edit_func,
|
||||
context,
|
||||
preview_size, preview_border_width,
|
||||
menu_factory, "<Brushes>"))
|
||||
menu_factory, "<Brushes>",
|
||||
"/brushes-popup"))
|
||||
{
|
||||
g_object_unref (factory_view);
|
||||
return NULL;
|
||||
|
|
|
@ -104,9 +104,7 @@ gimp_buffer_view_get_type (void)
|
|||
static void
|
||||
gimp_buffer_view_class_init (GimpBufferViewClass *klass)
|
||||
{
|
||||
GimpContainerEditorClass *editor_class;
|
||||
|
||||
editor_class = GIMP_CONTAINER_EDITOR_CLASS (klass);
|
||||
GimpContainerEditorClass *editor_class = GIMP_CONTAINER_EDITOR_CLASS (klass);
|
||||
|
||||
parent_class = g_type_class_peek_parent (klass);
|
||||
|
||||
|
@ -141,7 +139,8 @@ gimp_buffer_view_new (GimpViewType view_type,
|
|||
container,context,
|
||||
preview_size, preview_border_width,
|
||||
TRUE, /* reorderable */
|
||||
menu_factory, "<Buffers>"))
|
||||
menu_factory, "<Buffers>",
|
||||
"/buffers-popup"))
|
||||
{
|
||||
g_object_unref (buffer_view);
|
||||
return NULL;
|
||||
|
|
|
@ -339,7 +339,8 @@ gimp_colormap_editor_new (GimpImage *gimage,
|
|||
editor = g_object_new (GIMP_TYPE_COLORMAP_EDITOR, NULL);
|
||||
|
||||
gimp_editor_create_menu (GIMP_EDITOR (editor),
|
||||
menu_factory, "<ColormapEditor>", editor);
|
||||
menu_factory, "<ColormapEditor>",
|
||||
"/colormap-editor-popup", editor);
|
||||
|
||||
/* The palette frame */
|
||||
frame = gtk_frame_new (NULL);
|
||||
|
|
|
@ -284,7 +284,8 @@ gimp_component_editor_new (gint preview_size,
|
|||
gimp_component_editor_set_preview_size (editor, preview_size);
|
||||
|
||||
gimp_editor_create_menu (GIMP_EDITOR (editor),
|
||||
menu_factory, "<Channels>", editor);
|
||||
menu_factory, "<Channels>",
|
||||
"/channels-popup", editor);
|
||||
|
||||
return GTK_WIDGET (editor);
|
||||
}
|
||||
|
|
|
@ -142,7 +142,8 @@ gimp_container_editor_construct (GimpContainerEditor *editor,
|
|||
gint preview_border_width,
|
||||
gboolean reorderable,
|
||||
GimpMenuFactory *menu_factory,
|
||||
const gchar *menu_identifier)
|
||||
const gchar *menu_identifier,
|
||||
const gchar *ui_identifier)
|
||||
{
|
||||
g_return_val_if_fail (GIMP_IS_CONTAINER_EDITOR (editor), FALSE);
|
||||
g_return_val_if_fail (GIMP_IS_CONTAINER (container), FALSE);
|
||||
|
@ -180,9 +181,10 @@ gimp_container_editor_construct (GimpContainerEditor *editor,
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
if (menu_factory && menu_identifier)
|
||||
if (menu_factory && menu_identifier && ui_identifier)
|
||||
gimp_editor_create_menu (GIMP_EDITOR (editor->view),
|
||||
menu_factory, menu_identifier, editor);
|
||||
menu_factory, menu_identifier, ui_identifier,
|
||||
editor);
|
||||
|
||||
gtk_container_add (GTK_CONTAINER (editor), GTK_WIDGET (editor->view));
|
||||
gtk_widget_show (GTK_WIDGET (editor->view));
|
||||
|
|
|
@ -69,7 +69,8 @@ gboolean gimp_container_editor_construct (GimpContainerEditor *editor,
|
|||
gint preview_border_width,
|
||||
gboolean reorderable,
|
||||
GimpMenuFactory *menu_factory,
|
||||
const gchar *menu_identifier);
|
||||
const gchar *menu_identifier,
|
||||
const gchar *ui_identifier);
|
||||
|
||||
|
||||
#endif /* __GIMP_CONTAINER_EDITOR_H__ */
|
||||
|
|
|
@ -485,7 +485,7 @@ gimp_container_popup_create_view (GimpContainerPopup *popup)
|
|||
popup->preview_size,
|
||||
popup->preview_border_width,
|
||||
FALSE, /* reorderable */
|
||||
NULL, NULL);
|
||||
NULL, NULL, NULL);
|
||||
|
||||
gimp_container_view_set_size_request (GIMP_CONTAINER_VIEW (GIMP_CONTAINER_EDITOR (popup->editor)->view),
|
||||
6 * (popup->default_preview_size +
|
||||
|
|
|
@ -272,7 +272,8 @@ gboolean
|
|||
gimp_data_editor_construct (GimpDataEditor *editor,
|
||||
GimpDataFactory *data_factory,
|
||||
GimpMenuFactory *menu_factory,
|
||||
const gchar *menu_identifier)
|
||||
const gchar *menu_identifier,
|
||||
const gchar *ui_identifier)
|
||||
{
|
||||
GimpData *data;
|
||||
|
||||
|
@ -285,9 +286,10 @@ gimp_data_editor_construct (GimpDataEditor *editor,
|
|||
|
||||
editor->data_factory = data_factory;
|
||||
|
||||
if (menu_factory && menu_identifier)
|
||||
if (menu_factory && menu_identifier && ui_identifier)
|
||||
gimp_editor_create_menu (GIMP_EDITOR (editor),
|
||||
menu_factory, menu_identifier, editor);
|
||||
menu_factory, menu_identifier, ui_identifier,
|
||||
editor);
|
||||
|
||||
data = (GimpData *)
|
||||
gimp_context_get_by_type (gimp_get_user_context (data_factory->gimp),
|
||||
|
|
|
@ -66,7 +66,8 @@ GType gimp_data_editor_get_type (void) G_GNUC_CONST;
|
|||
gboolean gimp_data_editor_construct (GimpDataEditor *editor,
|
||||
GimpDataFactory *data_factory,
|
||||
GimpMenuFactory *menu_factory,
|
||||
const gchar *menu_identifier);
|
||||
const gchar *menu_identifier,
|
||||
const gchar *ui_identifier);
|
||||
|
||||
void gimp_data_editor_set_data (GimpDataEditor *editor,
|
||||
GimpData *data);
|
||||
|
|
|
@ -133,7 +133,8 @@ gimp_data_factory_view_new (GimpViewType view_type,
|
|||
gint preview_size,
|
||||
gint preview_border_width,
|
||||
GimpMenuFactory *menu_factory,
|
||||
const gchar *menu_identifier)
|
||||
const gchar *menu_identifier,
|
||||
const gchar *ui_identifier)
|
||||
{
|
||||
GimpDataFactoryView *factory_view;
|
||||
|
||||
|
@ -147,7 +148,8 @@ gimp_data_factory_view_new (GimpViewType view_type,
|
|||
preview_size,
|
||||
preview_border_width,
|
||||
menu_factory,
|
||||
menu_identifier))
|
||||
menu_identifier,
|
||||
ui_identifier))
|
||||
{
|
||||
g_object_unref (factory_view);
|
||||
return NULL;
|
||||
|
@ -165,7 +167,8 @@ gimp_data_factory_view_construct (GimpDataFactoryView *factory_view,
|
|||
gint preview_size,
|
||||
gint preview_border_width,
|
||||
GimpMenuFactory *menu_factory,
|
||||
const gchar *menu_identifier)
|
||||
const gchar *menu_identifier,
|
||||
const gchar *ui_identifier)
|
||||
{
|
||||
GimpContainerEditor *editor;
|
||||
|
||||
|
@ -185,7 +188,8 @@ gimp_data_factory_view_construct (GimpDataFactoryView *factory_view,
|
|||
factory->container, context,
|
||||
preview_size, preview_border_width,
|
||||
FALSE, /* reorderable */
|
||||
menu_factory, menu_identifier))
|
||||
menu_factory, menu_identifier,
|
||||
ui_identifier))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
|
|
@ -70,7 +70,8 @@ GtkWidget * gimp_data_factory_view_new (GimpViewType view_type,
|
|||
gint preview_size,
|
||||
gint preview_border_width,
|
||||
GimpMenuFactory *menu_factory,
|
||||
const gchar *menu_identifier);
|
||||
const gchar *menu_identifier,
|
||||
const gchar *ui_identifier);
|
||||
|
||||
|
||||
/* protected */
|
||||
|
@ -83,7 +84,8 @@ gboolean gimp_data_factory_view_construct (GimpDataFactoryView *factory_view,
|
|||
gint preview_size,
|
||||
gint preview_border_width,
|
||||
GimpMenuFactory *menu_factory,
|
||||
const gchar *menu_identifier);
|
||||
const gchar *menu_identifier,
|
||||
const gchar *ui_identifier);
|
||||
|
||||
|
||||
#endif /* __GIMP_DATA_FACTORY_VIEW_H__ */
|
||||
|
|
|
@ -155,7 +155,8 @@ gimp_document_view_new (GimpViewType view_type,
|
|||
container, context,
|
||||
preview_size, preview_border_width,
|
||||
TRUE, /* reorderable */
|
||||
menu_factory, "<Documents>"))
|
||||
menu_factory, "<Documents>",
|
||||
"/documents-popup"))
|
||||
{
|
||||
g_object_unref (document_view);
|
||||
return NULL;
|
||||
|
|
|
@ -137,6 +137,7 @@ gimp_editor_init (GimpEditor *editor)
|
|||
{
|
||||
editor->menu_factory = NULL;
|
||||
editor->item_factory = NULL;
|
||||
editor->ui_manager = NULL;
|
||||
editor->item_factory_data = NULL;
|
||||
editor->button_box = NULL;
|
||||
}
|
||||
|
@ -150,9 +151,7 @@ gimp_editor_docked_iface_init (GimpDockedInterface *docked_iface)
|
|||
static void
|
||||
gimp_editor_destroy (GtkObject *object)
|
||||
{
|
||||
GimpEditor *editor;
|
||||
|
||||
editor = GIMP_EDITOR (object);
|
||||
GimpEditor *editor = GIMP_EDITOR (object);
|
||||
|
||||
if (editor->item_factory)
|
||||
{
|
||||
|
@ -160,6 +159,12 @@ gimp_editor_destroy (GtkObject *object)
|
|||
editor->item_factory = NULL;
|
||||
}
|
||||
|
||||
if (editor->ui_manager)
|
||||
{
|
||||
g_object_unref (editor->ui_manager);
|
||||
editor->ui_manager = NULL;
|
||||
}
|
||||
|
||||
GTK_OBJECT_CLASS (parent_class)->destroy (object);
|
||||
}
|
||||
|
||||
|
@ -206,11 +211,13 @@ void
|
|||
gimp_editor_create_menu (GimpEditor *editor,
|
||||
GimpMenuFactory *menu_factory,
|
||||
const gchar *menu_identifier,
|
||||
const gchar *ui_identifier,
|
||||
gpointer callback_data)
|
||||
{
|
||||
g_return_if_fail (GIMP_IS_EDITOR (editor));
|
||||
g_return_if_fail (GIMP_IS_MENU_FACTORY (menu_factory));
|
||||
g_return_if_fail (menu_identifier != NULL);
|
||||
g_return_if_fail (ui_identifier != NULL);
|
||||
|
||||
if (editor->item_factory)
|
||||
g_object_unref (editor->item_factory);
|
||||
|
@ -222,6 +229,14 @@ gimp_editor_create_menu (GimpEditor *editor,
|
|||
callback_data,
|
||||
FALSE);
|
||||
editor->item_factory_data = callback_data;
|
||||
|
||||
if (editor->ui_manager)
|
||||
g_object_unref (editor->ui_manager);
|
||||
|
||||
editor->ui_manager = gimp_menu_factory_manager_new (menu_factory,
|
||||
menu_identifier,
|
||||
callback_data,
|
||||
FALSE);
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
|
|
|
@ -42,6 +42,7 @@ struct _GimpEditor
|
|||
|
||||
GimpMenuFactory *menu_factory;
|
||||
GimpItemFactory *item_factory;
|
||||
GimpUIManager *ui_manager;
|
||||
gpointer item_factory_data;
|
||||
|
||||
GtkWidget *button_box;
|
||||
|
@ -60,6 +61,7 @@ GtkWidget * gimp_editor_new (void);
|
|||
void gimp_editor_create_menu (GimpEditor *editor,
|
||||
GimpMenuFactory *menu_factory,
|
||||
const gchar *menu_identifier,
|
||||
const gchar *ui_identifier,
|
||||
gpointer callback_data);
|
||||
|
||||
GtkWidget * gimp_editor_add_button (GimpEditor *editor,
|
||||
|
|
|
@ -234,7 +234,8 @@ gimp_error_console_new (Gimp *gimp,
|
|||
console->gimp = gimp;
|
||||
|
||||
gimp_editor_create_menu (GIMP_EDITOR (console),
|
||||
menu_factory, "<ErrorConsole>", console);
|
||||
menu_factory, "<ErrorConsole>",
|
||||
"/error-console-popup", console);
|
||||
|
||||
console->gimp->message_handler = GIMP_ERROR_CONSOLE;
|
||||
|
||||
|
|
|
@ -120,7 +120,8 @@ gimp_font_view_new (GimpViewType view_type,
|
|||
container,context,
|
||||
preview_size, preview_border_width,
|
||||
FALSE, /* reorderable */
|
||||
menu_factory, "<Fonts>"))
|
||||
menu_factory, "<Fonts>",
|
||||
"/fonts-popup"))
|
||||
{
|
||||
g_object_unref (font_view);
|
||||
return NULL;
|
||||
|
|
|
@ -472,7 +472,8 @@ gimp_gradient_editor_new (Gimp *gimp,
|
|||
|
||||
if (! gimp_data_editor_construct (GIMP_DATA_EDITOR (editor),
|
||||
gimp->gradient_factory,
|
||||
menu_factory, "<GradientEditor>"))
|
||||
menu_factory, "<GradientEditor>",
|
||||
"/gradient-editor-popup"))
|
||||
{
|
||||
g_object_unref (editor);
|
||||
return NULL;
|
||||
|
|
|
@ -125,7 +125,8 @@ gimp_image_view_new (GimpViewType view_type,
|
|||
container, context,
|
||||
preview_size, preview_border_width,
|
||||
TRUE, /* reorderable */
|
||||
menu_factory, "<Images>"))
|
||||
menu_factory, "<Images>",
|
||||
"/images-popup"))
|
||||
{
|
||||
g_object_unref (image_view);
|
||||
return NULL;
|
||||
|
|
|
@ -613,7 +613,8 @@ gimp_item_tree_view_new (gint preview_size,
|
|||
GimpNewItemFunc new_item_func,
|
||||
GimpActivateItemFunc activate_item_func,
|
||||
GimpMenuFactory *menu_factory,
|
||||
const gchar *menu_identifier)
|
||||
const gchar *menu_identifier,
|
||||
const gchar *ui_identifier)
|
||||
{
|
||||
GimpItemTreeView *item_view;
|
||||
GimpContainerView *view;
|
||||
|
@ -632,6 +633,7 @@ gimp_item_tree_view_new (gint preview_size,
|
|||
g_return_val_if_fail (activate_item_func != NULL, NULL);
|
||||
g_return_val_if_fail (GIMP_IS_MENU_FACTORY (menu_factory), NULL);
|
||||
g_return_val_if_fail (menu_identifier != NULL, NULL);
|
||||
g_return_val_if_fail (ui_identifier != NULL, NULL);
|
||||
|
||||
if (item_type == GIMP_TYPE_LAYER)
|
||||
{
|
||||
|
@ -669,7 +671,8 @@ gimp_item_tree_view_new (gint preview_size,
|
|||
item_view->activate_item_func = activate_item_func;
|
||||
|
||||
gimp_editor_create_menu (GIMP_EDITOR (item_view),
|
||||
menu_factory, menu_identifier, item_view);
|
||||
menu_factory, menu_identifier, ui_identifier,
|
||||
item_view);
|
||||
|
||||
gimp_item_tree_view_set_image (item_view, gimage);
|
||||
|
||||
|
|
|
@ -139,7 +139,8 @@ GtkWidget * gimp_item_tree_view_new (gint preview_size,
|
|||
GimpNewItemFunc new_item_func,
|
||||
GimpActivateItemFunc activate_item_func,
|
||||
GimpMenuFactory *menu_facotry,
|
||||
const gchar *menu_identifier);
|
||||
const gchar *menu_identifier,
|
||||
const gchar *ui_identifier);
|
||||
|
||||
void gimp_item_tree_view_set_image (GimpItemTreeView *view,
|
||||
GimpImage *gimage);
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
#include "gimpactionfactory.h"
|
||||
#include "gimpmenufactory.h"
|
||||
#include "gimpitemfactory.h"
|
||||
#include "gimpuimanager.h"
|
||||
|
||||
|
||||
static void gimp_menu_factory_class_init (GimpMenuFactoryClass *klass);
|
||||
|
@ -231,6 +232,8 @@ gimp_menu_factory_manager_register (GimpMenuFactory *factory,
|
|||
if (! strcmp (entry->identifier, identifier))
|
||||
{
|
||||
const gchar *group;
|
||||
const gchar *ui_identifier;
|
||||
const gchar *ui_basename;
|
||||
va_list args;
|
||||
|
||||
g_return_if_fail (entry->action_groups == NULL);
|
||||
|
@ -245,10 +248,31 @@ gimp_menu_factory_manager_register (GimpMenuFactory *factory,
|
|||
g_strdup (group));
|
||||
}
|
||||
|
||||
va_end (args);
|
||||
|
||||
entry->action_groups = g_list_reverse (entry->action_groups);
|
||||
|
||||
ui_identifier = va_arg (args, const gchar *);
|
||||
|
||||
while (ui_identifier)
|
||||
{
|
||||
GimpUIManagerUIEntry *ui_entry;
|
||||
|
||||
ui_basename = va_arg (args, const gchar *);
|
||||
|
||||
ui_entry = g_new0 (GimpUIManagerUIEntry, 1);
|
||||
|
||||
ui_entry->identifier = g_strdup (ui_identifier);
|
||||
ui_entry->basename = g_strdup (ui_basename);
|
||||
|
||||
entry->managed_uis = g_list_prepend (entry->managed_uis,
|
||||
ui_entry);
|
||||
|
||||
ui_identifier = va_arg (args, const gchar *);
|
||||
}
|
||||
|
||||
entry->managed_uis = g_list_reverse (entry->managed_uis);
|
||||
|
||||
va_end (args);
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -257,7 +281,7 @@ gimp_menu_factory_manager_register (GimpMenuFactory *factory,
|
|||
G_STRFUNC, identifier);
|
||||
}
|
||||
|
||||
GtkUIManager *
|
||||
GimpUIManager *
|
||||
gimp_menu_factory_manager_new (GimpMenuFactory *factory,
|
||||
const gchar *identifier,
|
||||
gpointer callback_data,
|
||||
|
@ -274,11 +298,12 @@ gimp_menu_factory_manager_new (GimpMenuFactory *factory,
|
|||
|
||||
if (! strcmp (entry->identifier, identifier))
|
||||
{
|
||||
GtkUIManager *manager;
|
||||
GList *list;
|
||||
GimpUIManager *manager;
|
||||
GList *list;
|
||||
|
||||
manager = gtk_ui_manager_new ();
|
||||
gtk_ui_manager_set_add_tearoffs (manager, create_tearoff);
|
||||
manager = gimp_ui_manager_new (factory->gimp);
|
||||
gtk_ui_manager_set_add_tearoffs (GTK_UI_MANAGER (manager),
|
||||
create_tearoff);
|
||||
|
||||
for (list = entry->action_groups; list; list = g_list_next (list))
|
||||
{
|
||||
|
@ -287,12 +312,21 @@ gimp_menu_factory_manager_new (GimpMenuFactory *factory,
|
|||
group = gimp_action_factory_group_new (factory->action_factory,
|
||||
(const gchar *) list->data,
|
||||
callback_data);
|
||||
gtk_ui_manager_insert_action_group (manager,
|
||||
gtk_ui_manager_insert_action_group (GTK_UI_MANAGER (manager),
|
||||
GTK_ACTION_GROUP (group),
|
||||
-1);
|
||||
g_object_unref (group);
|
||||
}
|
||||
|
||||
for (list = entry->managed_uis; list; list = g_list_next (list))
|
||||
{
|
||||
GimpUIManagerUIEntry *ui_entry = list->data;
|
||||
|
||||
gimp_ui_manager_ui_register (manager,
|
||||
ui_entry->identifier,
|
||||
ui_entry->basename);
|
||||
}
|
||||
|
||||
return manager;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@ struct _GimpMenuFactoryEntry
|
|||
GimpItemFactoryEntry *entries;
|
||||
|
||||
GList *action_groups;
|
||||
GList *managed_uis;
|
||||
};
|
||||
|
||||
|
||||
|
@ -95,7 +96,7 @@ void gimp_menu_factory_manager_register (GimpMenuFactory *factory,
|
|||
const gchar *first_group,
|
||||
...);
|
||||
|
||||
GtkUIManager * gimp_menu_factory_manager_new (GimpMenuFactory *factory,
|
||||
GimpUIManager * gimp_menu_factory_manager_new (GimpMenuFactory *factory,
|
||||
const gchar *identifier,
|
||||
gpointer callback_data,
|
||||
gboolean create_tearoff);
|
||||
|
|
|
@ -522,7 +522,8 @@ gimp_palette_editor_new (Gimp *gimp,
|
|||
|
||||
if (! gimp_data_editor_construct (GIMP_DATA_EDITOR (palette_editor),
|
||||
gimp->palette_factory,
|
||||
menu_factory, "<PaletteEditor>"))
|
||||
menu_factory, "<PaletteEditor>",
|
||||
"/palette-editor-popup"))
|
||||
{
|
||||
g_object_unref (palette_editor);
|
||||
return NULL;
|
||||
|
|
|
@ -90,7 +90,8 @@ gimp_pattern_factory_view_new (GimpViewType view_type,
|
|||
edit_func,
|
||||
context,
|
||||
preview_size, preview_border_width,
|
||||
menu_factory, "<Patterns>"))
|
||||
menu_factory, "<Patterns>",
|
||||
"/patterns-popup"))
|
||||
{
|
||||
g_object_unref (factory_view);
|
||||
return NULL;
|
||||
|
|
|
@ -148,7 +148,8 @@ gimp_template_view_new (GimpViewType view_type,
|
|||
container, context,
|
||||
preview_size, preview_border_width,
|
||||
TRUE, /* reorderable */
|
||||
menu_factory, "<Templates>"))
|
||||
menu_factory, "<Templates>",
|
||||
"/templates-popup"))
|
||||
{
|
||||
g_object_unref (template_view);
|
||||
return NULL;
|
||||
|
|
|
@ -286,8 +286,8 @@ gimp_tool_options_editor_new (Gimp *gimp,
|
|||
|
||||
gtk_widget_set_size_request (GTK_WIDGET (editor), -1, 200);
|
||||
|
||||
gimp_editor_create_menu (GIMP_EDITOR (editor),
|
||||
menu_factory, "<ToolOptions>",
|
||||
gimp_editor_create_menu (GIMP_EDITOR (editor), menu_factory,
|
||||
"<ToolOptions>", "/tool-options-popup",
|
||||
editor);
|
||||
|
||||
g_signal_connect_object (user_context, "tool_changed",
|
||||
|
|
|
@ -0,0 +1,306 @@
|
|||
/* The GIMP -- an image manipulation program
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* gimpuimanager.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 <string.h>
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "libgimpbase/gimpbase.h"
|
||||
|
||||
#include "widgets-types.h"
|
||||
|
||||
#include "core/gimp.h"
|
||||
|
||||
#include "gimpactiongroup.h"
|
||||
#include "gimpuimanager.h"
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
PROP_GIMP
|
||||
};
|
||||
|
||||
|
||||
static void gimp_ui_manager_init (GimpUIManager *manager);
|
||||
static void gimp_ui_manager_class_init (GimpUIManagerClass *klass);
|
||||
|
||||
static void gimp_ui_manager_finalize (GObject *object);
|
||||
static void gimp_ui_manager_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec);
|
||||
static void gimp_ui_manager_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec);
|
||||
|
||||
|
||||
static GtkUIManagerClass *parent_class = NULL;
|
||||
|
||||
|
||||
GType
|
||||
gimp_ui_manager_get_type (void)
|
||||
{
|
||||
static GType type = 0;
|
||||
|
||||
if (!type)
|
||||
{
|
||||
static const GTypeInfo type_info =
|
||||
{
|
||||
sizeof (GimpUIManagerClass),
|
||||
NULL, /* base_init */
|
||||
NULL, /* base_finalize */
|
||||
(GClassInitFunc) gimp_ui_manager_class_init,
|
||||
NULL, /* class_finalize */
|
||||
NULL, /* class_data */
|
||||
sizeof (GimpUIManager),
|
||||
0, /* n_preallocs */
|
||||
(GInstanceInitFunc) gimp_ui_manager_init,
|
||||
};
|
||||
|
||||
type = g_type_register_static (GTK_TYPE_UI_MANAGER,
|
||||
"GimpUIManager",
|
||||
&type_info, 0);
|
||||
}
|
||||
|
||||
return type;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_ui_manager_class_init (GimpUIManagerClass *klass)
|
||||
{
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
|
||||
parent_class = g_type_class_peek_parent (klass);
|
||||
|
||||
object_class->finalize = gimp_ui_manager_finalize;
|
||||
object_class->set_property = gimp_ui_manager_set_property;
|
||||
object_class->get_property = gimp_ui_manager_get_property;
|
||||
|
||||
g_object_class_install_property (object_class, PROP_GIMP,
|
||||
g_param_spec_object ("gimp",
|
||||
NULL, NULL,
|
||||
GIMP_TYPE_GIMP,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT_ONLY));
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_ui_manager_init (GimpUIManager *manager)
|
||||
{
|
||||
manager->gimp = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_ui_manager_finalize (GObject *object)
|
||||
{
|
||||
GimpUIManager *manager = GIMP_UI_MANAGER (object);
|
||||
GList *list;
|
||||
|
||||
for (list = manager->registered_uis; list; list = g_list_next (list))
|
||||
{
|
||||
GimpUIManagerUIEntry *entry = list->data;
|
||||
|
||||
g_free (entry->identifier);
|
||||
g_free (entry->basename);
|
||||
g_free (entry);
|
||||
}
|
||||
|
||||
g_list_free (manager->registered_uis);
|
||||
manager->registered_uis = NULL;
|
||||
|
||||
G_OBJECT_CLASS (parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_ui_manager_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GimpUIManager *manager = GIMP_UI_MANAGER (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_GIMP:
|
||||
manager->gimp = g_value_get_object (value);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_ui_manager_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GimpUIManager *manager = GIMP_UI_MANAGER (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_GIMP:
|
||||
g_value_set_object (value, manager->gimp);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gimp_ui_manager_new:
|
||||
* @gimp: the @Gimp instance this ui manager belongs to
|
||||
*
|
||||
* Creates a new #GimpUIManager object.
|
||||
*
|
||||
* Returns: the new #GimpUIManager
|
||||
*/
|
||||
GimpUIManager *
|
||||
gimp_ui_manager_new (Gimp *gimp)
|
||||
{
|
||||
GimpUIManager *manager;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
|
||||
|
||||
manager = g_object_new (GIMP_TYPE_UI_MANAGER,
|
||||
"gimp", gimp,
|
||||
NULL);
|
||||
|
||||
return manager;
|
||||
}
|
||||
|
||||
void
|
||||
gimp_ui_manager_update (GimpUIManager *manager,
|
||||
gpointer update_data)
|
||||
{
|
||||
GList *list;
|
||||
|
||||
g_return_if_fail (GIMP_IS_UI_MANAGER (manager));
|
||||
|
||||
for (list = gtk_ui_manager_get_action_groups (GTK_UI_MANAGER (manager));
|
||||
list;
|
||||
list = g_list_next (list))
|
||||
{
|
||||
gimp_action_group_update (list->data, update_data);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gimp_ui_manager_ui_register (GimpUIManager *manager,
|
||||
const gchar *identifier,
|
||||
const gchar *basename)
|
||||
{
|
||||
GimpUIManagerUIEntry *entry;
|
||||
|
||||
g_return_if_fail (GIMP_IS_UI_MANAGER (manager));
|
||||
g_return_if_fail (identifier != NULL);
|
||||
g_return_if_fail (basename != NULL);
|
||||
|
||||
entry = g_new0 (GimpUIManagerUIEntry, 1);
|
||||
|
||||
entry->identifier = g_strdup (identifier);
|
||||
entry->basename = g_strdup (basename);
|
||||
|
||||
manager->registered_uis = g_list_prepend (manager->registered_uis, entry);
|
||||
|
||||
#if 0
|
||||
{
|
||||
gchar *filename;
|
||||
GError *error = NULL;
|
||||
|
||||
filename = g_build_filename (gimp_data_directory (), "menus",
|
||||
entry->basename, NULL);
|
||||
|
||||
g_print ("loading menu: %s for %s\n", filename,
|
||||
entry->identifier);
|
||||
|
||||
entry->merge_id =
|
||||
gtk_ui_manager_add_ui_from_file (GTK_UI_MANAGER (manager),
|
||||
filename, &error);
|
||||
|
||||
g_free (filename);
|
||||
|
||||
if (! entry->merge_id)
|
||||
{
|
||||
g_message (error->message);
|
||||
g_clear_error (&error);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
gimp_ui_manager_ui_create (GimpUIManager *manager,
|
||||
const gchar *identifier)
|
||||
{
|
||||
GList *list;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_UI_MANAGER (manager), NULL);
|
||||
g_return_val_if_fail (identifier != NULL, NULL);
|
||||
|
||||
for (list = manager->registered_uis; list; list = g_list_next (list))
|
||||
{
|
||||
GimpUIManagerUIEntry *entry = list->data;
|
||||
|
||||
if (! strcmp (entry->identifier, identifier))
|
||||
{
|
||||
if (! entry->merge_id)
|
||||
{
|
||||
gchar *filename;
|
||||
GError *error = NULL;
|
||||
|
||||
filename = g_build_filename (gimp_data_directory (), "menus",
|
||||
entry->basename, NULL);
|
||||
|
||||
g_print ("loading menu: %s for %s\n", filename,
|
||||
entry->identifier);
|
||||
|
||||
entry->merge_id =
|
||||
gtk_ui_manager_add_ui_from_file (GTK_UI_MANAGER (manager),
|
||||
filename, &error);
|
||||
|
||||
g_free (filename);
|
||||
|
||||
if (! entry->merge_id)
|
||||
{
|
||||
g_message (error->message);
|
||||
g_clear_error (&error);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return gtk_ui_manager_get_widget (GTK_UI_MANAGER (manager),
|
||||
entry->identifier);
|
||||
}
|
||||
}
|
||||
|
||||
g_warning ("%s: no entry registered for \"%s\"",
|
||||
G_STRFUNC, identifier);
|
||||
|
||||
return NULL;
|
||||
}
|
|
@ -0,0 +1,75 @@
|
|||
/* The GIMP -- an image manipulation program
|
||||
* Copyright (C) 1995 Spencer Kimball and Peter Mattis
|
||||
*
|
||||
* gimpuimanager.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_UI_MANAGER_H__
|
||||
#define __GIMP_UI_MANAGER_H__
|
||||
|
||||
#include <gtk/gtkuimanager.h>
|
||||
|
||||
|
||||
typedef struct _GimpUIManagerUIEntry GimpUIManagerUIEntry;
|
||||
|
||||
struct _GimpUIManagerUIEntry
|
||||
{
|
||||
gchar *identifier;
|
||||
gchar *basename;
|
||||
guint merge_id;
|
||||
};
|
||||
|
||||
|
||||
#define GIMP_TYPE_UI_MANAGER (gimp_ui_manager_get_type ())
|
||||
#define GIMP_UI_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_UI_MANAGER, GimpUIManager))
|
||||
#define GIMP_UI_MANAGER_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), GIMP_TYPE_UI_MANAGER, GimpUIManagerClass))
|
||||
#define GIMP_IS_UI_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_UI_MANAGER))
|
||||
#define GIMP_IS_UI_MANAGER_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), GIMP_TYPE_UI_MANAGER))
|
||||
#define GIMP_UI_MANAGER_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), GIMP_TYPE_UI_MANAGER, GimpUIManagerClass))
|
||||
|
||||
|
||||
typedef struct _GimpUIManagerClass GimpUIManagerClass;
|
||||
|
||||
struct _GimpUIManager
|
||||
{
|
||||
GtkUIManager parent_instance;
|
||||
|
||||
Gimp *gimp;
|
||||
GList *registered_uis;
|
||||
};
|
||||
|
||||
struct _GimpUIManagerClass
|
||||
{
|
||||
GtkUIManagerClass parent_class;
|
||||
};
|
||||
|
||||
|
||||
GType gimp_ui_manager_get_type (void);
|
||||
GimpUIManager * gimp_ui_manager_new (Gimp *gimp);
|
||||
|
||||
void gimp_ui_manager_update (GimpUIManager *manager,
|
||||
gpointer update_data);
|
||||
|
||||
void gimp_ui_manager_ui_register (GimpUIManager *manager,
|
||||
const gchar *identifier,
|
||||
const gchar *basename);
|
||||
GtkWidget * gimp_ui_manager_ui_create (GimpUIManager *manager,
|
||||
const gchar *identifier);
|
||||
|
||||
|
||||
#endif /* __GIMP_UI_MANAGER_H__ */
|
|
@ -37,6 +37,7 @@ typedef struct _GimpActionFactory GimpActionFactory;
|
|||
typedef struct _GimpActionGroup GimpActionGroup;
|
||||
typedef struct _GimpEnumAction GimpEnumAction;
|
||||
typedef struct _GimpStringAction GimpStringAction;
|
||||
typedef struct _GimpUIManager GimpUIManager;
|
||||
|
||||
typedef struct _GimpEnumStore GimpEnumStore;
|
||||
|
||||
|
|
Loading…
Reference in New Issue