CPPFLAGS: added -DGTK_DISABLE_DEPRECATED

2002-01-25  Michael Natterer  <mitch@gimp.org>

	* configure.in: CPPFLAGS: added -DGTK_DISABLE_DEPRECATED

	* libgimpwidgets/gimpdialog.c: still use the deprecated
	gtk_window_set_policy() but spit out a #warning.

	* app/widgets/widgets-types.h
	* app/widgets/gimpitemfactory.[ch]: made it a GtkItemFactory
	subclass. This way we can reproduce the effect of
	gtk_item_factory_get_from_path() which is deprectated for good
	reasons.  For GIMP, using it its perfectly OK since we only have
	one item factory per "<prefix>".

	* app/widgets/gimpbrushfactoryview.[ch]
	* app/widgets/gimpbufferview.[ch]
	* app/widgets/gimpcontainereditor.[ch]
	* app/widgets/gimpdatafactoryview.[ch]
	* app/widgets/gimpdialogfactory.[ch]
	* app/widgets/gimpdock.c
	* app/widgets/gimpdockbook.c
	* app/widgets/gimpdocumentview.[ch]
	* app/widgets/gimpdrawablelistview.[ch]
	* app/widgets/gimppreview.c
	* app/display/gimpdisplayshell-callbacks.c
	* app/display/gimpdisplayshell.[ch]: pass around GimpItemFactory
	pointers instead of "const gchar *" item factory identifiers.
	Replaced gtk_window_set_policy() by gtk_window_set_resizable()
	and other recommended stuff.

	* app/gui/about-dialog.c
	* app/gui/dialogs-constructors.c
	* app/gui/dialogs.c
	* app/gui/file-open-dialog.c
	* app/gui/file-save-dialog.c
	* app/gui/gradient-editor.c
	* app/gui/menus.c
	* app/gui/offset-dialog.c
	* app/gui/splash.c
	* app/gui/tips-dialog.c
	* app/gui/toolbox.c: lots of
	s/gtk_item_factory_from_path/gimp_item_factory_from_path/,
	gtk_window_set_policy() replacements, misc fixes.

	* plug-ins/gdyntext/charmap_window.c
	* plug-ins/gdyntext/gdyntext_ui.c
	* plug-ins/gdyntext/message_window.c
	* plug-ins/imagemap/imap_main.c: replaced gtk_window_set_policy().
This commit is contained in:
Michael Natterer 2002-01-25 18:34:33 +00:00 committed by Michael Natterer
parent 46715fc1ee
commit 9dd403f7b2
62 changed files with 980 additions and 714 deletions

View File

@ -1,3 +1,57 @@
2002-01-25 Michael Natterer <mitch@gimp.org>
* configure.in: CPPFLAGS: added -DGTK_DISABLE_DEPRECATED
* libgimpwidgets/gimpdialog.c: still use the deprecated
gtk_window_set_policy() but spit out a #warning.
* app/widgets/widgets-types.h
* app/widgets/gimpitemfactory.[ch]: made it a GtkItemFactory
subclass. This way we can reproduce the effect of
gtk_item_factory_get_from_path() which is deprectated for good
reasons. For GIMP, using it its perfectly OK since we only have
one item factory per "<prefix>".
* app/widgets/gimpbrushfactoryview.[ch]
* app/widgets/gimpbufferview.[ch]
* app/widgets/gimpcontainereditor.[ch]
* app/widgets/gimpdatafactoryview.[ch]
* app/widgets/gimpdialogfactory.[ch]
* app/widgets/gimpdock.c
* app/widgets/gimpdockbook.c
* app/widgets/gimpdocumentview.[ch]
* app/widgets/gimpdrawablelistview.[ch]
* app/widgets/gimppreview.c
* app/display/gimpdisplayshell-callbacks.c
* app/display/gimpdisplayshell.[ch]: pass around GimpItemFactory
pointers instead of "const gchar *" item factory identifiers.
Replaced gtk_window_set_policy() by gtk_window_set_resizable()
and other recommended stuff.
* app/gui/about-dialog.c
* app/gui/dialogs-constructors.c
* app/gui/dialogs.c
* app/gui/file-open-dialog.c
* app/gui/file-save-dialog.c
* app/gui/gradient-editor.c
* app/gui/menus.c
* app/gui/offset-dialog.c
* app/gui/splash.c
* app/gui/tips-dialog.c
* app/gui/toolbox.c: lots of
s/gtk_item_factory_from_path/gimp_item_factory_from_path/,
gtk_window_set_policy() replacements, misc fixes.
* plug-ins/gdyntext/charmap_window.c
* plug-ins/gdyntext/gdyntext_ui.c
* plug-ins/gdyntext/message_window.c
* plug-ins/imagemap/imap_main.c: replaced gtk_window_set_policy().
2002-01-25 Michael Natterer <mitch@gimp.org>
* plug-ins/common/tga.c
* plug-ins/common/video.c: compile with GTK_DISABLE_DEPRECATED.
2002-01-24 Sven Neumann <sven@gimp.org>
* plug-ins/common/tga.c: merged fix for bug #53278 from stable branch.

View File

@ -130,8 +130,8 @@ about_dialog_create (void)
GDK_WINDOW_TYPE_HINT_DIALOG);
gtk_window_set_wmclass (GTK_WINDOW (about_dialog), "about_dialog", "Gimp");
gtk_window_set_title (GTK_WINDOW (about_dialog), _("About The GIMP"));
gtk_window_set_policy (GTK_WINDOW (about_dialog), FALSE, FALSE, FALSE);
gtk_window_set_position (GTK_WINDOW (about_dialog), GTK_WIN_POS_CENTER);
gtk_window_set_resizable (GTK_WINDOW (about_dialog), FALSE);
gimp_help_connect (about_dialog, gimp_standard_help_func,
"dialogs/about.html");
@ -161,7 +161,7 @@ about_dialog_create (void)
gtk_widget_set_events (about_dialog, GDK_BUTTON_PRESS_MASK);
if (!about_dialog_load_logo (about_dialog))
if (! about_dialog_load_logo (about_dialog))
{
gtk_widget_destroy (about_dialog);
about_dialog = NULL;

View File

@ -42,6 +42,7 @@
#include "widgets/gimpdatafactoryview.h"
#include "widgets/gimpdialogfactory.h"
#include "widgets/gimpimagedock.h"
#include "widgets/gimpitemfactory.h"
#include "widgets/gimpdockable.h"
#include "widgets/gimpdockbook.h"
#include "widgets/gimpdocumentview.h"
@ -386,7 +387,7 @@ dialogs_brush_list_view_new (GimpDialogFactory *factory,
TRUE,
preview_size,
5, 3,
"<Brushes>");
gimp_item_factory_from_path ("<Brushes>"));
return dialogs_dockable_new (view,
"Brush List", "Brushes",
@ -407,7 +408,7 @@ dialogs_pattern_list_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Patterns>");
gimp_item_factory_from_path ("<Patterns>"));
return dialogs_dockable_new (view,
"Pattern List", "Patterns",
@ -428,7 +429,7 @@ dialogs_gradient_list_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Gradients>");
gimp_item_factory_from_path ("<Gradients>"));
return dialogs_dockable_new (view,
"Gradient List", "Gradients",
@ -449,7 +450,7 @@ dialogs_palette_list_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Palettes>");
gimp_item_factory_from_path ("<Palettes>"));
return dialogs_dockable_new (view,
"Palette List", "Palettes",
@ -488,7 +489,7 @@ dialogs_buffer_list_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Buffers>");
gimp_item_factory_from_path ("<Buffers>"));
return dialogs_dockable_new (view,
"Buffer List", "Buffers",
@ -532,7 +533,7 @@ dialogs_brush_grid_view_new (GimpDialogFactory *factory,
TRUE,
preview_size,
5, 3,
"<Brushes>");
gimp_item_factory_from_path ("<Brushes>"));
return dialogs_dockable_new (view,
"Brush Grid", "Brushes",
@ -553,7 +554,7 @@ dialogs_pattern_grid_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Patterns>");
gimp_item_factory_from_path ("<Patterns>"));
return dialogs_dockable_new (view,
"Pattern Grid", "Patterns",
@ -574,7 +575,7 @@ dialogs_gradient_grid_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Gradients>");
gimp_item_factory_from_path ("<Gradients>"));
return dialogs_dockable_new (view,
"Gradient Grid", "Gradients",
@ -595,7 +596,7 @@ dialogs_palette_grid_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Gradients>");
gimp_item_factory_from_path ("<Gradients>"));
return dialogs_dockable_new (view,
"Palette Grid", "Palettes",
@ -634,7 +635,7 @@ dialogs_buffer_grid_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Buffers>");
gimp_item_factory_from_path ("<Buffers>"));
return dialogs_dockable_new (view,
"Buffer Grid", "Buffers",
@ -671,7 +672,7 @@ dialogs_layer_list_view_new (GimpDialogFactory *factory,
(GimpConvertDrawableFunc) gimp_layer_new_from_drawable,
(GimpNewDrawableFunc) layers_new_layer_query,
(GimpEditDrawableFunc) layers_edit_layer_query,
"<Layers>");
gimp_item_factory_from_path ("<Layers>"));
dockable = dialogs_dockable_new (view,
"Layer List", "Layers",
@ -709,7 +710,7 @@ dialogs_channel_list_view_new (GimpDialogFactory *factory,
(GimpConvertDrawableFunc) NULL,
(GimpNewDrawableFunc) channels_new_channel_query,
(GimpEditDrawableFunc) channels_edit_channel_query,
"<Channels>");
gimp_item_factory_from_path ("<Channels>"));
dockable = dialogs_dockable_new (view,
"Channel List", "Channels",
@ -789,7 +790,7 @@ dialogs_document_history_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Documents>");
gimp_item_factory_from_path ("<Documents>"));
return dialogs_dockable_new (view,
"Document History", "History",

View File

@ -26,6 +26,7 @@
#include "core/gimpcontext.h"
#include "widgets/gimpdialogfactory.h"
#include "widgets/gimpitemfactory.h"
#include "dialogs.h"
#include "dialogs-constructors.h"
@ -100,7 +101,7 @@ dialogs_init (Gimp *gimp)
global_dock_factory = gimp_dialog_factory_new ("dock",
gimp_get_user_context (gimp),
gtk_item_factory_from_path ("<Dialogs>"),
gimp_item_factory_from_path ("<Dialogs>"),
dialogs_dock_new);
for (i = 0; i < G_N_ELEMENTS (toplevel_entries); i++)

View File

@ -38,7 +38,7 @@
#include "libgimpmath/gimpmath.h"
#include "libgimpwidgets/gimpwidgets.h"
#include "core/core-types.h"
#include "gui-types.h"
#include "base/temp-buf.h"
@ -224,12 +224,12 @@ file_open_dialog_create (Gimp *gimp)
"open/dialogs/file_open.html");
{
GtkItemFactory *item_factory;
GtkWidget *frame;
GtkWidget *vbox;
GtkWidget *hbox;
GtkWidget *option_menu;
GtkWidget *open_options_genbutton;
GimpItemFactory *item_factory;
GtkWidget *frame;
GtkWidget *vbox;
GtkWidget *hbox;
GtkWidget *option_menu;
GtkWidget *open_options_genbutton;
open_options = gtk_hbox_new (TRUE, 1);
@ -250,9 +250,9 @@ file_open_dialog_create (Gimp *gimp)
gtk_box_pack_start (GTK_BOX (hbox), option_menu, FALSE, FALSE, 0);
gtk_widget_show (option_menu);
item_factory = gtk_item_factory_from_path ("<Load>");
item_factory = gimp_item_factory_from_path ("<Load>");
gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu),
item_factory->widget);
GTK_ITEM_FACTORY (item_factory)->widget);
gtk_widget_show (vbox);
gtk_widget_show (frame);

View File

@ -250,11 +250,11 @@ file_save_dialog_create (void)
"save/dialogs/file_save.html");
{
GtkItemFactory *item_factory;
GtkWidget *frame;
GtkWidget *hbox;
GtkWidget *label;
GtkWidget *option_menu;
GimpItemFactory *item_factory;
GtkWidget *frame;
GtkWidget *hbox;
GtkWidget *label;
GtkWidget *option_menu;
save_options = gtk_hbox_new (TRUE, 1);
@ -275,9 +275,9 @@ file_save_dialog_create (void)
gtk_box_pack_start (GTK_BOX (hbox), option_menu, TRUE, TRUE, 0);
gtk_widget_show (option_menu);
item_factory = gtk_item_factory_from_path ("<Save>");
item_factory = gimp_item_factory_from_path ("<Save>");
gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu),
item_factory->widget);
GTK_ITEM_FACTORY (item_factory)->widget);
gtk_widget_show (frame);

View File

