From a69c1ff1740fa840d23c1adeda82cf80c962dd2d Mon Sep 17 00:00:00 2001 From: Sven Neumann Date: Fri, 22 Sep 2006 09:24:41 +0000 Subject: [PATCH] app/gui/gui-message.c moved utility function to gimpwidgets-utils. 2006-09-22 Sven Neumann * app/gui/gui-message.c * app/widgets/gimpwidgets-utils.[ch]: moved utility function to gimpwidgets-utils. * app/core/gimp-gui.[ch] * app/gui/gui-vtable.c: added a progress parameter to gimp_pdb_dialog_new() and make the dialog transient to the progress window. * tools/pdbgen/pdb/brush_select.pdb * tools/pdbgen/pdb/font_select.pdb * tools/pdbgen/pdb/gradient_select.pdb * tools/pdbgen/pdb/palette_select.pdb * tools/pdbgen/pdb/pattern_select.pdb: pass progress to gimp_pdb_dialog_new(). * app/pdb/brush_select_cmds.c * app/pdb/font_select_cmds.c * app/pdb/gradient_select_cmds.c * app/pdb/palette_select_cmds.c * app/pdb/pattern_select_cmds.c: regenerated. * libgimp/gimpselectbutton.c: cosmetics. --- ChangeLog | 26 +++++++++++++++++++ app/core/gimp-gui.c | 9 ++++--- app/core/gimp-gui.h | 2 ++ app/gui/gui-message.c | 38 +--------------------------- app/gui/gui-vtable.c | 10 ++++++++ app/pdb/brush_select_cmds.c | 3 ++- app/pdb/font_select_cmds.c | 2 +- app/pdb/gradient_select_cmds.c | 3 ++- app/pdb/palette_select_cmds.c | 3 ++- app/pdb/pattern_select_cmds.c | 3 ++- app/widgets/gimpwidgets-utils.c | 31 +++++++++++++++++++++++ app/widgets/gimpwidgets-utils.h | 2 ++ libgimp/gimpselectbutton.c | 4 ++- tools/pdbgen/pdb/brush_select.pdb | 3 ++- tools/pdbgen/pdb/font_select.pdb | 2 +- tools/pdbgen/pdb/gradient_select.pdb | 3 ++- tools/pdbgen/pdb/palette_select.pdb | 3 ++- tools/pdbgen/pdb/pattern_select.pdb | 3 ++- 18 files changed, 99 insertions(+), 51 deletions(-) diff --git a/ChangeLog b/ChangeLog index 85ba97adbd..93ba5ef3fa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,29 @@ +2006-09-22 Sven Neumann + + * app/gui/gui-message.c + * app/widgets/gimpwidgets-utils.[ch]: moved utility function to + gimpwidgets-utils. + + * app/core/gimp-gui.[ch] + * app/gui/gui-vtable.c: added a progress parameter to + gimp_pdb_dialog_new() and make the dialog transient to the progress + window. + + * tools/pdbgen/pdb/brush_select.pdb + * tools/pdbgen/pdb/font_select.pdb + * tools/pdbgen/pdb/gradient_select.pdb + * tools/pdbgen/pdb/palette_select.pdb + * tools/pdbgen/pdb/pattern_select.pdb: pass progress to + gimp_pdb_dialog_new(). + + * app/pdb/brush_select_cmds.c + * app/pdb/font_select_cmds.c + * app/pdb/gradient_select_cmds.c + * app/pdb/palette_select_cmds.c + * app/pdb/pattern_select_cmds.c: regenerated. + + * libgimp/gimpselectbutton.c: cosmetics. + 2006-09-21 Bill Skaggs * app/widgets/gimppropwidgets.c (gimp_prop_aspect_ratio_new): diff --git a/app/core/gimp-gui.c b/app/core/gimp-gui.c index 84ed5addda..f8f01fdcd5 100644 --- a/app/core/gimp-gui.c +++ b/app/core/gimp-gui.c @@ -329,6 +329,7 @@ gimp_free_progress (Gimp *gimp, gboolean gimp_pdb_dialog_new (Gimp *gimp, GimpContext *context, + GimpProgress *progress, GimpContainer *container, const gchar *title, const gchar *callback_name, @@ -339,17 +340,19 @@ gimp_pdb_dialog_new (Gimp *gimp, g_return_val_if_fail (GIMP_IS_GIMP (gimp), FALSE); g_return_val_if_fail (GIMP_IS_CONTEXT (context), FALSE); + g_return_val_if_fail (progress == NULL || GIMP_IS_PROGRESS (progress), FALSE); g_return_val_if_fail (GIMP_IS_CONTAINER (container), FALSE); g_return_val_if_fail (title != NULL, FALSE); g_return_val_if_fail (callback_name != NULL, FALSE); if (gimp->gui.pdb_dialog_new) { - va_list args; + va_list args; va_start (args, object_name); - retval = gimp->gui.pdb_dialog_new (gimp, context, container, title, + retval = gimp->gui.pdb_dialog_new (gimp, context, progress, + container, title, callback_name, object_name, args); @@ -375,7 +378,7 @@ gimp_pdb_dialog_set (Gimp *gimp, if (gimp->gui.pdb_dialog_set) { - va_list args; + va_list args; va_start (args, object_name); diff --git a/app/core/gimp-gui.h b/app/core/gimp-gui.h index b9d5fc7ee4..8d090ee5fd 100644 --- a/app/core/gimp-gui.h +++ b/app/core/gimp-gui.h @@ -65,6 +65,7 @@ struct _GimpGui gboolean (* pdb_dialog_new) (Gimp *gimp, GimpContext *context, + GimpProgress *progress, GimpContainer *container, const gchar *title, const gchar *callback_name, @@ -129,6 +130,7 @@ const gchar * gimp_get_theme_dir (Gimp *gimp); gboolean gimp_pdb_dialog_new (Gimp *gimp, GimpContext *context, + GimpProgress *progress, GimpContainer *container, const gchar *title, const gchar *callback_name, diff --git a/app/gui/gui-message.c b/app/gui/gui-message.c index 14b0d8bec8..a59e20a823 100644 --- a/app/gui/gui-message.c +++ b/app/gui/gui-message.c @@ -38,6 +38,7 @@ #include "widgets/gimperrorconsole.h" #include "widgets/gimperrordialog.h" #include "widgets/gimpprogressdialog.h" +#include "widgets/gimpwidgets-utils.h" #include "dialogs/dialogs.h" @@ -52,9 +53,6 @@ static gboolean gui_message_error_dialog (GimpProgress *progress, static void gui_message_console (const gchar *domain, const gchar *message); -static void gimp_window_set_transient_for (GtkWindow *window, - guint32 parent_ID); - void gui_message (Gimp *gimp, @@ -189,37 +187,3 @@ gui_message_console (const gchar *domain, { g_printerr ("%s: %s\n\n", domain, message); } - - -/* utility functions, similar to what we have in libgimp/gimpui.c */ - -static void -gimp_window_transient_realized (GtkWidget *window, - GdkWindow *parent) -{ - if (GTK_WIDGET_REALIZED (window)) - gdk_window_set_transient_for (window->window, parent); -} - -static void -gimp_window_set_transient_for (GtkWindow *window, - guint32 parent_ID) -{ - GdkWindow *parent; - - parent = gdk_window_foreign_new_for_display (gdk_display_get_default (), - parent_ID); - - if (! parent) - return; - - if (GTK_WIDGET_REALIZED (window)) - gdk_window_set_transient_for (GTK_WIDGET (window)->window, parent); - - g_signal_connect_object (window, "realize", - G_CALLBACK (gimp_window_transient_realized), - parent, 0); - - g_object_unref (parent); -} - diff --git a/app/gui/gui-vtable.c b/app/gui/gui-vtable.c index aa9caca12d..55233cec25 100644 --- a/app/gui/gui-vtable.c +++ b/app/gui/gui-vtable.c @@ -101,6 +101,7 @@ static void gui_free_progress (Gimp *gimp, GimpProgress *progress); static gboolean gui_pdb_dialog_new (Gimp *gimp, GimpContext *context, + GimpProgress *progress, GimpContainer *container, const gchar *title, const gchar *callback_name, @@ -331,6 +332,7 @@ gui_free_progress (Gimp *gimp, static gboolean gui_pdb_dialog_new (Gimp *gimp, GimpContext *context, + GimpProgress *progress, GimpContainer *container, const gchar *title, const gchar *callback_name, @@ -414,6 +416,14 @@ gui_pdb_dialog_new (Gimp *gimp, if (view) gimp_docked_set_show_button_bar (GIMP_DOCKED (view), FALSE); + if (progress) + { + guint32 window = gimp_progress_get_window (progress); + + if (window) + gimp_window_set_transient_for (GTK_WINDOW (dialog), window); + } + gtk_widget_show (dialog); return TRUE; diff --git a/app/pdb/brush_select_cmds.c b/app/pdb/brush_select_cmds.c index a7165ce50a..ec5ab27c57 100644 --- a/app/pdb/brush_select_cmds.c +++ b/app/pdb/brush_select_cmds.c @@ -58,7 +58,8 @@ brushes_popup_invoker (GimpProcedure *procedure, { if (gimp->no_interface || ! gimp_pdb_lookup_procedure (gimp->pdb, brush_callback) || - ! gimp_pdb_dialog_new (gimp, context, gimp->brush_factory->container, + ! gimp_pdb_dialog_new (gimp, context, progress, + gimp->brush_factory->container, popup_title, brush_callback, initial_brush, "opacity", opacity / 100.0, "paint-mode", paint_mode, diff --git a/app/pdb/font_select_cmds.c b/app/pdb/font_select_cmds.c index 15ab7ddc35..bb16ade113 100644 --- a/app/pdb/font_select_cmds.c +++ b/app/pdb/font_select_cmds.c @@ -51,7 +51,7 @@ fonts_popup_invoker (GimpProcedure *procedure, { if (gimp->no_interface || ! gimp_pdb_lookup_procedure (gimp->pdb, font_callback) || - ! gimp_pdb_dialog_new (gimp, context, gimp->fonts, + ! gimp_pdb_dialog_new (gimp, context, progress, gimp->fonts, popup_title, font_callback, initial_font, NULL)) success = FALSE; diff --git a/app/pdb/gradient_select_cmds.c b/app/pdb/gradient_select_cmds.c index f701c0ba80..39ee97aad3 100644 --- a/app/pdb/gradient_select_cmds.c +++ b/app/pdb/gradient_select_cmds.c @@ -58,7 +58,8 @@ gradients_popup_invoker (GimpProcedure *procedure, if (gimp->no_interface || ! gimp_pdb_lookup_procedure (gimp->pdb, gradient_callback) || - ! gimp_pdb_dialog_new (gimp, context, gimp->gradient_factory->container, + ! gimp_pdb_dialog_new (gimp, context, progress, + gimp->gradient_factory->container, popup_title, gradient_callback, initial_gradient, "sample-size", sample_size, NULL)) diff --git a/app/pdb/palette_select_cmds.c b/app/pdb/palette_select_cmds.c index 995a5e4a4b..b0e0a37476 100644 --- a/app/pdb/palette_select_cmds.c +++ b/app/pdb/palette_select_cmds.c @@ -52,7 +52,8 @@ palettes_popup_invoker (GimpProcedure *procedure, { if (gimp->no_interface || ! gimp_pdb_lookup_procedure (gimp->pdb, palette_callback) || - ! gimp_pdb_dialog_new (gimp, context, gimp->palette_factory->container, + ! gimp_pdb_dialog_new (gimp, context, progress, + gimp->palette_factory->container, popup_title, palette_callback, initial_palette, NULL)) success = FALSE; diff --git a/app/pdb/pattern_select_cmds.c b/app/pdb/pattern_select_cmds.c index 3b9cd137f3..d0a3508496 100644 --- a/app/pdb/pattern_select_cmds.c +++ b/app/pdb/pattern_select_cmds.c @@ -52,7 +52,8 @@ patterns_popup_invoker (GimpProcedure *procedure, { if (gimp->no_interface || ! gimp_pdb_lookup_procedure (gimp->pdb, pattern_callback) || - ! gimp_pdb_dialog_new (gimp, context, gimp->pattern_factory->container, + ! gimp_pdb_dialog_new (gimp, context, progress, + gimp->pattern_factory->container, popup_title, pattern_callback, initial_pattern, NULL)) success = FALSE; diff --git a/app/widgets/gimpwidgets-utils.c b/app/widgets/gimpwidgets-utils.c index ac141a3372..6cd6373326 100644 --- a/app/widgets/gimpwidgets-utils.c +++ b/app/widgets/gimpwidgets-utils.c @@ -844,6 +844,37 @@ gimp_window_get_native (GtkWindow *window) return (GdkNativeWindow)0; } +static void +gimp_window_transient_realized (GtkWidget *window, + GdkWindow *parent) +{ + if (GTK_WIDGET_REALIZED (window)) + gdk_window_set_transient_for (window->window, parent); +} + +/* similar to what we have in libgimp/gimpui.c */ +void +gimp_window_set_transient_for (GtkWindow *window, + guint32 parent_ID) +{ + GdkWindow *parent; + + parent = gdk_window_foreign_new_for_display (gdk_display_get_default (), + parent_ID); + + if (! parent) + return; + + if (GTK_WIDGET_REALIZED (window)) + gdk_window_set_transient_for (GTK_WIDGET (window)->window, parent); + + g_signal_connect_object (window, "realize", + G_CALLBACK (gimp_window_transient_realized), + parent, 0); + + g_object_unref (parent); +} + void gimp_dialog_set_sensitive (GtkDialog *dialog, gboolean sensitive) diff --git a/app/widgets/gimpwidgets-utils.h b/app/widgets/gimpwidgets-utils.h index 7c99f43815..e0895cff95 100644 --- a/app/widgets/gimpwidgets-utils.h +++ b/app/widgets/gimpwidgets-utils.h @@ -73,6 +73,8 @@ void gimp_rgb_set_gdk_color (GimpRGB *rgb, void gimp_window_set_hint (GtkWindow *window, GimpWindowHint hint); GdkNativeWindow gimp_window_get_native (GtkWindow *window); +void gimp_window_set_transient_for (GtkWindow *window, + guint32 parent_ID); void gimp_dialog_set_sensitive (GtkDialog *dialog, gboolean sensitive); diff --git a/libgimp/gimpselectbutton.c b/libgimp/gimpselectbutton.c index ef94290094..c3aa3d0dde 100644 --- a/libgimp/gimpselectbutton.c +++ b/libgimp/gimpselectbutton.c @@ -63,7 +63,9 @@ gimp_select_button_close_popup (GimpSelectButton *button) if (button->temp_callback) { - GIMP_SELECT_BUTTON_GET_CLASS (button)->select_destroy (button->temp_callback); + GimpSelectButtonClass *klass = GIMP_SELECT_BUTTON_GET_CLASS (button); + + klass->select_destroy (button->temp_callback); button->temp_callback = NULL; } diff --git a/tools/pdbgen/pdb/brush_select.pdb b/tools/pdbgen/pdb/brush_select.pdb index 2d78822118..5a42c94136 100644 --- a/tools/pdbgen/pdb/brush_select.pdb +++ b/tools/pdbgen/pdb/brush_select.pdb @@ -46,7 +46,8 @@ sub brushes_popup { { if (gimp->no_interface || ! gimp_pdb_lookup_procedure (gimp->pdb, brush_callback) || - ! gimp_pdb_dialog_new (gimp, context, gimp->brush_factory->container, + ! gimp_pdb_dialog_new (gimp, context, progress, + gimp->brush_factory->container, popup_title, brush_callback, initial_brush, "opacity", opacity / 100.0, "paint-mode", paint_mode, diff --git a/tools/pdbgen/pdb/font_select.pdb b/tools/pdbgen/pdb/font_select.pdb index cfecb155ed..cd613f3255 100644 --- a/tools/pdbgen/pdb/font_select.pdb +++ b/tools/pdbgen/pdb/font_select.pdb @@ -37,7 +37,7 @@ sub fonts_popup { { if (gimp->no_interface || ! gimp_pdb_lookup_procedure (gimp->pdb, font_callback) || - ! gimp_pdb_dialog_new (gimp, context, gimp->fonts, + ! gimp_pdb_dialog_new (gimp, context, progress, gimp->fonts, popup_title, font_callback, initial_font, NULL)) success = FALSE; diff --git a/tools/pdbgen/pdb/gradient_select.pdb b/tools/pdbgen/pdb/gradient_select.pdb index a307ac16d2..7d11dda95b 100644 --- a/tools/pdbgen/pdb/gradient_select.pdb +++ b/tools/pdbgen/pdb/gradient_select.pdb @@ -45,7 +45,8 @@ sub gradients_popup { if (gimp->no_interface || ! gimp_pdb_lookup_procedure (gimp->pdb, gradient_callback) || - ! gimp_pdb_dialog_new (gimp, context, gimp->gradient_factory->container, + ! gimp_pdb_dialog_new (gimp, context, progress, + gimp->gradient_factory->container, popup_title, gradient_callback, initial_gradient, "sample-size", sample_size, NULL)) diff --git a/tools/pdbgen/pdb/palette_select.pdb b/tools/pdbgen/pdb/palette_select.pdb index 9ec3f770c3..2f03c73ed3 100644 --- a/tools/pdbgen/pdb/palette_select.pdb +++ b/tools/pdbgen/pdb/palette_select.pdb @@ -38,7 +38,8 @@ sub palettes_popup { { if (gimp->no_interface || ! gimp_pdb_lookup_procedure (gimp->pdb, palette_callback) || - ! gimp_pdb_dialog_new (gimp, context, gimp->palette_factory->container, + ! gimp_pdb_dialog_new (gimp, context, progress, + gimp->palette_factory->container, popup_title, palette_callback, initial_palette, NULL)) success = FALSE; diff --git a/tools/pdbgen/pdb/pattern_select.pdb b/tools/pdbgen/pdb/pattern_select.pdb index bb093fdf09..b59715a7c5 100644 --- a/tools/pdbgen/pdb/pattern_select.pdb +++ b/tools/pdbgen/pdb/pattern_select.pdb @@ -38,7 +38,8 @@ sub patterns_popup { { if (gimp->no_interface || ! gimp_pdb_lookup_procedure (gimp->pdb, pattern_callback) || - ! gimp_pdb_dialog_new (gimp, context, gimp->pattern_factory->container, + ! gimp_pdb_dialog_new (gimp, context, progress, + gimp->pattern_factory->container, popup_title, pattern_callback, initial_pattern, NULL)) success = FALSE;