mirror of https://github.com/GNOME/gimp.git
added new function gimp_dialog_factory_add_foreign() which adds a dialog
2003-05-02 Michael Natterer <mitch@gimp.org> * app/widgets/gimpdialogfactory.[ch]: added new function gimp_dialog_factory_add_foreign() which adds a dialog that was not created by the factory itself. Its identifier however must be registered with the factory. Connect to all toplevel dialogs' "configure_event" and remember the resulting window geometry so we get session management for *all* dialogs, not only for those which were open on exit. * app/gui/dialogs.c: added the "File New" dialog. Added foreign entries (without constructor) for all dialogs opened by tools. * app/gui/dialogs-constructors.[ch]: added a constructor for the file_new dialog. * app/gui/file-new-dialog.[ch]: renamed file_new_dialog_create() to file_new_dialog_new() and removed the gimage and template paramaters. Adder new function file_new_dialog_set() to set gimage and template after creation. * app/gui/file-commands.c * app/gui/templates-commands.c: changed accordingly. * app/tools/gimpimagemaptool.[ch] * app/tools/gimptransformtool.[ch]: added "const gchar *shell_identifier" to the tool structs. Register the tool dialogs using gimp_dialog_factory_add_foreign(). * app/tools/gimpbrightnesscontrasttool.c * app/tools/gimpcolorbalancetool.c * app/tools/gimpcurvestool.c * app/tools/gimphuesaturationtool.c * app/tools/gimplevelstool.c * app/tools/gimpperspectivetool.c * app/tools/gimpposterizetool.c * app/tools/gimprotatetool.c * app/tools/gimpscaletool.c * app/tools/gimpsheartool.c * app/tools/gimpthresholdtool.c: set "shell_identifier" so the dialogs become session managed. Fixes bug #61091. * app/tools/gimpcroptool.c: register the crop dialog with the dialog factory. Fixes bug #52849. * app/tools/gimpcolorpickertool.c: ditto. Unrelated: * app/tools/gimptool.c: no need to cast the return value of g_object_new().
This commit is contained in:
parent
a115c7b5ab
commit
fefaf61b28
52
ChangeLog
52
ChangeLog
|
@ -1,3 +1,55 @@
|
|||
2003-05-02 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* app/widgets/gimpdialogfactory.[ch]: added new function
|
||||
gimp_dialog_factory_add_foreign() which adds a dialog that was not
|
||||
created by the factory itself. Its identifier however must be
|
||||
registered with the factory. Connect to all toplevel dialogs'
|
||||
"configure_event" and remember the resulting window geometry so we
|
||||
get session management for *all* dialogs, not only for those which
|
||||
were open on exit.
|
||||
|
||||
* app/gui/dialogs.c: added the "File New" dialog. Added foreign
|
||||
entries (without constructor) for all dialogs opened by tools.
|
||||
|
||||
* app/gui/dialogs-constructors.[ch]: added a constructor for
|
||||
the file_new dialog.
|
||||
|
||||
* app/gui/file-new-dialog.[ch]: renamed file_new_dialog_create()
|
||||
to file_new_dialog_new() and removed the gimage and template
|
||||
paramaters. Adder new function file_new_dialog_set() to set
|
||||
gimage and template after creation.
|
||||
|
||||
* app/gui/file-commands.c
|
||||
* app/gui/templates-commands.c: changed accordingly.
|
||||
|
||||
* app/tools/gimpimagemaptool.[ch]
|
||||
* app/tools/gimptransformtool.[ch]: added
|
||||
"const gchar *shell_identifier" to the tool structs. Register the
|
||||
tool dialogs using gimp_dialog_factory_add_foreign().
|
||||
|
||||
* app/tools/gimpbrightnesscontrasttool.c
|
||||
* app/tools/gimpcolorbalancetool.c
|
||||
* app/tools/gimpcurvestool.c
|
||||
* app/tools/gimphuesaturationtool.c
|
||||
* app/tools/gimplevelstool.c
|
||||
* app/tools/gimpperspectivetool.c
|
||||
* app/tools/gimpposterizetool.c
|
||||
* app/tools/gimprotatetool.c
|
||||
* app/tools/gimpscaletool.c
|
||||
* app/tools/gimpsheartool.c
|
||||
* app/tools/gimpthresholdtool.c: set "shell_identifier" so the
|
||||
dialogs become session managed. Fixes bug #61091.
|
||||
|
||||
* app/tools/gimpcroptool.c: register the crop dialog with the
|
||||
dialog factory. Fixes bug #52849.
|
||||
|
||||
* app/tools/gimpcolorpickertool.c: ditto.
|
||||
|
||||
Unrelated:
|
||||
|
||||
* app/tools/gimptool.c: no need to cast the return value of
|
||||
g_object_new().
|
||||
|
||||
2003-05-02 Pedro Gimeno <pggimeno@wanadoo.es>
|
||||
|
||||
* app/paint/gimppaintcore-stroke.c (gimp_paint_core_stroke,
|
||||
|
|
|
@ -40,10 +40,13 @@
|
|||
#include "file/file-save.h"
|
||||
#include "file/file-utils.h"
|
||||
|
||||
#include "widgets/gimpdialogfactory.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
#include "display/gimpdisplay-foreach.h"
|
||||
#include "display/gimpdisplayshell.h"
|
||||
|
||||
#include "dialogs.h"
|
||||
#include "file-commands.h"
|
||||
#include "file-new-dialog.h"
|
||||
#include "file-open-dialog.h"
|
||||
|
@ -97,6 +100,7 @@ file_new_cmd_callback (GtkWidget *widget,
|
|||
{
|
||||
Gimp *gimp;
|
||||
GimpImage *gimage;
|
||||
GtkWidget *dialog;
|
||||
return_if_no_gimp (gimp, data);
|
||||
|
||||
/* if called from the image menu */
|
||||
|
@ -105,7 +109,11 @@ file_new_cmd_callback (GtkWidget *widget,
|
|||
else
|
||||
gimage = NULL;
|
||||
|
||||
file_new_dialog_create (gimp, gimage, NULL);
|
||||
dialog = gimp_dialog_factory_dialog_new (global_dialog_factory,
|
||||
"gimp-file-new-dialog", -1);
|
||||
|
||||
if (dialog)
|
||||
file_new_dialog_set (dialog, gimage, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -31,10 +31,12 @@
|
|||
#include "core/gimplist.h"
|
||||
#include "core/gimptemplate.h"
|
||||
|
||||
#include "widgets/gimpdialogfactory.h"
|
||||
#include "widgets/gimptemplateeditor.h"
|
||||
#include "widgets/gimptemplateview.h"
|
||||
#include "widgets/gimpviewabledialog.h"
|
||||
|
||||
#include "dialogs.h"
|
||||
#include "file-new-dialog.h"
|
||||
#include "templates-commands.h"
|
||||
|
||||
|
@ -235,5 +237,11 @@ void
|
|||
templates_file_new_dialog (Gimp *gimp,
|
||||
GimpTemplate *template)
|
||||
{
|
||||
file_new_dialog_create (gimp, NULL, template);
|
||||
GtkWidget *dialog;
|
||||
|
||||
dialog = gimp_dialog_factory_dialog_new (global_dialog_factory,
|
||||
"gimp-file-new-dialog", -1);
|
||||
|
||||
if (dialog)
|
||||
file_new_dialog_set (dialog, NULL, template);
|
||||
}
|
||||
|
|
|
@ -80,6 +80,7 @@
|
|||
#include "dialogs-constructors.h"
|
||||
#include "error-console-dialog.h"
|
||||
#include "file-commands.h"
|
||||
#include "file-new-dialog.h"
|
||||
#include "layers-commands.h"
|
||||
#include "module-browser.h"
|
||||
#include "paths-dialog.h"
|
||||
|
@ -155,6 +156,14 @@ static void dialogs_navigation_display_changed (GimpContext *context
|
|||
/* toplevel dialogs */
|
||||
/**********************/
|
||||
|
||||
GtkWidget *
|
||||
dialogs_file_new_new (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
gint preview_size)
|
||||
{
|
||||
return file_new_dialog_new (context->gimp);
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
dialogs_device_status_get (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
|
|
|
@ -22,6 +22,9 @@
|
|||
|
||||
/* toplevel dialogs */
|
||||
|
||||
GtkWidget * dialogs_file_new_new (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
gint preview_size);
|
||||
GtkWidget * dialogs_device_status_get (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
gint preview_size);
|
||||
|
|
|
@ -40,27 +40,62 @@ GimpDialogFactory *global_toolbox_factory = NULL;
|
|||
|
||||
static const GimpDialogFactoryEntry toplevel_entries[] =
|
||||
{
|
||||
/* foreign toplevels without constructor */
|
||||
{ "gimp-brightness-contrast-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-color-picker-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-crop-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-curves-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-color-balance-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-hue-saturation-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-levels-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-posterize-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-rotate-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-scale-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-shear-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-threshold-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-perspective-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
|
||||
/* ordinary toplevels */
|
||||
{ "gimp-file-new-dialog", dialogs_file_new_new,
|
||||
0, FALSE, TRUE, FALSE, FALSE },
|
||||
|
||||
/* singleton toplevels */
|
||||
{ "gimp-device-status-dialog", dialogs_device_status_get,
|
||||
0, TRUE, TRUE, FALSE, TRUE },
|
||||
{ "gimp-preferences-dialog", dialogs_preferences_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-module-browser-dialog", dialogs_module_browser_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-display-filters-dialog", dialogs_display_filters_get,
|
||||
0, FALSE, FALSE, FALSE, TRUE },
|
||||
0, FALSE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-tips-dialog", dialogs_tips_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
0, TRUE, FALSE, FALSE, FALSE },
|
||||
{ "gimp-about-dialog", dialogs_about_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE }
|
||||
0, TRUE, FALSE, FALSE, FALSE }
|
||||
};
|
||||
|
||||
static const GimpDialogFactoryEntry dock_entries[] =
|
||||
{
|
||||
/* singleton dockables */
|
||||
{ "gimp-tool-options", dialogs_tool_options_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-error-console", dialogs_error_console_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
|
||||
/* list views */
|
||||
{ "gimp-image-list", dialogs_image_list_view_new,
|
||||
GIMP_PREVIEW_SIZE_MEDIUM, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-brush-list", dialogs_brush_list_view_new,
|
||||
|
@ -77,7 +112,12 @@ static const GimpDialogFactoryEntry dock_entries[] =
|
|||
GIMP_PREVIEW_SIZE_SMALL, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-buffer-list", dialogs_buffer_list_view_new,
|
||||
GIMP_PREVIEW_SIZE_MEDIUM, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-document-list", dialogs_document_list_new,
|
||||
GIMP_PREVIEW_SIZE_LARGE, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-template-list", dialogs_template_list_new,
|
||||
GIMP_PREVIEW_SIZE_SMALL, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
/* grid views */
|
||||
{ "gimp-image-grid", dialogs_image_grid_view_new,
|
||||
GIMP_PREVIEW_SIZE_MEDIUM, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-brush-grid", dialogs_brush_grid_view_new,
|
||||
|
@ -94,7 +134,10 @@ static const GimpDialogFactoryEntry dock_entries[] =
|
|||
GIMP_PREVIEW_SIZE_SMALL, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-buffer-grid", dialogs_buffer_grid_view_new,
|
||||
GIMP_PREVIEW_SIZE_MEDIUM, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-document-grid", dialogs_document_grid_new,
|
||||
GIMP_PREVIEW_SIZE_LARGE, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
/* image related */
|
||||
{ "gimp-layer-list", dialogs_layer_list_view_new,
|
||||
0, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-channel-list", dialogs_channel_list_view_new,
|
||||
|
@ -110,26 +153,21 @@ static const GimpDialogFactoryEntry dock_entries[] =
|
|||
{ "gimp-undo-history", dialogs_undo_history_new,
|
||||
0, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
/* display related */
|
||||
{ "gimp-navigation-view", dialogs_navigation_view_new,
|
||||
0, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
/* editors */
|
||||
{ "gimp-color-editor", dialogs_color_editor_new,
|
||||
0, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
{ "gimp-document-list", dialogs_document_list_new,
|
||||
GIMP_PREVIEW_SIZE_LARGE, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-document-grid", dialogs_document_grid_new,
|
||||
GIMP_PREVIEW_SIZE_LARGE, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
{ "gimp-template-list", dialogs_template_list_new,
|
||||
GIMP_PREVIEW_SIZE_SMALL, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
/* singleton editors */
|
||||
{ "gimp-brush-editor", dialogs_brush_editor_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-gradient-editor", dialogs_gradient_editor_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-palette-editor", dialogs_palette_editor_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
|
||||
{ "gimp-navigation-view", dialogs_navigation_view_new,
|
||||
0, FALSE, FALSE, FALSE, TRUE }
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -76,19 +76,15 @@ static void file_new_create_image (FileNewDialog *dialog);
|
|||
|
||||
/* public functions */
|
||||
|
||||
void
|
||||
file_new_dialog_create (Gimp *gimp,
|
||||
GimpImage *gimage,
|
||||
GimpTemplate *template)
|
||||
GtkWidget *
|
||||
file_new_dialog_new (Gimp *gimp)
|
||||
{
|
||||
FileNewDialog *dialog;
|
||||
GtkWidget *main_vbox;
|
||||
GtkWidget *table;
|
||||
GtkWidget *optionmenu;
|
||||
|
||||
g_return_if_fail (GIMP_IS_GIMP (gimp));
|
||||
g_return_if_fail (gimage == NULL || GIMP_IS_IMAGE (gimage));
|
||||
g_return_if_fail (template == NULL || GIMP_IS_TEMPLATE (template));
|
||||
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
|
||||
|
||||
dialog = g_new0 (FileNewDialog, 1);
|
||||
|
||||
|
@ -114,6 +110,10 @@ file_new_dialog_create (Gimp *gimp,
|
|||
|
||||
NULL);
|
||||
|
||||
g_object_set_data_full (G_OBJECT (dialog->dialog),
|
||||
"gimp-file-new-dialog", dialog,
|
||||
(GDestroyNotify) g_free);
|
||||
|
||||
gtk_window_set_resizable (GTK_WINDOW (dialog->dialog), FALSE);
|
||||
|
||||
/* vbox holding the rest of the dialog */
|
||||
|
@ -154,6 +154,26 @@ file_new_dialog_create (Gimp *gimp,
|
|||
G_CALLBACK (file_new_template_notify),
|
||||
dialog);
|
||||
|
||||
gimp_size_entry_grab_focus (GIMP_SIZE_ENTRY (GIMP_TEMPLATE_EDITOR (dialog->editor)->size_se));
|
||||
|
||||
return dialog->dialog;
|
||||
}
|
||||
|
||||
void
|
||||
file_new_dialog_set (GtkWidget *widget,
|
||||
GimpImage *gimage,
|
||||
GimpTemplate *template)
|
||||
{
|
||||
FileNewDialog *dialog;
|
||||
|
||||
g_return_if_fail (GTK_IS_WIDGET (widget));
|
||||
g_return_if_fail (gimage == NULL || GIMP_IS_IMAGE (gimage));
|
||||
g_return_if_fail (template == NULL || GIMP_IS_TEMPLATE (template));
|
||||
|
||||
dialog = g_object_get_data (G_OBJECT (widget), "gimp-file-new-dialog");
|
||||
|
||||
g_return_if_fail (dialog != NULL);
|
||||
|
||||
if (template)
|
||||
{
|
||||
gimp_container_menu_select_item (GIMP_CONTAINER_MENU (dialog->template_menu),
|
||||
|
@ -161,15 +181,11 @@ file_new_dialog_create (Gimp *gimp,
|
|||
}
|
||||
else
|
||||
{
|
||||
template = gimp_image_new_get_last_template (gimp, gimage);
|
||||
template = gimp_image_new_get_last_template (dialog->gimp, gimage);
|
||||
gimp_template_editor_set_template (GIMP_TEMPLATE_EDITOR (dialog->editor),
|
||||
template);
|
||||
g_object_unref (template);
|
||||
}
|
||||
|
||||
gimp_size_entry_grab_focus (GIMP_SIZE_ENTRY (GIMP_TEMPLATE_EDITOR (dialog->editor)->size_se));
|
||||
|
||||
gtk_widget_show (dialog->dialog);
|
||||
}
|
||||
|
||||
|
||||
|
@ -191,7 +207,6 @@ file_new_cancel_callback (GtkWidget *widget,
|
|||
FileNewDialog *dialog)
|
||||
{
|
||||
gtk_widget_destroy (dialog->dialog);
|
||||
g_free (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -299,15 +314,16 @@ static void
|
|||
file_new_create_image (FileNewDialog *dialog)
|
||||
{
|
||||
GimpTemplate *template;
|
||||
Gimp *gimp;
|
||||
|
||||
template =
|
||||
gimp_template_editor_get_template (GIMP_TEMPLATE_EDITOR (dialog->editor));
|
||||
|
||||
gimp = dialog->gimp;
|
||||
|
||||
gtk_widget_destroy (dialog->dialog);
|
||||
|
||||
gimp_template_create_image (dialog->gimp, template);
|
||||
gimp_image_new_set_last_template (dialog->gimp, template);
|
||||
gimp_template_create_image (gimp, template);
|
||||
gimp_image_new_set_last_template (gimp, template);
|
||||
g_object_unref (template);
|
||||
|
||||
g_free (dialog);
|
||||
}
|
||||
|
|
|
@ -20,9 +20,11 @@
|
|||
#define __FILE_NEW_DIALOG_H__
|
||||
|
||||
|
||||
void file_new_dialog_create (Gimp *gimp,
|
||||
GimpImage *gimage,
|
||||
GimpTemplate *template);
|
||||
GtkWidget * file_new_dialog_new (Gimp *gimp);
|
||||
|
||||
void file_new_dialog_set (GtkWidget *widget,
|
||||
GimpImage *gimage,
|
||||
GimpTemplate *template);
|
||||
|
||||
|
||||
#endif /* __FILE_NEW_DIALOG_H__ */
|
||||
|
|
|
@ -80,6 +80,7 @@
|
|||
#include "dialogs-constructors.h"
|
||||
#include "error-console-dialog.h"
|
||||
#include "file-commands.h"
|
||||
#include "file-new-dialog.h"
|
||||
#include "layers-commands.h"
|
||||
#include "module-browser.h"
|
||||
#include "paths-dialog.h"
|
||||
|
@ -155,6 +156,14 @@ static void dialogs_navigation_display_changed (GimpContext *context
|
|||
/* toplevel dialogs */
|
||||
/**********************/
|
||||
|
||||
GtkWidget *
|
||||
dialogs_file_new_new (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
gint preview_size)
|
||||
{
|
||||
return file_new_dialog_new (context->gimp);
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
dialogs_device_status_get (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
|
|
|
@ -22,6 +22,9 @@
|
|||
|
||||
/* toplevel dialogs */
|
||||
|
||||
GtkWidget * dialogs_file_new_new (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
gint preview_size);
|
||||
GtkWidget * dialogs_device_status_get (GimpDialogFactory *factory,
|
||||
GimpContext *context,
|
||||
gint preview_size);
|
||||
|
|
|
@ -40,27 +40,62 @@ GimpDialogFactory *global_toolbox_factory = NULL;
|
|||
|
||||
static const GimpDialogFactoryEntry toplevel_entries[] =
|
||||
{
|
||||
/* foreign toplevels without constructor */
|
||||
{ "gimp-brightness-contrast-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-color-picker-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-crop-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-curves-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-color-balance-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-hue-saturation-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-levels-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-posterize-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-rotate-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-scale-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-shear-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-threshold-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-perspective-tool-dialog",
|
||||
NULL, 0, TRUE, TRUE, FALSE, FALSE },
|
||||
|
||||
/* ordinary toplevels */
|
||||
{ "gimp-file-new-dialog", dialogs_file_new_new,
|
||||
0, FALSE, TRUE, FALSE, FALSE },
|
||||
|
||||
/* singleton toplevels */
|
||||
{ "gimp-device-status-dialog", dialogs_device_status_get,
|
||||
0, TRUE, TRUE, FALSE, TRUE },
|
||||
{ "gimp-preferences-dialog", dialogs_preferences_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-module-browser-dialog", dialogs_module_browser_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
0, TRUE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-display-filters-dialog", dialogs_display_filters_get,
|
||||
0, FALSE, FALSE, FALSE, TRUE },
|
||||
0, FALSE, TRUE, FALSE, FALSE },
|
||||
{ "gimp-tips-dialog", dialogs_tips_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
0, TRUE, FALSE, FALSE, FALSE },
|
||||
{ "gimp-about-dialog", dialogs_about_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE }
|
||||
0, TRUE, FALSE, FALSE, FALSE }
|
||||
};
|
||||
|
||||
static const GimpDialogFactoryEntry dock_entries[] =
|
||||
{
|
||||
/* singleton dockables */
|
||||
{ "gimp-tool-options", dialogs_tool_options_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-error-console", dialogs_error_console_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
|
||||
/* list views */
|
||||
{ "gimp-image-list", dialogs_image_list_view_new,
|
||||
GIMP_PREVIEW_SIZE_MEDIUM, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-brush-list", dialogs_brush_list_view_new,
|
||||
|
@ -77,7 +112,12 @@ static const GimpDialogFactoryEntry dock_entries[] =
|
|||
GIMP_PREVIEW_SIZE_SMALL, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-buffer-list", dialogs_buffer_list_view_new,
|
||||
GIMP_PREVIEW_SIZE_MEDIUM, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-document-list", dialogs_document_list_new,
|
||||
GIMP_PREVIEW_SIZE_LARGE, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-template-list", dialogs_template_list_new,
|
||||
GIMP_PREVIEW_SIZE_SMALL, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
/* grid views */
|
||||
{ "gimp-image-grid", dialogs_image_grid_view_new,
|
||||
GIMP_PREVIEW_SIZE_MEDIUM, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-brush-grid", dialogs_brush_grid_view_new,
|
||||
|
@ -94,7 +134,10 @@ static const GimpDialogFactoryEntry dock_entries[] =
|
|||
GIMP_PREVIEW_SIZE_SMALL, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-buffer-grid", dialogs_buffer_grid_view_new,
|
||||
GIMP_PREVIEW_SIZE_MEDIUM, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-document-grid", dialogs_document_grid_new,
|
||||
GIMP_PREVIEW_SIZE_LARGE, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
/* image related */
|
||||
{ "gimp-layer-list", dialogs_layer_list_view_new,
|
||||
0, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-channel-list", dialogs_channel_list_view_new,
|
||||
|
@ -110,26 +153,21 @@ static const GimpDialogFactoryEntry dock_entries[] =
|
|||
{ "gimp-undo-history", dialogs_undo_history_new,
|
||||
0, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
/* display related */
|
||||
{ "gimp-navigation-view", dialogs_navigation_view_new,
|
||||
0, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
/* editors */
|
||||
{ "gimp-color-editor", dialogs_color_editor_new,
|
||||
0, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
{ "gimp-document-list", dialogs_document_list_new,
|
||||
GIMP_PREVIEW_SIZE_LARGE, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-document-grid", dialogs_document_grid_new,
|
||||
GIMP_PREVIEW_SIZE_LARGE, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
{ "gimp-template-list", dialogs_template_list_new,
|
||||
GIMP_PREVIEW_SIZE_SMALL, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
/* singleton editors */
|
||||
{ "gimp-brush-editor", dialogs_brush_editor_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-gradient-editor", dialogs_gradient_editor_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
{ "gimp-palette-editor", dialogs_palette_editor_get,
|
||||
0, TRUE, FALSE, FALSE, TRUE },
|
||||
|
||||
{ "gimp-navigation-view", dialogs_navigation_view_new,
|
||||
0, FALSE, FALSE, FALSE, TRUE }
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -40,10 +40,13 @@
|
|||
#include "file/file-save.h"
|
||||
#include "file/file-utils.h"
|
||||
|
||||
#include "widgets/gimpdialogfactory.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
#include "display/gimpdisplay-foreach.h"
|
||||
#include "display/gimpdisplayshell.h"
|
||||
|
||||
#include "dialogs.h"
|
||||
#include "file-commands.h"
|
||||
#include "file-new-dialog.h"
|
||||
#include "file-open-dialog.h"
|
||||
|
@ -97,6 +100,7 @@ file_new_cmd_callback (GtkWidget *widget,
|
|||
{
|
||||
Gimp *gimp;
|
||||
GimpImage *gimage;
|
||||
GtkWidget *dialog;
|
||||
return_if_no_gimp (gimp, data);
|
||||
|
||||
/* if called from the image menu */
|
||||
|
@ -105,7 +109,11 @@ file_new_cmd_callback (GtkWidget *widget,
|
|||
else
|
||||
gimage = NULL;
|
||||
|
||||
file_new_dialog_create (gimp, gimage, NULL);
|
||||
dialog = gimp_dialog_factory_dialog_new (global_dialog_factory,
|
||||
"gimp-file-new-dialog", -1);
|
||||
|
||||
if (dialog)
|
||||
file_new_dialog_set (dialog, gimage, NULL);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -76,19 +76,15 @@ static void file_new_create_image (FileNewDialog *dialog);
|
|||
|
||||
/* public functions */
|
||||
|
||||
void
|
||||
file_new_dialog_create (Gimp *gimp,
|
||||
GimpImage *gimage,
|
||||
GimpTemplate *template)
|
||||
GtkWidget *
|
||||
file_new_dialog_new (Gimp *gimp)
|
||||
{
|
||||
FileNewDialog *dialog;
|
||||
GtkWidget *main_vbox;
|
||||
GtkWidget *table;
|
||||
GtkWidget *optionmenu;
|
||||
|
||||
g_return_if_fail (GIMP_IS_GIMP (gimp));
|
||||
g_return_if_fail (gimage == NULL || GIMP_IS_IMAGE (gimage));
|
||||
g_return_if_fail (template == NULL || GIMP_IS_TEMPLATE (template));
|
||||
g_return_val_if_fail (GIMP_IS_GIMP (gimp), NULL);
|
||||
|
||||
dialog = g_new0 (FileNewDialog, 1);
|
||||
|
||||
|
@ -114,6 +110,10 @@ file_new_dialog_create (Gimp *gimp,
|
|||
|
||||
NULL);
|
||||
|
||||
g_object_set_data_full (G_OBJECT (dialog->dialog),
|
||||
"gimp-file-new-dialog", dialog,
|
||||
(GDestroyNotify) g_free);
|
||||
|
||||
gtk_window_set_resizable (GTK_WINDOW (dialog->dialog), FALSE);
|
||||
|
||||
/* vbox holding the rest of the dialog */
|
||||
|
@ -154,6 +154,26 @@ file_new_dialog_create (Gimp *gimp,
|
|||
G_CALLBACK (file_new_template_notify),
|
||||
dialog);
|
||||
|
||||
gimp_size_entry_grab_focus (GIMP_SIZE_ENTRY (GIMP_TEMPLATE_EDITOR (dialog->editor)->size_se));
|
||||
|
||||
return dialog->dialog;
|
||||
}
|
||||
|
||||
void
|
||||
file_new_dialog_set (GtkWidget *widget,
|
||||
GimpImage *gimage,
|
||||
GimpTemplate *template)
|
||||
{
|
||||
FileNewDialog *dialog;
|
||||
|
||||
g_return_if_fail (GTK_IS_WIDGET (widget));
|
||||
g_return_if_fail (gimage == NULL || GIMP_IS_IMAGE (gimage));
|
||||
g_return_if_fail (template == NULL || GIMP_IS_TEMPLATE (template));
|
||||
|
||||
dialog = g_object_get_data (G_OBJECT (widget), "gimp-file-new-dialog");
|
||||
|
||||
g_return_if_fail (dialog != NULL);
|
||||
|
||||
if (template)
|
||||
{
|
||||
gimp_container_menu_select_item (GIMP_CONTAINER_MENU (dialog->template_menu),
|
||||
|
@ -161,15 +181,11 @@ file_new_dialog_create (Gimp *gimp,
|
|||
}
|
||||
else
|
||||
{
|
||||
template = gimp_image_new_get_last_template (gimp, gimage);
|
||||
template = gimp_image_new_get_last_template (dialog->gimp, gimage);
|
||||
gimp_template_editor_set_template (GIMP_TEMPLATE_EDITOR (dialog->editor),
|
||||
template);
|
||||
g_object_unref (template);
|
||||
}
|
||||
|
||||
gimp_size_entry_grab_focus (GIMP_SIZE_ENTRY (GIMP_TEMPLATE_EDITOR (dialog->editor)->size_se));
|
||||
|
||||
gtk_widget_show (dialog->dialog);
|
||||
}
|
||||
|
||||
|
||||
|
@ -191,7 +207,6 @@ file_new_cancel_callback (GtkWidget *widget,
|
|||
FileNewDialog *dialog)
|
||||
{
|
||||
gtk_widget_destroy (dialog->dialog);
|
||||
g_free (dialog);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -299,15 +314,16 @@ static void
|
|||
file_new_create_image (FileNewDialog *dialog)
|
||||
{
|
||||
GimpTemplate *template;
|
||||
Gimp *gimp;
|
||||
|
||||
template =
|
||||
gimp_template_editor_get_template (GIMP_TEMPLATE_EDITOR (dialog->editor));
|
||||
|
||||
gimp = dialog->gimp;
|
||||
|
||||
gtk_widget_destroy (dialog->dialog);
|
||||
|
||||
gimp_template_create_image (dialog->gimp, template);
|
||||
gimp_image_new_set_last_template (dialog->gimp, template);
|
||||
gimp_template_create_image (gimp, template);
|
||||
gimp_image_new_set_last_template (gimp, template);
|
||||
g_object_unref (template);
|
||||
|
||||
g_free (dialog);
|
||||
}
|
||||
|
|
|
@ -20,9 +20,11 @@
|
|||
#define __FILE_NEW_DIALOG_H__
|
||||
|
||||
|
||||
void file_new_dialog_create (Gimp *gimp,
|
||||
GimpImage *gimage,
|
||||
GimpTemplate *template);
|
||||
GtkWidget * file_new_dialog_new (Gimp *gimp);
|
||||
|
||||
void file_new_dialog_set (GtkWidget *widget,
|
||||
GimpImage *gimage,
|
||||
GimpTemplate *template);
|
||||
|
||||
|
||||
#endif /* __FILE_NEW_DIALOG_H__ */
|
||||
|
|
|
@ -31,10 +31,12 @@
|
|||
#include "core/gimplist.h"
|
||||
#include "core/gimptemplate.h"
|
||||
|
||||
#include "widgets/gimpdialogfactory.h"
|
||||
#include "widgets/gimptemplateeditor.h"
|
||||
#include "widgets/gimptemplateview.h"
|
||||
#include "widgets/gimpviewabledialog.h"
|
||||
|
||||
#include "dialogs.h"
|
||||
#include "file-new-dialog.h"
|
||||
#include "templates-commands.h"
|
||||
|
||||
|
@ -235,5 +237,11 @@ void
|
|||
templates_file_new_dialog (Gimp *gimp,
|
||||
GimpTemplate *template)
|
||||
{
|
||||
file_new_dialog_create (gimp, NULL, template);
|
||||
GtkWidget *dialog;
|
||||
|
||||
dialog = gimp_dialog_factory_dialog_new (global_dialog_factory,
|
||||
"gimp-file-new-dialog", -1);
|
||||
|
||||
if (dialog)
|
||||
file_new_dialog_set (dialog, NULL, template);
|
||||
}
|
||||
|
|
|
@ -145,11 +145,12 @@ gimp_brightness_contrast_tool_init (GimpBrightnessContrastTool *bc_tool)
|
|||
|
||||
image_map_tool = GIMP_IMAGE_MAP_TOOL (bc_tool);
|
||||
|
||||
image_map_tool->shell_desc = _("Adjust Brightness and Contrast");
|
||||
image_map_tool->shell_identifier = "gimp-brightness-contrast-tool-dialog";
|
||||
image_map_tool->shell_desc = _("Adjust Brightness and Contrast");
|
||||
|
||||
bc_tool->brightness = 0.0;
|
||||
bc_tool->contrast = 0.0;
|
||||
bc_tool->lut = gimp_lut_new ();
|
||||
bc_tool->brightness = 0.0;
|
||||
bc_tool->contrast = 0.0;
|
||||
bc_tool->lut = gimp_lut_new ();
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -157,10 +157,11 @@ gimp_color_balance_tool_init (GimpColorBalanceTool *cb_tool)
|
|||
|
||||
image_map_tool = GIMP_IMAGE_MAP_TOOL (cb_tool);
|
||||
|
||||
image_map_tool->shell_desc = _("Adjust Color Balance");
|
||||
image_map_tool->shell_identifier = "gimp-color-balance-tool-dialog";
|
||||
image_map_tool->shell_desc = _("Adjust Color Balance");
|
||||
|
||||
cb_tool->color_balance = g_new0 (ColorBalance, 1);
|
||||
cb_tool->transfer_mode = GIMP_MIDTONES;
|
||||
cb_tool->color_balance = g_new0 (ColorBalance, 1);
|
||||
cb_tool->transfer_mode = GIMP_MIDTONES;
|
||||
|
||||
color_balance_init (cb_tool->color_balance);
|
||||
}
|
||||
|
|
|
@ -36,12 +36,14 @@
|
|||
#include "core/gimpimage-pick-color.h"
|
||||
#include "core/gimptoolinfo.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
|
||||
#include "widgets/gimpdialogfactory.h"
|
||||
#include "widgets/gimppaletteeditor.h"
|
||||
#include "widgets/gimptoolbox-color-area.h"
|
||||
#include "widgets/gimpviewabledialog.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
|
||||
#include "gui/dialogs.h"
|
||||
#include "gui/info-dialog.h"
|
||||
|
||||
#include "gimpcolorpickeroptions.h"
|
||||
|
@ -556,6 +558,10 @@ gimp_color_picker_tool_info_create (GimpDrawable *drawable)
|
|||
gtk_widget_show (color_area);
|
||||
gtk_widget_show (frame);
|
||||
|
||||
gimp_dialog_factory_add_foreign (global_dialog_factory,
|
||||
"gimp-color-picker-tool-dialog",
|
||||
info_dialog->shell);
|
||||
|
||||
return info_dialog;
|
||||
}
|
||||
|
||||
|
|
|
@ -27,6 +27,11 @@
|
|||
|
||||
#include "tools-types.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
#warning FIXME #include "gui/gui-types.h"
|
||||
#endif
|
||||
#include "gui/gui-types.h"
|
||||
|
||||
#include "core/gimpdrawable.h"
|
||||
#include "core/gimpimage.h"
|
||||
#include "core/gimpimage-crop.h"
|
||||
|
@ -38,12 +43,14 @@
|
|||
#include "display/gimpdisplayshell.h"
|
||||
#include "display/gimpdisplayshell-transform.h"
|
||||
|
||||
#include "gui/info-dialog.h"
|
||||
|
||||
#include "widgets/gimpdialogfactory.h"
|
||||
#include "widgets/gimpenummenu.h"
|
||||
#include "widgets/gimpviewabledialog.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "gui/dialogs.h"
|
||||
#include "gui/info-dialog.h"
|
||||
|
||||
#include "gimpcropoptions.h"
|
||||
#include "gimpcroptool.h"
|
||||
#include "gimptoolcontrol.h"
|
||||
|
@ -1073,6 +1080,10 @@ crop_info_create (GimpCropTool *crop)
|
|||
|
||||
gtk_box_pack_start (GTK_BOX (crop->crop_info->vbox), bbox, FALSE, FALSE, 0);
|
||||
gtk_widget_show (bbox);
|
||||
|
||||
gimp_dialog_factory_add_foreign (global_dialog_factory,
|
||||
"gimp-crop-tool-dialog",
|
||||
crop->crop_info->shell);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -240,7 +240,8 @@ gimp_curves_tool_init (GimpCurvesTool *c_tool)
|
|||
|
||||
image_map_tool = GIMP_IMAGE_MAP_TOOL (c_tool);
|
||||
|
||||
image_map_tool->shell_desc = _("Adjust Color Curves");
|
||||
image_map_tool->shell_identifier = "gimp-curves-tool-dialog";
|
||||
image_map_tool->shell_desc = _("Adjust Color Curves");
|
||||
|
||||
c_tool->curves = g_new0 (Curves, 1);
|
||||
c_tool->lut = gimp_lut_new ();
|
||||
|
|
|
@ -173,10 +173,11 @@ gimp_hue_saturation_tool_init (GimpHueSaturationTool *hs_tool)
|
|||
|
||||
image_map_tool = GIMP_IMAGE_MAP_TOOL (hs_tool);
|
||||
|
||||
image_map_tool->shell_desc = _("Adjust Hue / Lightness / Saturation");
|
||||
image_map_tool->shell_identifier = "gimp-hue-saturation-tool-dialog";
|
||||
image_map_tool->shell_desc = _("Adjust Hue / Lightness / Saturation");
|
||||
|
||||
hs_tool->hue_saturation = g_new0 (HueSaturation, 1);
|
||||
hs_tool->hue_partition = GIMP_ALL_HUES;
|
||||
hs_tool->hue_saturation = g_new0 (HueSaturation, 1);
|
||||
hs_tool->hue_partition = GIMP_ALL_HUES;
|
||||
|
||||
hue_saturation_init (hs_tool->hue_saturation);
|
||||
}
|
||||
|
|
|
@ -24,17 +24,25 @@
|
|||
|
||||
#include "tools-types.h"
|
||||
|
||||
#ifdef __GNUC__
|
||||
#warning FIXME #include "gui/gui-types.h"
|
||||
#endif
|
||||
#include "gui/gui-types.h"
|
||||
|
||||
#include "core/gimpdrawable.h"
|
||||
#include "core/gimpimage.h"
|
||||
#include "core/gimpimagemap.h"
|
||||
#include "core/gimptoolinfo.h"
|
||||
|
||||
#include "widgets/gimpdialogfactory.h"
|
||||
#include "widgets/gimpitemfactory.h"
|
||||
#include "widgets/gimpviewabledialog.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
#include "display/gimpdisplayshell.h"
|
||||
|
||||
#include "gui/dialogs.h"
|
||||
|
||||
#include "gimpimagemaptool.h"
|
||||
#include "gimptoolcontrol.h"
|
||||
#include "tool_manager.h"
|
||||
|
@ -134,13 +142,14 @@ gimp_image_map_tool_init (GimpImageMapTool *image_map_tool)
|
|||
gimp_tool_control_set_scroll_lock (tool->control, TRUE);
|
||||
gimp_tool_control_set_preserve (tool->control, FALSE);
|
||||
|
||||
image_map_tool->drawable = NULL;
|
||||
image_map_tool->image_map = NULL;
|
||||
image_map_tool->preview = TRUE;
|
||||
image_map_tool->drawable = NULL;
|
||||
image_map_tool->image_map = NULL;
|
||||
image_map_tool->preview = TRUE;
|
||||
|
||||
image_map_tool->shell_desc = NULL;
|
||||
image_map_tool->shell = NULL;
|
||||
image_map_tool->main_vbox = NULL;
|
||||
image_map_tool->shell_identifier = NULL;
|
||||
image_map_tool->shell_desc = NULL;
|
||||
image_map_tool->shell = NULL;
|
||||
image_map_tool->main_vbox = NULL;
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -245,6 +254,12 @@ gimp_image_map_tool_initialize (GimpTool *tool,
|
|||
gimp_image_map_tool_dialog (image_map_tool);
|
||||
|
||||
gtk_widget_show (vbox);
|
||||
|
||||
if (image_map_tool->shell_identifier)
|
||||
gimp_dialog_factory_add_foreign (global_dialog_factory,
|
||||
image_map_tool->shell_identifier,
|
||||
image_map_tool->shell);
|
||||
|
||||
}
|
||||
|
||||
drawable = gimp_image_active_drawable (gdisp->gimage);
|
||||
|
|
|
@ -44,6 +44,7 @@ struct _GimpImageMapTool
|
|||
gboolean preview;
|
||||
|
||||
/* the dialog */
|
||||
const gchar *shell_identifier;
|
||||
const gchar *shell_desc;
|
||||
|
||||
GtkWidget *shell;
|
||||
|
|
|
@ -241,7 +241,8 @@ gimp_levels_tool_init (GimpLevelsTool *l_tool)
|
|||
|
||||
image_map_tool = GIMP_IMAGE_MAP_TOOL (l_tool);
|
||||
|
||||
image_map_tool->shell_desc = _("Adjust Color Levels");
|
||||
image_map_tool->shell_identifier = "gimp-levels-tool-dialog";
|
||||
image_map_tool->shell_desc = _("Adjust Color Levels");
|
||||
|
||||
l_tool->lut = gimp_lut_new ();
|
||||
l_tool->levels = g_new0 (Levels, 1);
|
||||
|
|
|
@ -142,8 +142,9 @@ gimp_perspective_tool_init (GimpPerspectiveTool *perspective_tool)
|
|||
gimp_tool_control_set_tool_cursor (tool->control,
|
||||
GIMP_PERSPECTIVE_TOOL_CURSOR);
|
||||
|
||||
tr_tool->shell_desc = _("Perspective Transform Information");
|
||||
tr_tool->progress_text = _("Perspective...");
|
||||
tr_tool->shell_identifier = "gimp-perspective-tool-dialog";
|
||||
tr_tool->shell_desc = _("Perspective Transform Information");
|
||||
tr_tool->progress_text = _("Perspective...");
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -138,10 +138,11 @@ gimp_posterize_tool_init (GimpPosterizeTool *posterize_tool)
|
|||
|
||||
image_map_tool = GIMP_IMAGE_MAP_TOOL (posterize_tool);
|
||||
|
||||
image_map_tool->shell_desc = _("Posterize (Reduce Number of Colors)");
|
||||
image_map_tool->shell_identifier = "gimp-posterize-tool-dialog";
|
||||
image_map_tool->shell_desc = _("Posterize (Reduce Number of Colors)");
|
||||
|
||||
posterize_tool->levels = POSTERIZE_DEFAULT_LEVELS;
|
||||
posterize_tool->lut = gimp_lut_new ();
|
||||
posterize_tool->levels = POSTERIZE_DEFAULT_LEVELS;
|
||||
posterize_tool->lut = gimp_lut_new ();
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -166,8 +166,9 @@ gimp_rotate_tool_init (GimpRotateTool *rotate_tool)
|
|||
|
||||
gimp_tool_control_set_tool_cursor (tool->control, GIMP_ROTATE_TOOL_CURSOR);
|
||||
|
||||
tr_tool->shell_desc = _("Rotation Information");
|
||||
tr_tool->progress_text = _("Rotating...");
|
||||
tr_tool->shell_identifier = "gimp-rotate-tool-dialog";
|
||||
tr_tool->shell_desc = _("Rotation Information");
|
||||
tr_tool->progress_text = _("Rotating...");
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -159,8 +159,9 @@ gimp_scale_tool_init (GimpScaleTool *scale_tool)
|
|||
|
||||
gimp_tool_control_set_tool_cursor (tool->control, GIMP_RESIZE_TOOL_CURSOR);
|
||||
|
||||
tr_tool->shell_desc = _("Scaling Information");
|
||||
tr_tool->progress_text = _("Scaling...");
|
||||
tr_tool->shell_identifier = "gimp-scale-tool-dialog";
|
||||
tr_tool->shell_desc = _("Scaling Information");
|
||||
tr_tool->progress_text = _("Scaling...");
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -158,9 +158,10 @@ gimp_shear_tool_init (GimpShearTool *shear_tool)
|
|||
|
||||
gimp_tool_control_set_tool_cursor (tool->control, GIMP_SHEAR_TOOL_CURSOR);
|
||||
|
||||
tr_tool->use_center = FALSE;
|
||||
tr_tool->shell_desc = _("Shearing Information");
|
||||
tr_tool->progress_text = _("Shearing...");
|
||||
tr_tool->use_center = FALSE;
|
||||
tr_tool->shell_identifier = "gimp-shear-tool-dialog";
|
||||
tr_tool->shell_desc = _("Shearing Information");
|
||||
tr_tool->progress_text = _("Shearing...");
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -154,7 +154,8 @@ gimp_threshold_tool_init (GimpThresholdTool *t_tool)
|
|||
|
||||
image_map_tool = GIMP_IMAGE_MAP_TOOL (t_tool);
|
||||
|
||||
image_map_tool->shell_desc = _("Apply Threshold");
|
||||
image_map_tool->shell_identifier = "gimp-threshold-tool-dialog";
|
||||
image_map_tool->shell_desc = _("Apply Threshold");
|
||||
|
||||
t_tool->threshold = g_new0 (Threshold, 1);
|
||||
t_tool->hist = NULL;
|
||||
|
|
|
@ -133,11 +133,11 @@ gimp_tool_class_init (GimpToolClass *klass)
|
|||
static void
|
||||
gimp_tool_init (GimpTool *tool)
|
||||
{
|
||||
tool->ID = global_tool_ID++;
|
||||
tool->control = GIMP_TOOL_CONTROL (g_object_new (GIMP_TYPE_TOOL_CONTROL,
|
||||
NULL));
|
||||
tool->gdisp = NULL;
|
||||
tool->drawable = NULL;
|
||||
tool->tool_info = NULL;
|
||||
tool->ID = global_tool_ID++;
|
||||
tool->control = g_object_new (GIMP_TYPE_TOOL_CONTROL, NULL);
|
||||
tool->gdisp = NULL;
|
||||
tool->drawable = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -46,14 +46,16 @@
|
|||
#include "core/gimpmarshal.h"
|
||||
#include "core/gimptoolinfo.h"
|
||||
|
||||
#include "widgets/gimpdialogfactory.h"
|
||||
#include "widgets/gimpviewabledialog.h"
|
||||
|
||||
#include "gui/info-dialog.h"
|
||||
|
||||
#include "display/gimpdisplay.h"
|
||||
#include "display/gimpdisplay-foreach.h"
|
||||
#include "display/gimpprogress.h"
|
||||
|
||||
#include "gui/dialogs.h"
|
||||
#include "gui/info-dialog.h"
|
||||
|
||||
#include "gimptoolcontrol.h"
|
||||
#include "gimptransformoptions.h"
|
||||
#include "gimptransformtool.h"
|
||||
|
@ -1131,6 +1133,12 @@ gimp_transform_tool_dialog (GimpTransformTool *tr_tool)
|
|||
NULL);
|
||||
|
||||
GIMP_TRANSFORM_TOOL_GET_CLASS (tr_tool)->dialog (tr_tool);
|
||||
|
||||
if (tr_tool->shell_identifier)
|
||||
gimp_dialog_factory_add_foreign (global_dialog_factory,
|
||||
tr_tool->shell_identifier,
|
||||
tr_tool->info_dialog->shell);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -93,6 +93,7 @@ struct _GimpTransformTool
|
|||
gboolean show_path;
|
||||
|
||||
/* transform info dialog */
|
||||
const gchar *shell_identifier;
|
||||
const gchar *shell_desc;
|
||||
const gchar *progress_text;
|
||||
|
||||
|
|
|
@ -75,6 +75,9 @@ static void gimp_dialog_factory_init (GimpDialogFactory *factory);
|
|||
static void gimp_dialog_factory_dispose (GObject *object);
|
||||
static void gimp_dialog_factory_finalize (GObject *object);
|
||||
|
||||
static gboolean gimp_dialog_factory_dialog_configure (GtkWidget *dialog,
|
||||
GdkEventConfigure *cevent,
|
||||
GimpDialogFactory *factory);
|
||||
static void gimp_dialog_factories_save_foreach (gchar *name,
|
||||
GimpDialogFactory *factory,
|
||||
GimpConfigWriter *writer);
|
||||
|
@ -743,9 +746,7 @@ gimp_dialog_factory_add_dialog (GimpDialogFactory *factory,
|
|||
entry->identifier));
|
||||
|
||||
if (entry->session_managed)
|
||||
{
|
||||
gimp_dialog_factory_set_window_geometry (info->widget, info);
|
||||
}
|
||||
gimp_dialog_factory_set_window_geometry (info->widget, info);
|
||||
|
||||
break;
|
||||
}
|
||||
|
@ -816,6 +817,64 @@ gimp_dialog_factory_add_dialog (GimpDialogFactory *factory,
|
|||
G_CALLBACK (gimp_dialog_factory_remove_dialog),
|
||||
factory,
|
||||
G_CONNECT_SWAPPED);
|
||||
|
||||
if (entry &&
|
||||
entry->session_managed &&
|
||||
GTK_WIDGET_TOPLEVEL (dialog))
|
||||
{
|
||||
g_signal_connect_object (dialog, "configure_event",
|
||||
G_CALLBACK (gimp_dialog_factory_dialog_configure),
|
||||
factory,
|
||||
0);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
gimp_dialog_factory_add_foreign (GimpDialogFactory *factory,
|
||||
const gchar *identifier,
|
||||
GtkWidget *dialog)
|
||||
{
|
||||
GimpDialogFactory *dialog_factory;
|
||||
GimpDialogFactoryEntry *entry;
|
||||
|
||||
g_return_if_fail (GIMP_IS_DIALOG_FACTORY (factory));
|
||||
g_return_if_fail (identifier != NULL);
|
||||
g_return_if_fail (GTK_IS_WIDGET (dialog));
|
||||
g_return_if_fail (GTK_WIDGET_TOPLEVEL (dialog));
|
||||
|
||||
dialog_factory = g_object_get_data (G_OBJECT (dialog),
|
||||
"gimp-dialog-factory");
|
||||
entry = g_object_get_data (G_OBJECT (dialog), "gimp-dialog-factory-entry");
|
||||
|
||||
if (dialog_factory || entry)
|
||||
{
|
||||
g_warning ("%s: dialog was created by a GimpDialogFactory",
|
||||
G_GNUC_FUNCTION);
|
||||
return;
|
||||
}
|
||||
|
||||
entry = gimp_dialog_factory_find_entry (factory, identifier);
|
||||
|
||||
if (! entry)
|
||||
{
|
||||
g_warning ("%s: no entry registered for \"%s\"",
|
||||
G_GNUC_FUNCTION, identifier);
|
||||
return;
|
||||
}
|
||||
|
||||
if (entry->new_func)
|
||||
{
|
||||
g_warning ("%s: entry for \"%s\" has a constructor (is not foreign)",
|
||||
G_GNUC_FUNCTION, identifier);
|
||||
return;
|
||||
}
|
||||
|
||||
g_object_set_data (G_OBJECT (dialog), "gimp-dialog-factory",
|
||||
factory);
|
||||
g_object_set_data (G_OBJECT (dialog), "gimp-dialog-factory-entry",
|
||||
entry);
|
||||
|
||||
gimp_dialog_factory_add_dialog (factory, dialog);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -998,6 +1057,58 @@ gimp_dialog_factories_unidle (void)
|
|||
|
||||
/* private functions */
|
||||
|
||||
static gboolean
|
||||
gimp_dialog_factory_dialog_configure (GtkWidget *dialog,
|
||||
GdkEventConfigure *cevent,
|
||||
GimpDialogFactory *factory)
|
||||
{
|
||||
GimpDialogFactory *dialog_factory;
|
||||
GimpDialogFactoryEntry *entry;
|
||||
GimpSessionInfo *session_info;
|
||||
GList *list;
|
||||
|
||||
if (! g_list_find (factory->open_dialogs, dialog))
|
||||
{
|
||||
g_warning ("%s: dialog not registered", G_GNUC_FUNCTION);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
dialog_factory = g_object_get_data (G_OBJECT (dialog),
|
||||
"gimp-dialog-factory");
|
||||
entry = g_object_get_data (G_OBJECT (dialog), "gimp-dialog-factory-entry");
|
||||
|
||||
if (! dialog_factory || ! entry)
|
||||
{
|
||||
g_warning ("%s: dialog was not created by a GimpDialogFactory",
|
||||
G_GNUC_FUNCTION);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (dialog_factory != factory)
|
||||
{
|
||||
g_warning ("%s: dialog was created by a different GimpDialogFactory",
|
||||
G_GNUC_FUNCTION);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
for (list = factory->session_infos; list; list = g_list_next (list))
|
||||
{
|
||||
session_info = (GimpSessionInfo *) list->data;
|
||||
|
||||
if (session_info->widget == dialog)
|
||||
{
|
||||
D (g_print ("%s: updating session info for \"%s\"\n",
|
||||
G_GNUC_FUNCTION, entry->identifier));
|
||||
|
||||
gimp_dialog_factory_get_window_info (dialog, session_info);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void
|
||||
gimp_dialog_factories_save_foreach (gchar *name,
|
||||
GimpDialogFactory *factory,
|
||||
|
|
|
@ -140,6 +140,9 @@ GtkWidget * gimp_dialog_factory_dock_new (GimpDialogFactory *factory);
|
|||
|
||||
void gimp_dialog_factory_add_dialog (GimpDialogFactory *factory,
|
||||
GtkWidget *dialog);
|
||||
void gimp_dialog_factory_add_foreign (GimpDialogFactory *factory,
|
||||
const gchar *identifier,
|
||||
GtkWidget *dialog);
|
||||
void gimp_dialog_factory_remove_dialog (GimpDialogFactory *factory,
|
||||
GtkWidget *dialog);
|
||||
|
||||
|
|
Loading…
Reference in New Issue