@ -137,7 +137,7 @@ offset_dialog_create (GimpDrawable *drawable)
adjustment = gtk_adjustment_new (1, 1, 1, 1, 10, 1);
spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (adjustment), 1, 2);
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton), TRUE);
gtk_widget_set_size_request (spinbutton, 75, 0);
gtk_widget_set_size_request (spinbutton, 75, -1);
off_d->off_se = gimp_size_entry_new (1, off_d->gimage->unit, "%a",
TRUE, TRUE, FALSE, 75,

View File

@ -91,11 +91,11 @@ tips_dialog_create (void)
gtk_window_set_wmclass (GTK_WINDOW (tips_dialog), "tip_of_the_day", "Gimp");
gtk_window_set_title (GTK_WINDOW (tips_dialog), _("GIMP Tip of the Day"));
gtk_window_set_position (GTK_WINDOW (tips_dialog), GTK_WIN_POS_CENTER);
gtk_window_set_policy (GTK_WINDOW (tips_dialog), FALSE, TRUE, FALSE);
gtk_window_set_resizable (GTK_WINDOW (tips_dialog), TRUE);
g_signal_connect (G_OBJECT (tips_dialog), "delete_event",
G_CALLBACK (gtk_widget_destroy),
NULL);
G_CALLBACK (gtk_widget_destroy),
NULL);
g_signal_connect (G_OBJECT (tips_dialog), "destroy",
G_CALLBACK (tips_dialog_destroy),

View File

@ -193,6 +193,9 @@ gimp_display_shell_canvas_realize (GtkWidget *canvas,
GDK_TOP_LEFT_ARROW,
GIMP_TOOL_CURSOR_NONE,
GIMP_CURSOR_MODIFIER_NONE);
/* allow shrinking */
gtk_widget_set_size_request (GTK_WIDGET (shell), 0, 0);
}
gboolean
@ -485,7 +488,7 @@ gimp_display_shell_canvas_tool_events (GtkWidget *canvas,
case 3:
state |= GDK_BUTTON3_MASK;
gimp_item_factory_popup_with_data (shell->ifactory,
gimp_item_factory_popup_with_data (shell->item_factory,
gimage,
NULL);
return_val = TRUE;
@ -1038,12 +1041,16 @@ gimp_display_shell_origin_button_press (GtkWidget *widget,
if (! gdisp->gimage->gimp->busy && event->button == 1)
{
gint x, y;
GtkItemFactory *factory;
gint x, y;
gimp_display_shell_origin_menu_position (GTK_MENU (shell->ifactory->widget),
&x, &y, widget);
factory = GTK_ITEM_FACTORY (shell->item_factory);
gtk_item_factory_popup_with_data (shell->ifactory,
gimp_display_shell_origin_menu_position (GTK_MENU (factory->widget),
&x, &y,
widget);
gtk_item_factory_popup_with_data (factory,
gdisp->gimage,
NULL,
x, y,
@ -1089,9 +1096,9 @@ gimp_display_shell_qmask_button_press (GtkWidget *widget,
if ((event->type == GDK_BUTTON_PRESS) && (event->button == 3))
{
GtkItemFactory *factory;
GimpItemFactory *factory;
factory = gtk_item_factory_from_path ("<QMask>");
factory = gimp_item_factory_from_path ("<QMask>");
gimp_item_factory_popup_with_data (factory, shell, NULL);

View File

@ -172,7 +172,7 @@ static void
gimp_display_shell_init (GimpDisplayShell *shell)
{
shell->gdisp = NULL;
shell->ifactory = NULL;
shell->item_factory = NULL;
shell->offset_x = 0;
shell->offset_y = 0;
@ -239,6 +239,55 @@ gimp_display_shell_init (GimpDisplayShell *shell)
shell->cd_list = NULL;
shell->cd_ui = NULL;
#endif /* DISPLAY_FILTERS */
gtk_window_set_wmclass (GTK_WINDOW (shell), "image_window", "Gimp");
gtk_window_set_resizable (GTK_WINDOW (shell), TRUE);
gtk_widget_set_events (GTK_WIDGET (shell), (GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK |
GDK_KEY_PRESS_MASK |
GDK_KEY_RELEASE_MASK));
/* active display callback */
g_signal_connect (G_OBJECT (shell), "button_press_event",
G_CALLBACK (gimp_display_shell_events),
shell);
g_signal_connect (G_OBJECT (shell), "key_press_event",
G_CALLBACK (gimp_display_shell_events),
shell);
/* dnd stuff */
gtk_drag_dest_set (GTK_WIDGET (shell),
GTK_DEST_DEFAULT_ALL,
display_target_table,
G_N_ELEMENTS (display_target_table),
GDK_ACTION_COPY);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_LAYER,
gimp_display_shell_drop_drawable,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_LAYER_MASK,
gimp_display_shell_drop_drawable,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_CHANNEL,
gimp_display_shell_drop_drawable,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_PATTERN,
gimp_display_shell_drop_pattern,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_BUFFER,
gimp_display_shell_drop_buffer,
shell);
gimp_dnd_color_dest_set (GTK_WIDGET (shell),
gimp_display_shell_drop_color,
shell);
/* connect the "F1" help key */
gimp_help_connect (GTK_WIDGET (shell),
gimp_standard_help_func,
"image/image_window.html");
}
static void
@ -385,64 +434,15 @@ gimp_display_shell_new (GimpDisplay *gdisp)
/* the toplevel shell */
shell = g_object_new (GIMP_TYPE_DISPLAY_SHELL, NULL);
shell->gdisp = gdisp;
gtk_window_set_wmclass (GTK_WINDOW (shell), "image_window", "Gimp");
gtk_window_set_policy (GTK_WINDOW (shell), TRUE, TRUE, TRUE);
gtk_widget_set_events (GTK_WIDGET (shell), (GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK |
GDK_KEY_PRESS_MASK |
GDK_KEY_RELEASE_MASK));
/* the popup menu */
shell->ifactory = gtk_item_factory_from_path ("<Image>");
shell->gdisp = gdisp;
shell->item_factory = gimp_item_factory_from_path ("<Image>");
/* The accelerator table for images */
gimp_window_add_accel_group (GTK_WINDOW (shell),
shell->ifactory,
GTK_ITEM_FACTORY (shell->item_factory),
gimp_display_shell_get_accel_context,
shell);
/* active display callback */
g_signal_connect (G_OBJECT (shell), "button_press_event",
G_CALLBACK (gimp_display_shell_events),
shell);
g_signal_connect (G_OBJECT (shell), "key_press_event",
G_CALLBACK (gimp_display_shell_events),
shell);
/* dnd stuff */
gtk_drag_dest_set (GTK_WIDGET (shell),
GTK_DEST_DEFAULT_ALL,
display_target_table,
G_N_ELEMENTS (display_target_table),
GDK_ACTION_COPY);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_LAYER,
gimp_display_shell_drop_drawable,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_LAYER_MASK,
gimp_display_shell_drop_drawable,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_CHANNEL,
gimp_display_shell_drop_drawable,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_PATTERN,
gimp_display_shell_drop_pattern,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_BUFFER,
gimp_display_shell_drop_buffer,
shell);
gimp_dnd_color_dest_set (GTK_WIDGET (shell),
gimp_display_shell_drop_color,
shell);
/* connect the "F1" help key */
gimp_help_connect (GTK_WIDGET (shell),
gimp_standard_help_func,
"image/image_window.html");
/* GtkTable widgets are not able to shrink a row/column correctly if
* widgets are attached with GTK_EXPAND even if those widgets have
* other rows/columns in their rowspan/colspan where they could

View File

@ -52,7 +52,7 @@ struct _GimpDisplayShell
GimpDisplay *gdisp;
GtkItemFactory *ifactory;
GimpItemFactory *item_factory;
gint offset_x; /* offset of display image into raw image */
gint offset_y;

View File

@ -172,7 +172,7 @@ static void
gimp_display_shell_init (GimpDisplayShell *shell)
{
shell->gdisp = NULL;
shell->ifactory = NULL;
shell->item_factory = NULL;
shell->offset_x = 0;
shell->offset_y = 0;
@ -239,6 +239,55 @@ gimp_display_shell_init (GimpDisplayShell *shell)
shell->cd_list = NULL;
shell->cd_ui = NULL;
#endif /* DISPLAY_FILTERS */
gtk_window_set_wmclass (GTK_WINDOW (shell), "image_window", "Gimp");
gtk_window_set_resizable (GTK_WINDOW (shell), TRUE);
gtk_widget_set_events (GTK_WIDGET (shell), (GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK |
GDK_KEY_PRESS_MASK |
GDK_KEY_RELEASE_MASK));
/* active display callback */
g_signal_connect (G_OBJECT (shell), "button_press_event",
G_CALLBACK (gimp_display_shell_events),
shell);
g_signal_connect (G_OBJECT (shell), "key_press_event",
G_CALLBACK (gimp_display_shell_events),
shell);
/* dnd stuff */
gtk_drag_dest_set (GTK_WIDGET (shell),
GTK_DEST_DEFAULT_ALL,
display_target_table,
G_N_ELEMENTS (display_target_table),
GDK_ACTION_COPY);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_LAYER,
gimp_display_shell_drop_drawable,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_LAYER_MASK,
gimp_display_shell_drop_drawable,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_CHANNEL,
gimp_display_shell_drop_drawable,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_PATTERN,
gimp_display_shell_drop_pattern,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_BUFFER,
gimp_display_shell_drop_buffer,
shell);
gimp_dnd_color_dest_set (GTK_WIDGET (shell),
gimp_display_shell_drop_color,
shell);
/* connect the "F1" help key */
gimp_help_connect (GTK_WIDGET (shell),
gimp_standard_help_func,
"image/image_window.html");
}
static void
@ -385,64 +434,15 @@ gimp_display_shell_new (GimpDisplay *gdisp)
/* the toplevel shell */
shell = g_object_new (GIMP_TYPE_DISPLAY_SHELL, NULL);
shell->gdisp = gdisp;
gtk_window_set_wmclass (GTK_WINDOW (shell), "image_window", "Gimp");
gtk_window_set_policy (GTK_WINDOW (shell), TRUE, TRUE, TRUE);
gtk_widget_set_events (GTK_WIDGET (shell), (GDK_POINTER_MOTION_MASK |
GDK_POINTER_MOTION_HINT_MASK |
GDK_BUTTON_PRESS_MASK |
GDK_KEY_PRESS_MASK |
GDK_KEY_RELEASE_MASK));
/* the popup menu */
shell->ifactory = gtk_item_factory_from_path ("<Image>");
shell->gdisp = gdisp;
shell->item_factory = gimp_item_factory_from_path ("<Image>");
/* The accelerator table for images */
gimp_window_add_accel_group (GTK_WINDOW (shell),
shell->ifactory,
GTK_ITEM_FACTORY (shell->item_factory),
gimp_display_shell_get_accel_context,
shell);
/* active display callback */
g_signal_connect (G_OBJECT (shell), "button_press_event",
G_CALLBACK (gimp_display_shell_events),
shell);
g_signal_connect (G_OBJECT (shell), "key_press_event",
G_CALLBACK (gimp_display_shell_events),
shell);
/* dnd stuff */
gtk_drag_dest_set (GTK_WIDGET (shell),
GTK_DEST_DEFAULT_ALL,
display_target_table,
G_N_ELEMENTS (display_target_table),
GDK_ACTION_COPY);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_LAYER,
gimp_display_shell_drop_drawable,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_LAYER_MASK,
gimp_display_shell_drop_drawable,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_CHANNEL,
gimp_display_shell_drop_drawable,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_PATTERN,
gimp_display_shell_drop_pattern,
shell);
gimp_dnd_viewable_dest_set (GTK_WIDGET (shell), GIMP_TYPE_BUFFER,
gimp_display_shell_drop_buffer,
shell);
gimp_dnd_color_dest_set (GTK_WIDGET (shell),
gimp_display_shell_drop_color,
shell);
/* connect the "F1" help key */
gimp_help_connect (GTK_WIDGET (shell),
gimp_standard_help_func,
"image/image_window.html");
/* GtkTable widgets are not able to shrink a row/column correctly if
* widgets are attached with GTK_EXPAND even if those widgets have
* other rows/columns in their rowspan/colspan where they could

View File

@ -52,7 +52,7 @@ struct _GimpDisplayShell
GimpDisplay *gdisp;
GtkItemFactory *ifactory;
GimpItemFactory *item_factory;
gint offset_x; /* offset of display image into raw image */
gint offset_y;

View File

@ -130,8 +130,8 @@ about_dialog_create (void)
GDK_WINDOW_TYPE_HINT_DIALOG);
gtk_window_set_wmclass (GTK_WINDOW (about_dialog), "about_dialog", "Gimp");
gtk_window_set_title (GTK_WINDOW (about_dialog), _("About The GIMP"));
gtk_window_set_policy (GTK_WINDOW (about_dialog), FALSE, FALSE, FALSE);
gtk_window_set_position (GTK_WINDOW (about_dialog), GTK_WIN_POS_CENTER);
gtk_window_set_resizable (GTK_WINDOW (about_dialog), FALSE);
gimp_help_connect (about_dialog, gimp_standard_help_func,
"dialogs/about.html");
@ -161,7 +161,7 @@ about_dialog_create (void)
gtk_widget_set_events (about_dialog, GDK_BUTTON_PRESS_MASK);
if (!about_dialog_load_logo (about_dialog))
if (! about_dialog_load_logo (about_dialog))
{
gtk_widget_destroy (about_dialog);
about_dialog = NULL;

View File

@ -42,6 +42,7 @@
#include "widgets/gimpdatafactoryview.h"
#include "widgets/gimpdialogfactory.h"
#include "widgets/gimpimagedock.h"
#include "widgets/gimpitemfactory.h"
#include "widgets/gimpdockable.h"
#include "widgets/gimpdockbook.h"
#include "widgets/gimpdocumentview.h"
@ -386,7 +387,7 @@ dialogs_brush_list_view_new (GimpDialogFactory *factory,
TRUE,
preview_size,
5, 3,
"<Brushes>");
gimp_item_factory_from_path ("<Brushes>"));
return dialogs_dockable_new (view,
"Brush List", "Brushes",
@ -407,7 +408,7 @@ dialogs_pattern_list_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Patterns>");
gimp_item_factory_from_path ("<Patterns>"));
return dialogs_dockable_new (view,
"Pattern List", "Patterns",
@ -428,7 +429,7 @@ dialogs_gradient_list_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Gradients>");
gimp_item_factory_from_path ("<Gradients>"));
return dialogs_dockable_new (view,
"Gradient List", "Gradients",
@ -449,7 +450,7 @@ dialogs_palette_list_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Palettes>");
gimp_item_factory_from_path ("<Palettes>"));
return dialogs_dockable_new (view,
"Palette List", "Palettes",
@ -488,7 +489,7 @@ dialogs_buffer_list_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Buffers>");
gimp_item_factory_from_path ("<Buffers>"));
return dialogs_dockable_new (view,
"Buffer List", "Buffers",
@ -532,7 +533,7 @@ dialogs_brush_grid_view_new (GimpDialogFactory *factory,
TRUE,
preview_size,
5, 3,
"<Brushes>");
gimp_item_factory_from_path ("<Brushes>"));
return dialogs_dockable_new (view,
"Brush Grid", "Brushes",
@ -553,7 +554,7 @@ dialogs_pattern_grid_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Patterns>");
gimp_item_factory_from_path ("<Patterns>"));
return dialogs_dockable_new (view,
"Pattern Grid", "Patterns",
@ -574,7 +575,7 @@ dialogs_gradient_grid_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Gradients>");
gimp_item_factory_from_path ("<Gradients>"));
return dialogs_dockable_new (view,
"Gradient Grid", "Gradients",
@ -595,7 +596,7 @@ dialogs_palette_grid_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Gradients>");
gimp_item_factory_from_path ("<Gradients>"));
return dialogs_dockable_new (view,
"Palette Grid", "Palettes",
@ -634,7 +635,7 @@ dialogs_buffer_grid_view_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Buffers>");
gimp_item_factory_from_path ("<Buffers>"));
return dialogs_dockable_new (view,
"Buffer Grid", "Buffers",
@ -671,7 +672,7 @@ dialogs_layer_list_view_new (GimpDialogFactory *factory,
(GimpConvertDrawableFunc) gimp_layer_new_from_drawable,
(GimpNewDrawableFunc) layers_new_layer_query,
(GimpEditDrawableFunc) layers_edit_layer_query,
"<Layers>");
gimp_item_factory_from_path ("<Layers>"));
dockable = dialogs_dockable_new (view,
"Layer List", "Layers",
@ -709,7 +710,7 @@ dialogs_channel_list_view_new (GimpDialogFactory *factory,
(GimpConvertDrawableFunc) NULL,
(GimpNewDrawableFunc) channels_new_channel_query,
(GimpEditDrawableFunc) channels_edit_channel_query,
"<Channels>");
gimp_item_factory_from_path ("<Channels>"));
dockable = dialogs_dockable_new (view,
"Channel List", "Channels",
@ -789,7 +790,7 @@ dialogs_document_history_new (GimpDialogFactory *factory,
context,
preview_size,
5, 3,
"<Documents>");
gimp_item_factory_from_path ("<Documents>"));
return dialogs_dockable_new (view,
"Document History", "History",

View File

@ -26,6 +26,7 @@
#include "core/gimpcontext.h"
#include "widgets/gimpdialogfactory.h"
#include "widgets/gimpitemfactory.h"
#include "dialogs.h"
#include "dialogs-constructors.h"
@ -100,7 +101,7 @@ dialogs_init (Gimp *gimp)
global_dock_factory = gimp_dialog_factory_new ("dock",
gimp_get_user_context (gimp),
gtk_item_factory_from_path ("<Dialogs>"),
gimp_item_factory_from_path ("<Dialogs>"),
dialogs_dock_new);
for (i = 0; i < G_N_ELEMENTS (toplevel_entries); i++)

View File

@ -38,7 +38,7 @@
#include "libgimpmath/gimpmath.h"
#include "libgimpwidgets/gimpwidgets.h"
#include "core/core-types.h"
#include "gui-types.h"
#include "base/temp-buf.h"
@ -224,12 +224,12 @@ file_open_dialog_create (Gimp *gimp)
"open/dialogs/file_open.html");
{
GtkItemFactory *item_factory;
GtkWidget *frame;
GtkWidget *vbox;
GtkWidget *hbox;
GtkWidget *option_menu;
GtkWidget *open_options_genbutton;
GimpItemFactory *item_factory;
GtkWidget *frame;
GtkWidget *vbox;
GtkWidget *hbox;
GtkWidget *option_menu;
GtkWidget *open_options_genbutton;
open_options = gtk_hbox_new (TRUE, 1);
@ -250,9 +250,9 @@ file_open_dialog_create (Gimp *gimp)
gtk_box_pack_start (GTK_BOX (hbox), option_menu, FALSE, FALSE, 0);
gtk_widget_show (option_menu);
item_factory = gtk_item_factory_from_path ("<Load>");
item_factory = gimp_item_factory_from_path ("<Load>");
gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu),
item_factory->widget);
GTK_ITEM_FACTORY (item_factory)->widget);
gtk_widget_show (vbox);
gtk_widget_show (frame);

View File

@ -250,11 +250,11 @@ file_save_dialog_create (void)
"save/dialogs/file_save.html");
{
GtkItemFactory *item_factory;
GtkWidget *frame;
GtkWidget *hbox;
GtkWidget *label;
GtkWidget *option_menu;
GimpItemFactory *item_factory;
GtkWidget *frame;
GtkWidget *hbox;
GtkWidget *label;
GtkWidget *option_menu;
save_options = gtk_hbox_new (TRUE, 1);
@ -275,9 +275,9 @@ file_save_dialog_create (void)
gtk_box_pack_start (GTK_BOX (hbox), option_menu, TRUE, TRUE, 0);
gtk_widget_show (option_menu);
item_factory = gtk_item_factory_from_path ("<Save>");
item_factory = gimp_item_factory_from_path ("<Save>");
gtk_option_menu_set_menu (GTK_OPTION_MENU (option_menu),
item_factory->widget);
GTK_ITEM_FACTORY (item_factory)->widget);
gtk_widget_show (frame);

View File

@ -811,9 +811,9 @@ preview_events (GtkWidget *widget,
case 3:
{
GtkItemFactory *factory;
GimpItemFactory *factory;
factory = gtk_item_factory_from_path ("<GradientEditor>");
factory = gimp_item_factory_from_path ("<GradientEditor>");
gimp_item_factory_popup_with_data (factory, editor, NULL);
}
@ -1298,9 +1298,9 @@ control_button_press (GradientEditor *editor,
case 3:
{
GtkItemFactory *factory;
GimpItemFactory *factory;
factory = gtk_item_factory_from_path ("<GradientEditor>");
factory = gimp_item_factory_from_path ("<GradientEditor>");
gimp_item_factory_popup_with_data (factory, editor, NULL);
}

View File

@ -1794,22 +1794,22 @@ static GimpItemFactoryEntry qmask_entries[] =
static gboolean menus_initialized = FALSE;
static GtkItemFactory *toolbox_factory = NULL;
static GtkItemFactory *image_factory = NULL;
static GtkItemFactory *load_factory = NULL;
static GtkItemFactory *save_factory = NULL;
static GtkItemFactory *layers_factory = NULL;
static GtkItemFactory *channels_factory = NULL;
static GtkItemFactory *paths_factory = NULL;
static GtkItemFactory *dialogs_factory = NULL;
static GtkItemFactory *brushes_factory = NULL;
static GtkItemFactory *patterns_factory = NULL;
static GtkItemFactory *gradient_editor_factory = NULL;
static GtkItemFactory *gradients_factory = NULL;
static GtkItemFactory *palettes_factory = NULL;
static GtkItemFactory *buffers_factory = NULL;
static GtkItemFactory *documents_factory = NULL;
static GtkItemFactory *qmask_factory = NULL;
static GimpItemFactory *toolbox_factory = NULL;
static GimpItemFactory *image_factory = NULL;
static GimpItemFactory *load_factory = NULL;
static GimpItemFactory *save_factory = NULL;
static GimpItemFactory *layers_factory = NULL;
static GimpItemFactory *channels_factory = NULL;
static GimpItemFactory *paths_factory = NULL;
static GimpItemFactory *dialogs_factory = NULL;
static GimpItemFactory *brushes_factory = NULL;
static GimpItemFactory *patterns_factory = NULL;
static GimpItemFactory *gradient_editor_factory = NULL;
static GimpItemFactory *gradients_factory = NULL;
static GimpItemFactory *palettes_factory = NULL;
static GimpItemFactory *buffers_factory = NULL;
static GimpItemFactory *documents_factory = NULL;
static GimpItemFactory *qmask_factory = NULL;
/* public functions */
@ -1869,12 +1869,12 @@ menus_init (Gimp *gimp)
for (i = 0; i < gimprc.last_opened_size; i++)
{
gimp_item_factory_set_visible (toolbox_factory,
gimp_item_factory_set_visible (GTK_ITEM_FACTORY (toolbox_factory),
last_opened_entries[i].entry.path,
FALSE);
}
gimp_item_factory_set_sensitive (toolbox_factory,
gimp_item_factory_set_sensitive (GTK_ITEM_FACTORY (toolbox_factory),
"/File/Open Recent/(None)",
FALSE);
@ -2017,7 +2017,7 @@ menus_init (Gimp *gimp)
/* reorder <Image>/Image/Colors */
tool_info = tool_manager_get_info_by_type (gimp, GIMP_TYPE_POSTERIZE_TOOL);
menu_item = gtk_item_factory_get_widget (image_factory,
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
tool_info->menu_path);
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, 3);
@ -2040,7 +2040,7 @@ menus_init (Gimp *gimp)
{
tool_info = tool_manager_get_info_by_type (gimp, color_tools[i]);
menu_item = gtk_item_factory_get_widget (image_factory,
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
tool_info->menu_path);
if (menu_item && menu_item->parent)
{
@ -2212,12 +2212,12 @@ menus_restore (Gimp *gimp)
static gchar *reorder_subsubmenus[] = { "<Image>/Filters",
"<Toolbox>/Xtns" };
GtkItemFactory *item_factory;
GtkWidget *menu_item;
GtkWidget *menu;
GList *list;
gchar *path;
gint i, pos;
GimpItemFactory *item_factory;
GtkWidget *menu_item;
GtkWidget *menu;
GList *list;
gchar *path;
gint i, pos;
g_return_if_fail (GIMP_IS_GIMP (gimp));
@ -2225,7 +2225,7 @@ menus_restore (Gimp *gimp)
* separators to the top of the menu
*/
pos = 1;
menu_item = gtk_item_factory_get_widget (toolbox_factory,
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (toolbox_factory),
"/Xtns/Module Browser...");
if (menu_item && menu_item->parent && GTK_IS_MENU (menu_item->parent))
{
@ -2251,7 +2251,7 @@ menus_restore (Gimp *gimp)
* separators to the top of the menu
*/
pos = 3;
menu_item = gtk_item_factory_get_widget (image_factory,
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
"/Filters/Filter all Layers...");
if (menu_item && menu_item->parent && GTK_IS_MENU (menu_item->parent))
{
@ -2278,7 +2278,8 @@ menus_restore (Gimp *gimp)
for (i = 0; i < G_N_ELEMENTS (rotate_plugins); i++)
{
path = g_strconcat ("/Image/Transform/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
path);
g_free (path);
if (menu_item && menu_item->parent)
@ -2292,7 +2293,8 @@ menus_restore (Gimp *gimp)
for (i = 0; i < G_N_ELEMENTS (rotate_plugins); i++)
{
path = g_strconcat ("/Layer/Transform/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
path);
g_free (path);
if (menu_item && menu_item->parent)
@ -2306,7 +2308,8 @@ menus_restore (Gimp *gimp)
for (i = 0; i < G_N_ELEMENTS (image_file_entries); i++)
{
path = g_strconcat ("/File/", image_file_entries[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
path);
g_free (path);
if (menu_item && menu_item->parent)
@ -2316,8 +2319,9 @@ menus_restore (Gimp *gimp)
/* Reorder menus where plugins registered submenus */
for (i = 0; i < G_N_ELEMENTS (reorder_submenus); i++)
{
item_factory = gtk_item_factory_from_path (reorder_submenus[i]);
menu = gtk_item_factory_get_widget (item_factory,
item_factory = gimp_item_factory_from_path (reorder_submenus[i]);
menu = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (item_factory),
reorder_submenus[i]);
if (menu && GTK_IS_MENU (menu))
@ -2328,8 +2332,9 @@ menus_restore (Gimp *gimp)
for (i = 0; i < G_N_ELEMENTS (reorder_subsubmenus); i++)
{
item_factory = gtk_item_factory_from_path (reorder_subsubmenus[i]);
menu = gtk_item_factory_get_widget (item_factory,
item_factory = gimp_item_factory_from_path (reorder_subsubmenus[i]);
menu = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (item_factory),
reorder_subsubmenus[i]);
if (menu && GTK_IS_MENU (menu))
@ -2350,7 +2355,7 @@ menus_restore (Gimp *gimp)
/* Move all submenus which registered after "<Image>/Filters/Toys"
* before the separator after "<Image>/Filters/Web"
*/
menu_item = gtk_item_factory_get_widget (image_factory,
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
"/Filters/---INSERT");
if (menu_item && menu_item->parent && GTK_IS_MENU (menu_item->parent))
@ -2358,7 +2363,7 @@ menus_restore (Gimp *gimp)
menu = menu_item->parent;
pos = g_list_index (GTK_MENU_SHELL (menu)->children, menu_item);
menu_item = gtk_item_factory_get_widget (image_factory,
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
"/Filters/Toys");
if (menu_item && GTK_IS_MENU (menu_item))
@ -2467,7 +2472,7 @@ menus_last_opened_update_labels (GimpContainer *container,
num_documents = gimp_container_num_children (container);
gimp_item_factory_set_visible (toolbox_factory,
gimp_item_factory_set_visible (GTK_ITEM_FACTORY (toolbox_factory),
"/File/Open Recent/(None)",
num_documents == 0);
@ -2477,7 +2482,8 @@ menus_last_opened_update_labels (GimpContainer *container,
path_str = g_strdup_printf ("/File/Open Recent/%02d", i + 1);
widget = gtk_item_factory_get_widget (toolbox_factory, path_str);
widget = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (toolbox_factory),
path_str);
g_free (path_str);
@ -2575,7 +2581,7 @@ menus_debug_recurse_menu (GtkWidget *menu,
accel = NULL;
}
item_factory = gtk_item_factory_from_path (path);
item_factory = gimp_item_factory_from_path (path);
help_page = (gchar *) g_object_get_data (G_OBJECT (menu_item),
"help_page");

View File

@ -137,7 +137,7 @@ offset_dialog_create (GimpDrawable *drawable)
adjustment = gtk_adjustment_new (1, 1, 1, 1, 10, 1);
spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (adjustment), 1, 2);
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbutton), TRUE);
gtk_widget_set_size_request (spinbutton, 75, 0);
gtk_widget_set_size_request (spinbutton, 75, -1);
off_d->off_se = gimp_size_entry_new (1, off_d->gimage->unit, "%a",
TRUE, TRUE, FALSE, 75,

View File

@ -54,7 +54,7 @@ splash_create (gboolean show_image)
gtk_window_set_title (GTK_WINDOW (win_initstatus), _("GIMP Startup"));
gtk_window_set_wmclass (GTK_WINDOW (win_initstatus), "gimp_startup", "Gimp");
gtk_window_set_position (GTK_WINDOW (win_initstatus), GTK_WIN_POS_CENTER);
gtk_window_set_policy (GTK_WINDOW (win_initstatus), FALSE, FALSE, FALSE);
gtk_window_set_resizable (GTK_WINDOW (win_initstatus), FALSE);
vbox = gtk_vbox_new (FALSE, 4);
gtk_container_add (GTK_CONTAINER (win_initstatus), vbox);

View File

@ -91,11 +91,11 @@ tips_dialog_create (void)
gtk_window_set_wmclass (GTK_WINDOW (tips_dialog), "tip_of_the_day", "Gimp");
gtk_window_set_title (GTK_WINDOW (tips_dialog), _("GIMP Tip of the Day"));
gtk_window_set_position (GTK_WINDOW (tips_dialog), GTK_WIN_POS_CENTER);
gtk_window_set_policy (GTK_WINDOW (tips_dialog), FALSE, TRUE, FALSE);
gtk_window_set_resizable (GTK_WINDOW (tips_dialog), TRUE);
g_signal_connect (G_OBJECT (tips_dialog), "delete_event",
G_CALLBACK (gtk_widget_destroy),
NULL);
G_CALLBACK (gtk_widget_destroy),
NULL);
g_signal_connect (G_OBJECT (tips_dialog), "destroy",
G_CALLBACK (tips_dialog_destroy),

View File

@ -117,12 +117,12 @@ static GtkTargetEntry toolbox_target_table[] =
GtkWidget *
toolbox_create (Gimp *gimp)
{
GimpContext *context;
GtkItemFactory *toolbox_factory;
GtkWidget *window;
GtkWidget *main_vbox;
GtkWidget *wbox;
GList *list;
GimpContext *context;
GimpItemFactory *toolbox_factory;
GtkWidget *window;
GtkWidget *main_vbox;
GtkWidget *wbox;
GList *list;
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
@ -131,7 +131,7 @@ toolbox_create (Gimp *gimp)
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_wmclass (GTK_WINDOW (window), "toolbox", "Gimp");
gtk_window_set_title (GTK_WINDOW (window), _("The GIMP"));
gtk_window_set_policy (GTK_WINDOW (window), TRUE, TRUE, FALSE);
gtk_window_set_resizable (GTK_WINDOW (window), TRUE);
g_signal_connect (G_OBJECT (window), "delete_event",
G_CALLBACK (toolbox_delete),
@ -169,12 +169,14 @@ toolbox_create (Gimp *gimp)
gtk_container_add (GTK_CONTAINER (window), main_vbox);
gtk_widget_show (main_vbox);
toolbox_factory = gtk_item_factory_from_path ("<Toolbox>");
gtk_box_pack_start (GTK_BOX (main_vbox), toolbox_factory->widget,
toolbox_factory = gimp_item_factory_from_path ("<Toolbox>");
gtk_box_pack_start (GTK_BOX (main_vbox),
GTK_ITEM_FACTORY (toolbox_factory)->widget,
FALSE, FALSE, 0);
gtk_widget_show (toolbox_factory->widget);
gtk_widget_show (GTK_ITEM_FACTORY (toolbox_factory)->widget);
gtk_window_add_accel_group (GTK_WINDOW (window), toolbox_factory->accel_group);
gtk_window_add_accel_group (GTK_WINDOW (window),
GTK_ITEM_FACTORY (toolbox_factory)->accel_group);
/* Connect the "F1" help key */
gimp_help_connect (window,

View File

@ -1794,22 +1794,22 @@ static GimpItemFactoryEntry qmask_entries[] =
static gboolean menus_initialized = FALSE;
static GtkItemFactory *toolbox_factory = NULL;
static GtkItemFactory *image_factory = NULL;
static GtkItemFactory *load_factory = NULL;
static GtkItemFactory *save_factory = NULL;
static GtkItemFactory *layers_factory = NULL;
static GtkItemFactory *channels_factory = NULL;
static GtkItemFactory *paths_factory = NULL;
static GtkItemFactory *dialogs_factory = NULL;
static GtkItemFactory *brushes_factory = NULL;
static GtkItemFactory *patterns_factory = NULL;
static GtkItemFactory *gradient_editor_factory = NULL;
static GtkItemFactory *gradients_factory = NULL;
static GtkItemFactory *palettes_factory = NULL;
static GtkItemFactory *buffers_factory = NULL;
static GtkItemFactory *documents_factory = NULL;
static GtkItemFactory *qmask_factory = NULL;
static GimpItemFactory *toolbox_factory = NULL;
static GimpItemFactory *image_factory = NULL;
static GimpItemFactory *load_factory = NULL;
static GimpItemFactory *save_factory = NULL;
static GimpItemFactory *layers_factory = NULL;
static GimpItemFactory *channels_factory = NULL;
static GimpItemFactory *paths_factory = NULL;
static GimpItemFactory *dialogs_factory = NULL;
static GimpItemFactory *brushes_factory = NULL;
static GimpItemFactory *patterns_factory = NULL;
static GimpItemFactory *gradient_editor_factory = NULL;
static GimpItemFactory *gradients_factory = NULL;
static GimpItemFactory *palettes_factory = NULL;
static GimpItemFactory *buffers_factory = NULL;
static GimpItemFactory *documents_factory = NULL;
static GimpItemFactory *qmask_factory = NULL;
/* public functions */
@ -1869,12 +1869,12 @@ menus_init (Gimp *gimp)
for (i = 0; i < gimprc.last_opened_size; i++)
{
gimp_item_factory_set_visible (toolbox_factory,
gimp_item_factory_set_visible (GTK_ITEM_FACTORY (toolbox_factory),
last_opened_entries[i].entry.path,
FALSE);
}
gimp_item_factory_set_sensitive (toolbox_factory,
gimp_item_factory_set_sensitive (GTK_ITEM_FACTORY (toolbox_factory),
"/File/Open Recent/(None)",
FALSE);
@ -2017,7 +2017,7 @@ menus_init (Gimp *gimp)
/* reorder <Image>/Image/Colors */
tool_info = tool_manager_get_info_by_type (gimp, GIMP_TYPE_POSTERIZE_TOOL);
menu_item = gtk_item_factory_get_widget (image_factory,
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
tool_info->menu_path);
if (menu_item && menu_item->parent)
gtk_menu_reorder_child (GTK_MENU (menu_item->parent), menu_item, 3);
@ -2040,7 +2040,7 @@ menus_init (Gimp *gimp)
{
tool_info = tool_manager_get_info_by_type (gimp, color_tools[i]);
menu_item = gtk_item_factory_get_widget (image_factory,
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
tool_info->menu_path);
if (menu_item && menu_item->parent)
{
@ -2212,12 +2212,12 @@ menus_restore (Gimp *gimp)
static gchar *reorder_subsubmenus[] = { "<Image>/Filters",
"<Toolbox>/Xtns" };
GtkItemFactory *item_factory;
GtkWidget *menu_item;
GtkWidget *menu;
GList *list;
gchar *path;
gint i, pos;
GimpItemFactory *item_factory;
GtkWidget *menu_item;
GtkWidget *menu;
GList *list;
gchar *path;
gint i, pos;
g_return_if_fail (GIMP_IS_GIMP (gimp));
@ -2225,7 +2225,7 @@ menus_restore (Gimp *gimp)
* separators to the top of the menu
*/
pos = 1;
menu_item = gtk_item_factory_get_widget (toolbox_factory,
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (toolbox_factory),
"/Xtns/Module Browser...");
if (menu_item && menu_item->parent && GTK_IS_MENU (menu_item->parent))
{
@ -2251,7 +2251,7 @@ menus_restore (Gimp *gimp)
* separators to the top of the menu
*/
pos = 3;
menu_item = gtk_item_factory_get_widget (image_factory,
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
"/Filters/Filter all Layers...");
if (menu_item && menu_item->parent && GTK_IS_MENU (menu_item->parent))
{
@ -2278,7 +2278,8 @@ menus_restore (Gimp *gimp)
for (i = 0; i < G_N_ELEMENTS (rotate_plugins); i++)
{
path = g_strconcat ("/Image/Transform/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
path);
g_free (path);
if (menu_item && menu_item->parent)
@ -2292,7 +2293,8 @@ menus_restore (Gimp *gimp)
for (i = 0; i < G_N_ELEMENTS (rotate_plugins); i++)
{
path = g_strconcat ("/Layer/Transform/", rotate_plugins[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
path);
g_free (path);
if (menu_item && menu_item->parent)
@ -2306,7 +2308,8 @@ menus_restore (Gimp *gimp)
for (i = 0; i < G_N_ELEMENTS (image_file_entries); i++)
{
path = g_strconcat ("/File/", image_file_entries[i], NULL);
menu_item = gtk_item_factory_get_widget (image_factory, path);
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
path);
g_free (path);
if (menu_item && menu_item->parent)
@ -2316,8 +2319,9 @@ menus_restore (Gimp *gimp)
/* Reorder menus where plugins registered submenus */
for (i = 0; i < G_N_ELEMENTS (reorder_submenus); i++)
{
item_factory = gtk_item_factory_from_path (reorder_submenus[i]);
menu = gtk_item_factory_get_widget (item_factory,
item_factory = gimp_item_factory_from_path (reorder_submenus[i]);
menu = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (item_factory),
reorder_submenus[i]);
if (menu && GTK_IS_MENU (menu))
@ -2328,8 +2332,9 @@ menus_restore (Gimp *gimp)
for (i = 0; i < G_N_ELEMENTS (reorder_subsubmenus); i++)
{
item_factory = gtk_item_factory_from_path (reorder_subsubmenus[i]);
menu = gtk_item_factory_get_widget (item_factory,
item_factory = gimp_item_factory_from_path (reorder_subsubmenus[i]);
menu = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (item_factory),
reorder_subsubmenus[i]);
if (menu && GTK_IS_MENU (menu))
@ -2350,7 +2355,7 @@ menus_restore (Gimp *gimp)
/* Move all submenus which registered after "<Image>/Filters/Toys"
* before the separator after "<Image>/Filters/Web"
*/
menu_item = gtk_item_factory_get_widget (image_factory,
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
"/Filters/---INSERT");
if (menu_item && menu_item->parent && GTK_IS_MENU (menu_item->parent))
@ -2358,7 +2363,7 @@ menus_restore (Gimp *gimp)
menu = menu_item->parent;
pos = g_list_index (GTK_MENU_SHELL (menu)->children, menu_item);
menu_item = gtk_item_factory_get_widget (image_factory,
menu_item = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (image_factory),
"/Filters/Toys");
if (menu_item && GTK_IS_MENU (menu_item))
@ -2467,7 +2472,7 @@ menus_last_opened_update_labels (GimpContainer *container,
num_documents = gimp_container_num_children (container);
gimp_item_factory_set_visible (toolbox_factory,
gimp_item_factory_set_visible (GTK_ITEM_FACTORY (toolbox_factory),
"/File/Open Recent/(None)",
num_documents == 0);
@ -2477,7 +2482,8 @@ menus_last_opened_update_labels (GimpContainer *container,
path_str = g_strdup_printf ("/File/Open Recent/%02d", i + 1);
widget = gtk_item_factory_get_widget (toolbox_factory, path_str);
widget = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (toolbox_factory),
path_str);
g_free (path_str);
@ -2575,7 +2581,7 @@ menus_debug_recurse_menu (GtkWidget *menu,
accel = NULL;
}
item_factory = gtk_item_factory_from_path (path);
item_factory = gimp_item_factory_from_path (path);
help_page = (gchar *) g_object_get_data (G_OBJECT (menu_item),
"help_page");

View File

@ -156,7 +156,7 @@ gimp_brush_factory_view_new (GimpViewType view_type,
gint preview_size,
gint min_items_x,
gint min_items_y,
const gchar *item_factory)
GimpItemFactory *item_factory)
{
GimpBrushFactoryView *factory_view;
GimpContainerEditor *editor;

View File

@ -62,7 +62,7 @@ GtkWidget * gimp_brush_factory_view_new (GimpViewType view_type,
gint preview_size,
gint min_items_x,
gint min_items_y,
const gchar *item_factory);
GimpItemFactory *item_factory);
#endif /* __GIMP_BRUSH_FACTORY_VIEW_H__ */

View File

@ -114,13 +114,13 @@ gimp_buffer_view_init (GimpBufferView *view)
}
GtkWidget *
gimp_buffer_view_new (GimpViewType view_type,
GimpContainer *container,
GimpContext *context,
gint preview_size,
gint min_items_x,
gint min_items_y,
const gchar *item_factory)
gimp_buffer_view_new (GimpViewType view_type,
GimpContainer *container,
GimpContext *context,
gint preview_size,
gint min_items_x,
gint min_items_y,
GimpItemFactory *item_factory)
{
GimpBufferView *buffer_view;
GimpContainerEditor *editor;

View File

@ -54,13 +54,13 @@ struct _GimpBufferViewClass
GType gimp_buffer_view_get_type (void) G_GNUC_CONST;
GtkWidget * gimp_buffer_view_new (GimpViewType view_type,
GimpContainer *container,
GimpContext *context,
gint preview_size,
gint min_items_x,
gint min_items_y,
const gchar *item_factory);
GtkWidget * gimp_buffer_view_new (GimpViewType view_type,
GimpContainer *container,
GimpContext *context,
gint preview_size,
gint min_items_x,
gint min_items_y,
GimpItemFactory *item_factory);
#endif /* __GIMP_BUFFER_VIEW_H__ */

View File

@ -119,8 +119,11 @@ gimp_container_editor_finalize (GObject *object)
editor = GIMP_CONTAINER_EDITOR (object);
g_free (editor->item_factory);
editor->item_factory = NULL;
if (editor->item_factory)
{
g_object_unref (G_OBJECT (editor->item_factory));
editor->item_factory = NULL;
}
G_OBJECT_CLASS (parent_class)->finalize (object);
}
@ -134,17 +137,19 @@ gimp_container_editor_construct (GimpContainerEditor *editor,
gboolean reorderable,
gint min_items_x,
gint min_items_y,
const gchar *item_factory)
GimpItemFactory *item_factory)
{
g_return_val_if_fail (GIMP_IS_CONTAINER_EDITOR (editor), FALSE);
g_return_val_if_fail (GIMP_IS_CONTAINER (container), FALSE);
g_return_val_if_fail (GIMP_IS_CONTEXT (context), FALSE);
g_return_val_if_fail (GIMP_IS_ITEM_FACTORY (item_factory), FALSE);
g_return_val_if_fail (preview_size > 0 && preview_size <= 64, FALSE);
g_return_val_if_fail (min_items_x > 0 && min_items_x <= 64, FALSE);
g_return_val_if_fail (min_items_y > 0 && min_items_y <= 64, FALSE);
editor->item_factory = g_strdup (item_factory);
editor->item_factory = item_factory;
g_object_ref (G_OBJECT (editor->item_factory));
switch (view_type)
{
@ -249,14 +254,9 @@ gimp_container_editor_real_context_item (GimpContainerEditor *editor,
{
if (editor->item_factory)
{
GtkItemFactory *factory;
factory = gtk_item_factory_from_path (editor->item_factory);
if (factory)
{
gimp_item_factory_popup_with_data (factory, editor, NULL);
}
gimp_item_factory_popup_with_data (editor->item_factory,
editor,
NULL);
}
}
}

View File

@ -40,8 +40,7 @@ struct _GimpContainerEditor
{
GtkVBox parent_instance;
gchar *item_factory;
GimpItemFactory *item_factory;
GimpContainerView *view;
};
@ -71,7 +70,7 @@ gboolean gimp_container_editor_construct (GimpContainerEditor *editor,
gboolean reorderable,
gint min_items_x,
gint min_items_y,
const gchar *item_factory);
GimpItemFactory *item_factory);
#endif /* __GIMP_CONTAINER_EDITOR_H__ */

View File

@ -129,7 +129,7 @@ gimp_data_factory_view_new (GimpViewType view_type,
gint preview_size,
gint min_items_x,
gint min_items_y,
const gchar *item_factory)
GimpItemFactory *item_factory)
{
GimpDataFactoryView *factory_view;
@ -161,7 +161,7 @@ gimp_data_factory_view_construct (GimpDataFactoryView *factory_view,
gint preview_size,
gint min_items_x,
gint min_items_y,
const gchar *item_factory)
GimpItemFactory *item_factory)
{
GimpContainerEditor *editor;

View File

@ -69,7 +69,7 @@ GtkWidget * gimp_data_factory_view_new (GimpViewType view_type,
gint preview_size,
gint min_items_x,
gint min_items_y,
const gchar *item_factory);
GimpItemFactory *item_factory);
/* protected */
@ -82,7 +82,7 @@ gboolean gimp_data_factory_view_construct (GimpDataFactoryView *factory_view,
gint preview_size,
gint min_items_x,
gint min_items_y,
const gchar *item_factory);
GimpItemFactory *item_factory);
#endif /* __GIMP_DATA_FACTORY_VIEW_H__ */

View File

@ -40,6 +40,7 @@
#include "gimpdockbook.h"
#include "gimpdockable.h"
#include "gimpimagedock.h"
#include "gimpitemfactory.h"
typedef enum
@ -183,7 +184,7 @@ gimp_dialog_factory_finalize (GObject *object)
GimpDialogFactory *
gimp_dialog_factory_new (const gchar *name,
GimpContext *context,
GtkItemFactory *item_factory,
GimpItemFactory *item_factory,
GimpDialogNewFunc new_dock_func)
{
GimpDialogFactoryClass *factory_class;
@ -191,7 +192,7 @@ gimp_dialog_factory_new (const gchar *name,
g_return_val_if_fail (name != NULL, NULL);
g_return_val_if_fail (GIMP_IS_CONTEXT (context), NULL);
g_return_val_if_fail (! item_factory || GTK_IS_ITEM_FACTORY (item_factory),
g_return_val_if_fail (! item_factory || GIMP_IS_ITEM_FACTORY (item_factory),
NULL);
/* EEK */

View File

@ -84,7 +84,7 @@ struct _GimpDialogFactory
GimpObject parent_instance;
GimpContext *context;
GtkItemFactory *item_factory;
GimpItemFactory *item_factory;
/*< private >*/
GimpDialogNewFunc new_dock_func;
@ -107,7 +107,7 @@ GType gimp_dialog_factory_get_type (void) G_GNUC_CONST;
GimpDialogFactory * gimp_dialog_factory_new (const gchar *name,
GimpContext *context,
GtkItemFactory *item_factory,
GimpItemFactory *item_factory,
GimpDialogNewFunc new_dock_func);
GimpDialogFactory * gimp_dialog_factory_from_name (const gchar *name);

View File

@ -138,7 +138,7 @@ gimp_dock_init (GimpDock *dock)
dock->context = NULL;
gtk_window_set_wmclass (GTK_WINDOW (dock), "dock", "Gimp");
gtk_window_set_policy (GTK_WINDOW (dock), FALSE, TRUE, TRUE);
gtk_window_set_resizable (GTK_WINDOW (dock), TRUE);
gtk_widget_set_size_request (GTK_WIDGET (dock), GIMP_DOCK_MINIMAL_WIDTH, -1);

View File

@ -169,7 +169,9 @@ gimp_dockbook_style_set (GtkWidget *widget,
"tab_border", &tab_border,
NULL);
gtk_notebook_set_tab_border (GTK_NOTEBOOK (widget), tab_border);
g_object_set (G_OBJECT (widget),
"tab_border", tab_border,
NULL);
}
static gboolean
@ -466,12 +468,13 @@ gimp_dockbook_tab_button_press (GtkWidget *widget,
if (bevent->button == 3)
{
GtkItemFactory *ifactory;
GtkWidget *add_widget;
GimpItemFactory *item_factory;
GtkWidget *add_widget;
ifactory = GTK_ITEM_FACTORY (dockbook->dock->factory->item_factory);
item_factory = dockbook->dock->factory->item_factory;
add_widget = gtk_item_factory_get_widget (ifactory, "/Select Tab");
add_widget = gtk_item_factory_get_widget (GTK_ITEM_FACTORY (item_factory),
"/Select Tab");
/* do evil things */
{
@ -480,6 +483,7 @@ gimp_dockbook_tab_button_press (GtkWidget *widget,
notebook_menu = GTK_NOTEBOOK (dockbook)->menu;
g_object_ref (G_OBJECT (notebook_menu));
gtk_menu_detach (GTK_MENU (notebook_menu));
GTK_NOTEBOOK (dockbook)->menu = notebook_menu;
@ -494,7 +498,7 @@ gimp_dockbook_tab_button_press (GtkWidget *widget,
*/
g_object_ref (G_OBJECT (dockbook));
gimp_item_factory_popup_with_data (ifactory,
gimp_item_factory_popup_with_data (item_factory,
dockbook,
(GtkDestroyNotify) gimp_dockbook_menu_end);
}

View File

@ -121,13 +121,13 @@ gimp_document_view_init (GimpDocumentView *view)
}
GtkWidget *
gimp_document_view_new (GimpViewType view_type,
GimpContainer *container,
GimpContext *context,
gint preview_size,
gint min_items_x,
gint min_items_y,
const gchar *item_factory)
gimp_document_view_new (GimpViewType view_type,
GimpContainer *container,
GimpContext *context,
gint preview_size,
gint min_items_x,
gint min_items_y,
GimpItemFactory *item_factory)
{
GimpDocumentView *document_view;
GimpContainerEditor *editor;

View File

@ -53,13 +53,13 @@ struct _GimpDocumentViewClass
GType gimp_document_view_get_type (void) G_GNUC_CONST;
GtkWidget * gimp_document_view_new (GimpViewType view_type,
GimpContainer *container,
GimpContext *context,
gint preview_size,
gint min_items_x,
gint min_items_y,
const gchar *item_factory);
GtkWidget * gimp_document_view_new (GimpViewType view_type,
GimpContainer *container,
GimpContext *context,
gint preview_size,
gint min_items_x,
gint min_items_y,
GimpItemFactory *item_factory);
#endif /* __GIMP_DOCUMENT_VIEW_H__ */

View File

@ -257,7 +257,7 @@ gimp_drawable_list_view_destroy (GtkObject *object)
if (view->item_factory)
{
g_free (view->item_factory);
g_object_unref (G_OBJECT (view->item_factory));
view->item_factory = NULL;
}
@ -280,7 +280,7 @@ gimp_drawable_list_view_new (gint preview_size,
GimpConvertDrawableFunc convert_drawable_func,
GimpNewDrawableFunc new_drawable_func,
GimpEditDrawableFunc edit_drawable_func,
const gchar *item_factory)
GimpItemFactory *item_factory)
{
GimpDrawableListView *list_view;
GimpContainerView *view;
@ -298,7 +298,7 @@ gimp_drawable_list_view_new (gint preview_size,
/* convert_drawable_func may be NULL */
g_return_val_if_fail (new_drawable_func != NULL, NULL);
g_return_val_if_fail (edit_drawable_func != NULL, NULL);
g_return_val_if_fail (item_factory != NULL, NULL);
g_return_val_if_fail (GIMP_IS_ITEM_FACTORY (item_factory), NULL);
if (drawable_type == GIMP_TYPE_LAYER)
{
@ -331,7 +331,8 @@ gimp_drawable_list_view_new (gint preview_size,
list_view->new_drawable_func = new_drawable_func;
list_view->edit_drawable_func = edit_drawable_func;
list_view->item_factory = g_strdup (item_factory);
list_view->item_factory = item_factory;
g_object_ref (G_OBJECT (list_view->item_factory));
/* connect "drop to new" manually as it makes a difference whether
* it was clicked or dropped
@ -504,18 +505,18 @@ gimp_drawable_list_view_context_item (GimpContainerView *view,
GimpViewable *item,
gpointer insert_data)
{
GtkItemFactory *factory;
GimpDrawableListView *drawable_view;
if (GIMP_CONTAINER_VIEW_CLASS (parent_class)->context_item)
GIMP_CONTAINER_VIEW_CLASS (parent_class)->context_item (view,
item,
insert_data);
factory = gtk_item_factory_from_path (GIMP_DRAWABLE_LIST_VIEW (view)->item_factory);
drawable_view = GIMP_DRAWABLE_LIST_VIEW (view);
if (factory)
if (drawable_view->item_factory)
{
gimp_item_factory_popup_with_data (factory,
gimp_item_factory_popup_with_data (drawable_view->item_factory,
gimp_drawable_gimage (GIMP_DRAWABLE (item)),
NULL);
}

View File

@ -81,7 +81,7 @@ struct _GimpDrawableListView
GimpNewDrawableFunc new_drawable_func;
GimpEditDrawableFunc edit_drawable_func;
gchar *item_factory;
GimpItemFactory *item_factory;
GtkWidget *new_button;
GtkWidget *raise_button;
@ -116,7 +116,7 @@ GtkWidget * gimp_drawable_list_view_new (gint preview_s
GimpConvertDrawableFunc convert_drawable_func,
GimpNewDrawableFunc new_drawable_func,
GimpEditDrawableFunc edit_drawable_func,
const gchar *item_factory);
GimpItemFactory *item_facotry);
void gimp_drawable_list_view_set_image (GimpDrawableListView *view,
GimpImage *gimage);

View File

@ -257,7 +257,7 @@ gimp_drawable_list_view_destroy (GtkObject *object)
if (view->item_factory)
{
g_free (view->item_factory);
g_object_unref (G_OBJECT (view->item_factory));
view->item_factory = NULL;
}
@ -280,7 +280,7 @@ gimp_drawable_list_view_new (gint preview_size,
GimpConvertDrawableFunc convert_drawable_func,
GimpNewDrawableFunc new_drawable_func,
GimpEditDrawableFunc edit_drawable_func,
const gchar *item_factory)
GimpItemFactory *item_factory)
{
GimpDrawableListView *list_view;
GimpContainerView *view;
@ -298,7 +298,7 @@ gimp_drawable_list_view_new (gint preview_size,
/* convert_drawable_func may be NULL */
g_return_val_if_fail (new_drawable_func != NULL, NULL);
g_return_val_if_fail (edit_drawable_func != NULL, NULL);
g_return_val_if_fail (item_factory != NULL, NULL);
g_return_val_if_fail (GIMP_IS_ITEM_FACTORY (item_factory), NULL);
if (drawable_type == GIMP_TYPE_LAYER)
{
@ -331,7 +331,8 @@ gimp_drawable_list_view_new (gint preview_size,
list_view->new_drawable_func = new_drawable_func;
list_view->edit_drawable_func = edit_drawable_func;
list_view->item_factory = g_strdup (item_factory);
list_view->item_factory = item_factory;
g_object_ref (G_OBJECT (list_view->item_factory));
/* connect "drop to new" manually as it makes a difference whether
* it was clicked or dropped
@ -504,18 +505,18 @@ gimp_drawable_list_view_context_item (GimpContainerView *view,
GimpViewable *item,
gpointer insert_data)
{
GtkItemFactory *factory;
GimpDrawableListView *drawable_view;
if (GIMP_CONTAINER_VIEW_CLASS (parent_class)->context_item)
GIMP_CONTAINER_VIEW_CLASS (parent_class)->context_item (view,
item,
insert_data);
factory = gtk_item_factory_from_path (GIMP_DRAWABLE_LIST_VIEW (view)->item_factory);
drawable_view = GIMP_DRAWABLE_LIST_VIEW (view);
if (factory)
if (drawable_view->item_factory)
{
gimp_item_factory_popup_with_data (factory,
gimp_item_factory_popup_with_data (drawable_view->item_factory,
gimp_drawable_gimage (GIMP_DRAWABLE (item)),
NULL);
}

View File

@ -81,7 +81,7 @@ struct _GimpDrawableListView
GimpNewDrawableFunc new_drawable_func;
GimpEditDrawableFunc edit_drawable_func;
gchar *item_factory;
GimpItemFactory *item_factory;
GtkWidget *new_button;
GtkWidget *raise_button;
@ -116,7 +116,7 @@ GtkWidget * gimp_drawable_list_view_new (gint preview_s
GimpConvertDrawableFunc convert_drawable_func,
GimpNewDrawableFunc new_drawable_func,
GimpEditDrawableFunc edit_drawable_func,
const gchar *item_factory);
GimpItemFactory *item_facotry);
void gimp_drawable_list_view_set_image (GimpDrawableListView *view,
GimpImage *gimage);

View File

@ -811,9 +811,9 @@ preview_events (GtkWidget *widget,
case 3:
{
GtkItemFactory *factory;
GimpItemFactory *factory;
factory = gtk_item_factory_from_path ("<GradientEditor>");
factory = gimp_item_factory_from_path ("<GradientEditor>");
gimp_item_factory_popup_with_data (factory, editor, NULL);
}
@ -1298,9 +1298,9 @@ control_button_press (GradientEditor *editor,
case 3:
{
GtkItemFactory *factory;
GimpItemFactory *factory;
factory = gtk_item_factory_from_path ("<GradientEditor>");
factory = gimp_item_factory_from_path ("<GradientEditor>");
gimp_item_factory_popup_with_data (factory, editor, NULL);
}

View File

@ -39,7 +39,12 @@
/* local function prototypes */
static void gimp_item_factory_create_branches (GtkItemFactory *factory,
static void gimp_item_factory_class_init (GimpItemFactoryClass *klass);
static void gimp_item_factory_init (GimpItemFactory *factory);
static void gimp_item_factory_finalize (GObject *object);
static void gimp_item_factory_create_branches (GimpItemFactory *factory,
GimpItemFactoryEntry *entry);
static void gimp_item_factory_item_realize (GtkWidget *widget,
gpointer data);
@ -54,176 +59,80 @@ static gchar * gimp_item_factory_translate_func (const gchar *path,
#endif
static GtkItemFactoryClass *parent_class = NULL;
GType
gimp_item_factory_get_type (void)
{
static GType factory_type = 0;
if (! factory_type)
{
static const GTypeInfo factory_info =
{
sizeof (GimpItemFactoryClass),
NULL, /* base_init */
NULL, /* base_finalize */
(GClassInitFunc) gimp_item_factory_class_init,
NULL, /* class_finalize */
NULL, /* class_data */
sizeof (GimpItemFactory),
0, /* n_preallocs */
(GInstanceInitFunc) gimp_item_factory_init,
};
factory_type = g_type_register_static (GTK_TYPE_ITEM_FACTORY,
"GimpItemFactory",
&factory_info, 0);
}
return factory_type;
}
static void
gimp_item_factory_class_init (GimpItemFactoryClass *klass)
{
GObjectClass *object_class;
object_class = G_OBJECT_CLASS (klass);
parent_class = g_type_class_peek_parent (klass);
object_class->finalize = gimp_item_factory_finalize;
klass->factories = g_hash_table_new (g_str_hash, g_str_equal);
}
static void
gimp_item_factory_init (GimpItemFactory *factory)
{
factory->factory_path = NULL;
}
static void
gimp_item_factory_finalize (GObject *object)
{
GimpItemFactory *factory;
factory = GIMP_ITEM_FACTORY (object);
if (factory->factory_path)
{
g_hash_table_remove (GIMP_ITEM_FACTORY_GET_CLASS (object)->factories,
factory->factory_path);
g_free (factory->factory_path);
factory->factory_path = NULL;
}
G_OBJECT_CLASS (parent_class)->finalize (object);
}
/* public functions */
void
gimp_menu_item_create (GimpItemFactoryEntry *entry,
gchar *domain_name,
gpointer callback_data)
{
GtkItemFactory *item_factory;
gchar *path;
g_return_if_fail (entry != NULL);
path = entry->entry.path;
if (!path)
return;
item_factory = gtk_item_factory_from_path (path);
if (!item_factory)
{
g_warning ("%s: Could not find item factory for path \"%s\"",
G_STRLOC, path);
return;
}
g_object_set_data (G_OBJECT (item_factory), "textdomain", domain_name);
while (*path != '>')
path++;
path++;
entry->entry.path = path;
gimp_item_factory_create_item (item_factory,
entry,
callback_data, 2,
TRUE, FALSE);
}
void
gimp_menu_item_destroy (gchar *path)
{
GtkItemFactory *factory;
g_return_if_fail (path != NULL);
factory = gtk_item_factory_from_path (path);
if (factory)
{
gtk_item_factory_delete_item (factory, path);
}
else
{
g_warning ("%s: Could not find item factory for path \"%s\"",
G_STRLOC, path);
}
}
void
gimp_menu_item_set_active (gchar *path,
gboolean active)
{
GtkItemFactory *factory;
g_return_if_fail (path != NULL);
factory = gtk_item_factory_from_path (path);
if (factory)
{
gimp_item_factory_set_active (factory, path, active);
}
else if (! strstr (path, "Script-Fu"))
{
g_warning ("%s: Could not find item factory for path \"%s\"",
G_STRLOC, path);
}
}
void
gimp_menu_item_set_color (gchar *path,
const GimpRGB *color,
gboolean set_label)
{
GtkItemFactory *factory;
g_return_if_fail (path != NULL);
g_return_if_fail (color != NULL);
factory = gtk_item_factory_from_path (path);
if (factory)
{
gimp_item_factory_set_color (factory, path, color, set_label);
}
else
{
g_warning ("%s: Could not find item factory for path \"%s\"",
G_STRLOC, path);
}
}
void
gimp_menu_item_set_label (gchar *path,
const gchar *label)
{
GtkItemFactory *factory;
g_return_if_fail (path != NULL);
g_return_if_fail (label != NULL);
factory = gtk_item_factory_from_path (path);
if (factory)
{
gimp_item_factory_set_label (factory, path, label);
}
else
{
g_warning ("%s: Could not find item factory for path \"%s\"",
G_STRLOC, path);
}
}
void
gimp_menu_item_set_sensitive (gchar *path,
gboolean sensitive)
{
GtkItemFactory *factory;
g_return_if_fail (path != NULL);
factory = gtk_item_factory_from_path (path);
if (factory)
{
gimp_item_factory_set_sensitive (factory, path, sensitive);
}
else if (! strstr (path, "Script-Fu"))
{
g_warning ("%s: Could not find item factory for path \"%s\"",
G_STRLOC, path);
}
}
void
gimp_menu_item_set_visible (gchar *path,
gboolean visible)
{
GtkItemFactory *factory;
g_return_if_fail (path != NULL);
factory = gtk_item_factory_from_path (path);
if (factory)
{
gimp_item_factory_set_visible (factory, path, visible);
}
else
{
g_warning ("%s: Could not find item factory for path \"%s\"",
G_STRLOC, path);
}
}
GtkItemFactory *
GimpItemFactory *
gimp_item_factory_new (GType container_type,
const gchar *path,
const gchar *factory_path,
@ -233,21 +142,47 @@ gimp_item_factory_new (GType container_type,
gpointer callback_data,
gboolean create_tearoff)
{
GtkItemFactory *factory;
GimpItemFactoryClass *factory_class;
GimpItemFactory *factory;
factory = gtk_item_factory_new (container_type, path, NULL);
g_return_val_if_fail (path != NULL, NULL);
g_return_val_if_fail (factory_path != NULL, NULL);
gtk_item_factory_set_translate_func (factory,
factory_class = g_type_class_ref (GIMP_TYPE_ITEM_FACTORY);
if (g_hash_table_lookup (factory_class->factories, path))
{
g_warning ("%s: item factory with path \"%s\" already exists",
G_STRLOC, path);
g_type_class_unref (factory_class);
return NULL;
}
factory = g_object_new (GIMP_TYPE_ITEM_FACTORY, NULL);
gtk_item_factory_construct (GTK_ITEM_FACTORY (factory),
container_type,
path,
NULL);
gtk_item_factory_set_translate_func (GTK_ITEM_FACTORY (factory),
gimp_item_factory_translate_func,
(gpointer) path,
NULL);
/* this is correct! <mitch> */
factory->factory_path = g_strdup (path);
factory->update_func = update_func;
g_hash_table_insert (factory_class->factories,
factory->factory_path,
factory);
/* this will go away <mitch> */
g_object_set_data (G_OBJECT (factory), "factory_path",
(gpointer) factory_path);
g_object_set_data (G_OBJECT (factory), "gimp-item-factory-update-func",
update_func);
gimp_item_factory_create_items (factory,
n_entries,
entries,
@ -256,42 +191,41 @@ gimp_item_factory_new (GType container_type,
create_tearoff,
TRUE);
g_type_class_unref (factory_class);
return factory;
}
GimpItemFactory *
gimp_item_factory_from_path (const gchar *path)
{
GimpItemFactoryClass *factory_class;
GimpItemFactory *factory;
gchar *base_path;
gchar *p;
g_return_val_if_fail (path != NULL, NULL);
base_path = g_strdup (path);
p = strchr (base_path, '>');
if (p)
p[1] = '\0';
factory_class = g_type_class_ref (GIMP_TYPE_ITEM_FACTORY);
factory = g_hash_table_lookup (factory_class->factories, base_path);
g_type_class_unref (factory_class);
g_free (base_path);
return factory;
}
void
gimp_item_factory_popup_with_data (GtkItemFactory *item_factory,
gpointer data,
GtkDestroyNotify popdown_func)
{
GimpItemFactoryUpdateFunc update_func;
gint x, y;
guint button;
guint32 activate_time;
g_return_if_fail (GTK_IS_ITEM_FACTORY (item_factory));
update_func = g_object_get_data (G_OBJECT (item_factory),
"gimp-item-factory-update-func");
if (update_func)
(* update_func) (item_factory, data);
gimp_menu_position (GTK_MENU (item_factory->widget),
&x, &y,
&button,
&activate_time);
gtk_item_factory_popup_with_data (item_factory,
data,
popdown_func,
x, y,
button,
activate_time);
}
void
gimp_item_factory_create_item (GtkItemFactory *item_factory,
gimp_item_factory_create_item (GimpItemFactory *item_factory,
GimpItemFactoryEntry *entry,
gpointer callback_data,
guint callback_type,
@ -300,7 +234,7 @@ gimp_item_factory_create_item (GtkItemFactory *item_factory,
{
GtkWidget *menu_item;
g_return_if_fail (GTK_IS_ITEM_FACTORY (item_factory));
g_return_if_fail (GIMP_IS_ITEM_FACTORY (item_factory));
g_return_if_fail (entry != NULL);
if (! (strstr (entry->entry.path, "tearoff1")))
@ -327,12 +261,12 @@ gimp_item_factory_create_item (GtkItemFactory *item_factory,
entry->entry.callback_action = (guint) quark;
}
gtk_item_factory_create_item (item_factory,
gtk_item_factory_create_item (GTK_ITEM_FACTORY (item_factory),
(GtkItemFactoryEntry *) entry,
callback_data,
callback_type);
menu_item = gtk_item_factory_get_item (item_factory,
menu_item = gtk_item_factory_get_item (GTK_ITEM_FACTORY (item_factory),
((GtkItemFactoryEntry *) entry)->path);
if (menu_item)
@ -347,7 +281,7 @@ gimp_item_factory_create_item (GtkItemFactory *item_factory,
}
void
gimp_item_factory_create_items (GtkItemFactory *item_factory,
gimp_item_factory_create_items (GimpItemFactory *item_factory,
guint n_entries,
GimpItemFactoryEntry *entries,
gpointer callback_data,
@ -368,6 +302,33 @@ gimp_item_factory_create_items (GtkItemFactory *item_factory,
}
}
void
gimp_item_factory_popup_with_data (GimpItemFactory *item_factory,
gpointer data,
GtkDestroyNotify popdown_func)
{
gint x, y;
guint button;
guint32 activate_time;
g_return_if_fail (GIMP_IS_ITEM_FACTORY (item_factory));
if (item_factory->update_func)
item_factory->update_func (GTK_ITEM_FACTORY (item_factory), data);
gimp_menu_position (GTK_MENU (GTK_ITEM_FACTORY (item_factory)->widget),
&x, &y,
&button,
&activate_time);
gtk_item_factory_popup_with_data (GTK_ITEM_FACTORY (item_factory),
data,
popdown_func,
x, y,
button,
activate_time);
}
void
gimp_item_factory_set_active (GtkItemFactory *factory,
gchar *path,
@ -388,12 +349,17 @@ gimp_item_factory_set_active (GtkItemFactory *factory,
}
else
{
g_warning ("%s: Unable to set \"active\" for menu item "
"of type \"%s\": %s",
G_STRLOC,
g_type_name (G_TYPE_FROM_INSTANCE (widget)),
path);
}
}
else if (! strstr (path, "Script-Fu"))
{
g_warning ("%s: Unable to set \"active\" for menu item "
"which doesn't exist:\n%s",
"which doesn't exist: %s",
G_STRLOC, path);
}
}
@ -417,7 +383,7 @@ gimp_item_factory_set_color (GtkItemFactory *factory,
if (! widget)
{
g_warning ("%s: Unable to set color of menu item "
"which doesn't exist:\n%s",
"which doesn't exist: %s",
G_STRLOC, path);
return;
}
@ -585,7 +551,7 @@ gimp_item_factory_set_label (GtkItemFactory *factory,
else
{
g_warning ("%s: Unable to set label of menu item "
"which doesn't exist:\n%s",
"which doesn't exist: %s",
G_STRLOC, path);
}
}
@ -609,7 +575,7 @@ gimp_item_factory_set_sensitive (GtkItemFactory *factory,
else if (! strstr (path, "Script-Fu"))
{
g_warning ("%s: Unable to set sensitivity of menu item"
"which doesn't exist:\n%s",
"which doesn't exist: %s",
G_STRLOC, path);
}
}
@ -636,11 +602,181 @@ gimp_item_factory_set_visible (GtkItemFactory *factory,
else
{
g_warning ("%s: Unable to set visibility of menu item"
"which doesn't exist:\n%s",
"which doesn't exist: %s",
G_STRLOC, path);
}
}
void
gimp_menu_item_create (GimpItemFactoryEntry *entry,
gchar *domain_name,
gpointer callback_data)
{
GimpItemFactory *item_factory;
gchar *path;
g_return_if_fail (entry != NULL);
path = entry->entry.path;
if (!path)
return;
item_factory = gimp_item_factory_from_path (path);
if (!item_factory)
{
g_warning ("%s: Could not find item factory for path \"%s\"",
G_STRLOC, path);
return;
}
g_object_set_data (G_OBJECT (item_factory), "textdomain", domain_name);
while (*path != '>')
path++;
path++;
entry->entry.path = path;
gimp_item_factory_create_item (item_factory,
entry,
callback_data, 2,
TRUE, FALSE);
}
void
gimp_menu_item_destroy (gchar *path)
{
GimpItemFactory *factory;
g_return_if_fail (path != NULL);
factory = gimp_item_factory_from_path (path);
if (factory)
{
gtk_item_factory_delete_item (GTK_ITEM_FACTORY (factory), path);
}
else
{
g_warning ("%s: Could not find item factory for path \"%s\"",
G_STRLOC, path);
}
}
void
gimp_menu_item_set_active (gchar *path,
gboolean active)
{
GimpItemFactory *factory;
g_return_if_fail (path != NULL);
factory = gimp_item_factory_from_path (path);
if (factory)
{
gimp_item_factory_set_active (GTK_ITEM_FACTORY (factory), path,
active);
}
else if (! strstr (path, "Script-Fu"))
{
g_warning ("%s: Could not find item factory for path \"%s\"",
G_STRLOC, path);
}
}
void
gimp_menu_item_set_color (gchar *path,
const GimpRGB *color,
gboolean set_label)
{
GimpItemFactory *factory;
g_return_if_fail (path != NULL);
g_return_if_fail (color != NULL);
factory = gimp_item_factory_from_path (path);
if (factory)
{
gimp_item_factory_set_color (GTK_ITEM_FACTORY (factory), path,
color, set_label);
}
else
{
g_warning ("%s: Could not find item factory for path \"%s\"",
G_STRLOC, path);
}
}
void
gimp_menu_item_set_label (gchar *path,
const gchar *label)
{
GimpItemFactory *factory;
g_return_if_fail (path != NULL);
g_return_if_fail (label != NULL);
factory = gimp_item_factory_from_path (path);
if (factory)
{
gimp_item_factory_set_label (GTK_ITEM_FACTORY (factory), path,
label);
}
else
{
g_warning ("%s: Could not find item factory for path \"%s\"",
G_STRLOC, path);
}
}
void
gimp_menu_item_set_sensitive (gchar *path,
gboolean sensitive)
{
GimpItemFactory *factory;
g_return_if_fail (path != NULL);
factory = gimp_item_factory_from_path (path);
if (factory)
{
gimp_item_factory_set_sensitive (GTK_ITEM_FACTORY (factory), path,
sensitive);
}
else if (! strstr (path, "Script-Fu"))
{
g_warning ("%s: Could not find item factory for path \"%s\"",
G_STRLOC, path);
}
}
void
gimp_menu_item_set_visible (gchar *path,
gboolean visible)
{
GimpItemFactory *factory;
g_return_if_fail (path != NULL);
factory = gimp_item_factory_from_path (path);
if (factory)
{
gimp_item_factory_set_visible (GTK_ITEM_FACTORY (factory), path,
visible);
}
else
{
g_warning ("%s: Could not find item factory for path \"%s\"",
G_STRLOC, path);
}
}
void
gimp_item_factory_tearoff_callback (GtkWidget *widget,
@ -697,22 +833,20 @@ gimp_item_factory_tearoff_callback (GtkWidget *widget,
/* private functions */
static void
gimp_item_factory_create_branches (GtkItemFactory *factory,
gimp_item_factory_create_branches (GimpItemFactory *factory,
GimpItemFactoryEntry *entry)
{
GString *tearoff_path;
gint factory_length;
gchar *p;
gchar *path;
if (! entry->entry.path)
return;
tearoff_path = g_string_new ("");
path = entry->entry.path;
p = strchr (path, '/');
factory_length = p - path;
p = strchr (entry->entry.path, '/');
factory_length = p - entry->entry.path;
/* skip the first slash */
if (p)
@ -720,10 +854,11 @@ gimp_item_factory_create_branches (GtkItemFactory *factory,
while (p)
{
g_string_assign (tearoff_path, path + factory_length);
g_string_truncate (tearoff_path, p - path - factory_length);
g_string_assign (tearoff_path, entry->entry.path + factory_length);
g_string_truncate (tearoff_path, p - entry->entry.path - factory_length);
if (!gtk_item_factory_get_widget (factory, tearoff_path->str))
if (! gtk_item_factory_get_widget (GTK_ITEM_FACTORY (factory),
tearoff_path->str))
{
GimpItemFactoryEntry branch_entry =
{
@ -733,7 +868,7 @@ gimp_item_factory_create_branches (GtkItemFactory *factory,
};
branch_entry.entry.path = tearoff_path->str;
g_object_set_data (G_OBJECT (factory), "complete", path);
g_object_set_data (G_OBJECT (factory), "complete", entry->entry.path);
gimp_item_factory_create_item (factory,
&branch_entry,
@ -744,7 +879,8 @@ gimp_item_factory_create_branches (GtkItemFactory *factory,
g_string_append (tearoff_path, "/tearoff1");
if (! gtk_item_factory_get_widget (factory, tearoff_path->str))
if (! gtk_item_factory_get_widget (GTK_ITEM_FACTORY (factory),
tearoff_path->str))
{
GimpItemFactoryEntry tearoff_entry =
{
@ -816,7 +952,7 @@ gimp_item_factory_item_key_press (GtkWidget *widget,
{
if (help_page &&
*help_page &&
item_factory == gtk_item_factory_from_path ("<Toolbox>") &&
item_factory == (GtkItemFactory *) gimp_item_factory_from_path ("<Toolbox>") &&
(strcmp (help_page, "help/dialogs/help.html") == 0 ||
strcmp (help_page, "help/context_help.html") == 0))
{
@ -882,7 +1018,7 @@ gimp_item_factory_translate_func (const gchar *path,
gchar *retval;
gchar *factory;
gchar *translation;
gchar *domain = NULL;
gchar *domain = NULL;
gchar *complete = NULL;
gchar *p, *t;
@ -894,35 +1030,33 @@ gimp_item_factory_translate_func (const gchar *path,
retval = menupath = g_strdup (path);
if ((strstr (path, "/tearoff1") != NULL) ||
(strstr (path, "/---") != NULL) ||
(strstr (path, "/MRU") != NULL))
(strstr (path, "/---") != NULL) ||
(strstr (path, "/MRU") != NULL))
return retval;
if (factory)
item_factory = gtk_item_factory_from_path (factory);
item_factory = (GtkItemFactory *) gimp_item_factory_from_path (factory);
if (item_factory)
{
domain = g_object_get_data (G_OBJECT (item_factory), "textdomain");
complete = g_object_get_data (G_OBJECT (item_factory), "complete");
}
if (domain) /* use the plugin textdomain */
if (domain) /* use the plugin textdomain */
{
g_free (menupath);
menupath = g_strconcat (factory, path, NULL);
if (complete)
{
/*
* This is a branch, use the complete path for translation,
/* This is a branch, use the complete path for translation,
* then strip off entries from the end until it matches.
*/
complete = g_strconcat (factory, complete, NULL);
complete = g_strconcat (factory, complete, NULL);
translation = g_strdup (dgettext (domain, complete));
while (complete && *complete &&
translation && *translation &&
strcmp (complete, menupath))
while (*complete && *translation && strcmp (complete, menupath))
{
p = strrchr (complete, '/');
t = strrchr (translation, '/');
@ -956,21 +1090,22 @@ gimp_item_factory_translate_func (const gchar *path,
}
else
{
g_warning ("bad translation for menupath: %s", menupath);
g_warning ("%s: bad translation for menupath: %s",
G_STRLOC, menupath);
retval = menupath + strlen (factory);
if (complete)
g_free (translation);
}
}
else /* use the gimp textdomain */
else /* use the gimp textdomain */
{
if (complete)
{
/*
* This is a branch, use the complete path for translation,
/* This is a branch, use the complete path for translation,
* then strip off entries from the end until it matches.
*/
complete = g_strdup (complete);
complete = g_strdup (complete);
translation = g_strdup (gettext (complete));
while (*complete && *translation && strcmp (complete, menupath))
@ -985,6 +1120,7 @@ gimp_item_factory_translate_func (const gchar *path,
else
break;
}
g_free (complete);
}
else
@ -1001,7 +1137,9 @@ gimp_item_factory_translate_func (const gchar *path,
}
else
{
g_warning ("bad translation for menupath: %s", menupath);
g_warning ("%s: bad translation for menupath: %s",
G_STRLOC, menupath);
if (complete)
g_free (translation);
}

View File

@ -39,72 +39,102 @@ struct _GimpItemFactoryEntry
};
GtkItemFactory * gimp_item_factory_new (GType container_type,
const gchar *path,
const gchar *factory_path,
GimpItemFactoryUpdateFunc update_func,
guint n_entries,
GimpItemFactoryEntry *entries,
gpointer callback_data,
gboolean create_tearoff);
void gimp_item_factory_popup_with_data (GtkItemFactory *item_factory,
gpointer data,
GtkDestroyNotify popdown_func);
void gimp_item_factory_create_item (GtkItemFactory *item_factory,
GimpItemFactoryEntry *entry,
gpointer callback_data,
guint callback_type,
gboolean create_tearoff,
gboolean static_entry);
void gimp_item_factory_create_items (GtkItemFactory *item_factory,
guint n_entries,
GimpItemFactoryEntry *entries,
gpointer callback_data,
guint callback_type,
gboolean create_tearoff,
gboolean static_entries);
void gimp_item_factory_set_active (GtkItemFactory *factory,
gchar *path,
gboolean state);
void gimp_item_factory_set_color (GtkItemFactory *factory,
gchar *path,
const GimpRGB *color,
gboolean set_label);
void gimp_item_factory_set_label (GtkItemFactory *factory,
gchar *path,
const gchar *label);
void gimp_item_factory_set_sensitive (GtkItemFactory *factory,
gchar *path,
gboolean sensitive);
void gimp_item_factory_set_visible (GtkItemFactory *factory,
gchar *path,
gboolean visible);
#define GIMP_TYPE_ITEM_FACTORY (gimp_item_factory_get_type ())
#define GIMP_ITEM_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GIMP_TYPE_ITEM_FACTORY, GimpItemFactory))
#define GIMP_ITEM_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GIMP_TYPE_ITEM_FACTORY, GimpItemFactoryClass))
#define GIMP_IS_ITEM_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GIMP_TYPE_ITEM_FACTORY))
#define GIMP_IS_ITEM_FACTORY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GIMP_TYPE_ITEM_FACTORY))
#define GIMP_ITEM_FACTORY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GIMP_TYPE_ITEM_FACTORY, GimpItemFactoryClass))
void gimp_item_factory_tearoff_callback (GtkWidget *widget,
gpointer data,
guint action);
typedef struct _GimpItemFactoryClass GimpItemFactoryClass;
struct _GimpItemFactory
{
GtkItemFactory parent_instance;
gchar *factory_path;
GimpItemFactoryUpdateFunc update_func;
};
struct _GimpItemFactoryClass
{
GtkItemFactoryClass parent_class;
GHashTable *factories;
};
void gimp_menu_item_create (GimpItemFactoryEntry *entry,
gchar *domain_name,
gpointer callback_data);
void gimp_menu_item_destroy (gchar *path);
GType gimp_item_factory_get_type (void) G_GNUC_CONST;
void gimp_menu_item_set_active (gchar *path,
gboolean state);
void gimp_menu_item_set_color (gchar *path,
const GimpRGB *color,
gboolean set_label);
void gimp_menu_item_set_label (gchar *path,
const gchar *label);
void gimp_menu_item_set_sensitive (gchar *path,
gboolean sensitive);
void gimp_menu_item_set_visible (gchar *path,
gboolean visible);
GimpItemFactory * gimp_item_factory_new (GType container_type,
const gchar *path,
const gchar *factory_path,
GimpItemFactoryUpdateFunc update_func,
guint n_entries,
GimpItemFactoryEntry *entries,
gpointer callback_data,
gboolean create_tearoff);
GimpItemFactory * gimp_item_factory_from_path (const gchar *path);
void gimp_item_factory_create_item (GimpItemFactory *factory,
GimpItemFactoryEntry *entry,
gpointer callback_data,
guint callback_type,
gboolean create_tearoff,
gboolean static_entry);
void gimp_item_factory_create_items (GimpItemFactory *factory,
guint n_entries,
GimpItemFactoryEntry *entries,
gpointer callback_data,
guint callback_type,
gboolean create_tearoff,
gboolean static_entries);
void gimp_item_factory_popup_with_data (GimpItemFactory *factory,
gpointer data,
GtkDestroyNotify popdown_func);
void gimp_item_factory_set_active (GtkItemFactory *factory,
gchar *path,
gboolean state);
void gimp_item_factory_set_color (GtkItemFactory *factory,
gchar *path,
const GimpRGB *color,
gboolean set_label);
void gimp_item_factory_set_label (GtkItemFactory *factory,
gchar *path,
const gchar *label);
void gimp_item_factory_set_sensitive (GtkItemFactory *factory,
gchar *path,
gboolean sensitive);
void gimp_item_factory_set_visible (GtkItemFactory *factory,
gchar *path,
gboolean visible);
void gimp_item_factory_tearoff_callback (GtkWidget *widget,
gpointer data,
guint action);
void gimp_menu_item_create (GimpItemFactoryEntry *entry,
gchar *domain_name,
gpointer callback_data);
void gimp_menu_item_destroy (gchar *path);
void gimp_menu_item_set_active (gchar *path,
gboolean state);
void gimp_menu_item_set_color (gchar *path,
const GimpRGB *color,
gboolean set_label);
void gimp_menu_item_set_label (gchar *path,
const gchar *label);
void gimp_menu_item_set_sensitive (gchar *path,
gboolean sensitive);
void gimp_menu_item_set_visible (gchar *path,
gboolean visible);
G_END_DECLS

View File

@ -257,7 +257,7 @@ gimp_drawable_list_view_destroy (GtkObject *object)
if (view->item_factory)
{
g_free (view->item_factory);
g_object_unref (G_OBJECT (view->item_factory));
view->item_factory = NULL;
}
@ -280,7 +280,7 @@ gimp_drawable_list_view_new (gint preview_size,
GimpConvertDrawableFunc convert_drawable_func,
GimpNewDrawableFunc new_drawable_func,
GimpEditDrawableFunc edit_drawable_func,
const gchar *item_factory)
GimpItemFactory *item_factory)
{
GimpDrawableListView *list_view;
GimpContainerView *view;
@ -298,7 +298,7 @@ gimp_drawable_list_view_new (gint preview_size,
/* convert_drawable_func may be NULL */
g_return_val_if_fail (new_drawable_func != NULL, NULL);
g_return_val_if_fail (edit_drawable_func != NULL, NULL);
g_return_val_if_fail (item_factory != NULL, NULL);
g_return_val_if_fail (GIMP_IS_ITEM_FACTORY (item_factory), NULL);
if (drawable_type == GIMP_TYPE_LAYER)
{
@ -331,7 +331,8 @@ gimp_drawable_list_view_new (gint preview_size,
list_view->new_drawable_func = new_drawable_func;
list_view->edit_drawable_func = edit_drawable_func;
list_view->item_factory = g_strdup (item_factory);
list_view->item_factory = item_factory;
g_object_ref (G_OBJECT (list_view->item_factory));
/* connect "drop to new" manually as it makes a difference whether
* it was clicked or dropped
@ -504,18 +505,18 @@ gimp_drawable_list_view_context_item (GimpContainerView *view,
GimpViewable *item,
gpointer insert_data)
{
GtkItemFactory *factory;
GimpDrawableListView *drawable_view;
if (GIMP_CONTAINER_VIEW_CLASS (parent_class)->context_item)
GIMP_CONTAINER_VIEW_CLASS (parent_class)->context_item (view,
item,
insert_data);
factory = gtk_item_factory_from_path (GIMP_DRAWABLE_LIST_VIEW (view)->item_factory);
drawable_view = GIMP_DRAWABLE_LIST_VIEW (view);
if (factory)
if (drawable_view->item_factory)
{
gimp_item_factory_popup_with_data (factory,
gimp_item_factory_popup_with_data (drawable_view->item_factory,
gimp_drawable_gimage (GIMP_DRAWABLE (item)),
NULL);
}

View File

@ -81,7 +81,7 @@ struct _GimpDrawableListView
GimpNewDrawableFunc new_drawable_func;
GimpEditDrawableFunc edit_drawable_func;
gchar *item_factory;
GimpItemFactory *item_factory;
GtkWidget *new_button;
GtkWidget *raise_button;
@ -116,7 +116,7 @@ GtkWidget * gimp_drawable_list_view_new (gint preview_s
GimpConvertDrawableFunc convert_drawable_func,
GimpNewDrawableFunc new_drawable_func,
GimpEditDrawableFunc edit_drawable_func,
const gchar *item_factory);
GimpItemFactory *item_facotry);
void gimp_drawable_list_view_set_image (GimpDrawableListView *view,
GimpImage *gimage);

View File

@ -257,7 +257,7 @@ gimp_drawable_list_view_destroy (GtkObject *object)
if (view->item_factory)
{
g_free (view->item_factory);
g_object_unref (G_OBJECT (view->item_factory));
view->item_factory = NULL;
}
@ -280,7 +280,7 @@ gimp_drawable_list_view_new (gint preview_size,
GimpConvertDrawableFunc convert_drawable_func,
GimpNewDrawableFunc new_drawable_func,
GimpEditDrawableFunc edit_drawable_func,
const gchar *item_factory)
GimpItemFactory *item_factory)
{
GimpDrawableListView *list_view;
GimpContainerView *view;
@ -298,7 +298,7 @@ gimp_drawable_list_view_new (gint preview_size,
/* convert_drawable_func may be NULL */
g_return_val_if_fail (new_drawable_func != NULL, NULL);
g_return_val_if_fail (edit_drawable_func != NULL, NULL);
g_return_val_if_fail (item_factory != NULL, NULL);
g_return_val_if_fail (GIMP_IS_ITEM_FACTORY (item_factory), NULL);
if (drawable_type == GIMP_TYPE_LAYER)
{
@ -331,7 +331,8 @@ gimp_drawable_list_view_new (gint preview_size,
list_view->new_drawable_func = new_drawable_func;
list_view->edit_drawable_func = edit_drawable_func;
list_view->item_factory = g_strdup (item_factory);
list_view->item_factory = item_factory;
g_object_ref (G_OBJECT (list_view->item_factory));
/* connect "drop to new" manually as it makes a difference whether
* it was clicked or dropped
@ -504,18 +505,18 @@ gimp_drawable_list_view_context_item (GimpContainerView *view,
GimpViewable *item,
gpointer insert_data)
{
GtkItemFactory *factory;
GimpDrawableListView *drawable_view;
if (GIMP_CONTAINER_VIEW_CLASS (parent_class)->context_item)
GIMP_CONTAINER_VIEW_CLASS (parent_class)->context_item (view,
item,
insert_data);
factory = gtk_item_factory_from_path (GIMP_DRAWABLE_LIST_VIEW (view)->item_factory);
drawable_view = GIMP_DRAWABLE_LIST_VIEW (view);
if (factory)
if (drawable_view->item_factory)
{
gimp_item_factory_popup_with_data (factory,
gimp_item_factory_popup_with_data (drawable_view->item_factory,
gimp_drawable_gimage (GIMP_DRAWABLE (item)),
NULL);
}

View File

@ -81,7 +81,7 @@ struct _GimpDrawableListView
GimpNewDrawableFunc new_drawable_func;
GimpEditDrawableFunc edit_drawable_func;
gchar *item_factory;
GimpItemFactory *item_factory;
GtkWidget *new_button;
GtkWidget *raise_button;
@ -116,7 +116,7 @@ GtkWidget * gimp_drawable_list_view_new (gint preview_s
GimpConvertDrawableFunc convert_drawable_func,
GimpNewDrawableFunc new_drawable_func,
GimpEditDrawableFunc edit_drawable_func,
const gchar *item_factory);
GimpItemFactory *item_facotry);
void gimp_drawable_list_view_set_image (GimpDrawableListView *view,
GimpImage *gimage);

View File

@ -769,7 +769,7 @@ gimp_preview_popup_timeout (GimpPreview *preview)
preview->popup_y = 0;
window = gtk_window_new (GTK_WINDOW_POPUP);
gtk_window_set_policy (GTK_WINDOW (window), FALSE, FALSE, TRUE);
gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);

View File

@ -769,7 +769,7 @@ gimp_preview_popup_timeout (GimpPreview *preview)
preview->popup_y = 0;
window = gtk_window_new (GTK_WINDOW_POPUP);
gtk_window_set_policy (GTK_WINDOW (window), FALSE, FALSE, TRUE);
gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);

View File

@ -117,12 +117,12 @@ static GtkTargetEntry toolbox_target_table[] =
GtkWidget *
toolbox_create (Gimp *gimp)
{
GimpContext *context;
GtkItemFactory *toolbox_factory;
GtkWidget *window;
GtkWidget *main_vbox;
GtkWidget *wbox;
GList *list;
GimpContext *context;
GimpItemFactory *toolbox_factory;
GtkWidget *window;
GtkWidget *main_vbox;
GtkWidget *wbox;
GList *list;
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
@ -131,7 +131,7 @@ toolbox_create (Gimp *gimp)
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_wmclass (GTK_WINDOW (window), "toolbox", "Gimp");
gtk_window_set_title (GTK_WINDOW (window), _("The GIMP"));
gtk_window_set_policy (GTK_WINDOW (window), TRUE, TRUE, FALSE);
gtk_window_set_resizable (GTK_WINDOW (window), TRUE);
g_signal_connect (G_OBJECT (window), "delete_event",
G_CALLBACK (toolbox_delete),
@ -169,12 +169,14 @@ toolbox_create (Gimp *gimp)
gtk_container_add (GTK_CONTAINER (window), main_vbox);
gtk_widget_show (main_vbox);
toolbox_factory = gtk_item_factory_from_path ("<Toolbox>");
gtk_box_pack_start (GTK_BOX (main_vbox), toolbox_factory->widget,
toolbox_factory = gimp_item_factory_from_path ("<Toolbox>");
gtk_box_pack_start (GTK_BOX (main_vbox),
GTK_ITEM_FACTORY (toolbox_factory)->widget,
FALSE, FALSE, 0);
gtk_widget_show (toolbox_factory->widget);
gtk_widget_show (GTK_ITEM_FACTORY (toolbox_factory)->widget);
gtk_window_add_accel_group (GTK_WINDOW (window), toolbox_factory->accel_group);
gtk_window_add_accel_group (GTK_WINDOW (window),
GTK_ITEM_FACTORY (toolbox_factory)->accel_group);
/* Connect the "F1" help key */
gimp_help_connect (window,

View File

@ -769,7 +769,7 @@ gimp_preview_popup_timeout (GimpPreview *preview)
preview->popup_y = 0;
window = gtk_window_new (GTK_WINDOW_POPUP);
gtk_window_set_policy (GTK_WINDOW (window), FALSE, FALSE, TRUE);
gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);

View File

@ -769,7 +769,7 @@ gimp_preview_popup_timeout (GimpPreview *preview)
preview->popup_y = 0;
window = gtk_window_new (GTK_WINDOW_POPUP);
gtk_window_set_policy (GTK_WINDOW (window), FALSE, FALSE, TRUE);
gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
frame = gtk_frame_new (NULL);
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT);

View File

@ -130,6 +130,7 @@ typedef enum
typedef struct _GimpDeviceInfo GimpDeviceInfo;
typedef struct _GimpDialogFactory GimpDialogFactory;
typedef struct _GimpItemFactory GimpItemFactory;
/* widgets */

View File

@ -730,7 +730,7 @@ fi
AM_CONDITIONAL(STATICLIBS, test x$enable_static = xyes)
CPPFLAGS="${CPPFLAGS} -DG_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED"
CPPFLAGS="${CPPFLAGS} -DG_DISABLE_DEPRECATED -DGDK_PIXBUF_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED"
AC_SUBST(GIMP_MAJOR_VERSION)
AC_SUBST(GIMP_MINOR_VERSION)

View File

@ -232,6 +232,11 @@ gimp_dialog_newv (const gchar *title,
gtk_window_set_title (GTK_WINDOW (dialog), title);
gtk_window_set_wmclass (GTK_WINDOW (dialog), wmclass_name, "Gimp");
gtk_window_set_position (GTK_WINDOW (dialog), position);
#ifdef __GNUC__
#warning FIXME: need a new API for gimp_dialog_new()
#endif
gtk_window_set_policy (GTK_WINDOW (dialog),
allow_shrink, allow_grow, auto_shrink);

View File

@ -151,7 +151,8 @@ GtkWidget* charmap_window_new(const gchar *title)
cmw = gtk_type_new(charmap_window_get_type());
gtk_window_set_title(GTK_WINDOW(cmw), title);
gtk_container_set_border_width(GTK_CONTAINER(cmw), 4);
gtk_window_set_policy(GTK_WINDOW(cmw), TRUE, TRUE, FALSE);
gtk_window_set_resizable(GTK_WINDOW(cmw), TRUE);
gtk_widget_set_size_request(cmw, 0, 0);
return GTK_WIDGET(cmw);
}

View File

@ -179,7 +179,7 @@ create_about_dialog (void)
window = gtk_window_new(GTK_WINDOW_DIALOG);
gtk_container_set_border_width(GTK_CONTAINER(window), 0);
gtk_window_set_title(GTK_WINDOW(window), _("GDynText: About ..."));
gtk_window_set_policy(GTK_WINDOW(window), FALSE, FALSE, FALSE);
gtk_window_set_resizable(GTK_WINDOW(window), FALSE);
gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
gimp_dialog_set_icon (GTK_WINDOW (window));
gtk_signal_connect(GTK_OBJECT(window), "destroy",
@ -291,7 +291,7 @@ create_main_window (GdtMainWindow **main_window,
title = g_strconcat (_("GDynText"), " ", GDYNTEXT_VERSION, NULL);
gtk_window_set_title(GTK_WINDOW(mw->window), title);
g_free (title);
gtk_window_set_policy(GTK_WINDOW(mw->window), TRUE, TRUE, FALSE);
gtk_window_set_resizable(GTK_WINDOW(mw->window), TRUE);
gtk_widget_set_usize(mw->window, 550, 400);
gtk_container_set_border_width(GTK_CONTAINER(mw->window), 0);
gtk_signal_connect(GTK_OBJECT(mw->window), "destroy",

View File

@ -135,7 +135,8 @@ message_window_new (const gchar *title)
gtk_window_set_title (GTK_WINDOW(mw), title);
gimp_dialog_set_icon (GTK_WINDOW (mw));
gtk_container_set_border_width (GTK_CONTAINER(mw), 4);
gtk_window_set_policy (GTK_WINDOW(mw), TRUE, TRUE, FALSE);
gtk_window_set_resizable (GTK_WINDOW(mw), TRUE);
gtk_widget_set_size_request (mw, 0, 0);
return GTK_WIDGET(mw);
}

View File

@ -1336,7 +1336,8 @@ dialog(GimpDrawable *drawable)
_shapes = make_object_list();
_dlg = dlg = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_policy(GTK_WINDOW(dlg), TRUE, TRUE, FALSE);
gtk_window_set_resizable(GTK_WINDOW(dlg), TRUE);
gtk_widget_set_size_request(dlg, 0, 0);
gtk_widget_realize(dlg);
main_set_title(NULL);