From a90cc52db37dbfbd16a885b80e777d62b28d67a1 Mon Sep 17 00:00:00 2001 From: Michael Natterer Date: Thu, 10 Feb 2000 23:47:56 +0000 Subject: [PATCH] as all boolean query boxes are confirmations for deleting/closing 2000-02-10 Michael Natterer * libgimp/gimpquerybox.[ch]: as all boolean query boxes are confirmations for deleting/closing something, I added the "eek" wilber (you can still disable the pixmap by passing FALSE to the constructor's "eek" parameter). * app/app_procs.c * app/gdisplay_ops.c * app/gradient.c * app/palette.c * plug-ins/gflare/gflare.c: pass eek==TRUE to the boolean query box constructor. --- ChangeLog | 14 ++++++ app/app_procs.c | 77 +++++++++----------------------- app/display/gimpdisplay-ops.c | 1 + app/gdisplay_ops.c | 1 + app/gradient.c | 1 + app/gradient_editor.c | 1 + app/gui/gradient-editor.c | 1 + app/gui/palette-editor.c | 1 + app/palette.c | 1 + app/widgets/gimpgradienteditor.c | 1 + app/widgets/gimppaletteeditor.c | 1 + libgimp/gimpquerybox.c | 59 ++++++++++++++++++++---- libgimp/gimpquerybox.h | 1 + libgimpwidgets/gimpquerybox.c | 59 ++++++++++++++++++++---- libgimpwidgets/gimpquerybox.h | 1 + plug-ins/gflare/gflare.c | 1 + 16 files changed, 147 insertions(+), 74 deletions(-) diff --git a/ChangeLog b/ChangeLog index ff2e9bf898..5548bc2d1d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,17 @@ +2000-02-10 Michael Natterer + + * libgimp/gimpquerybox.[ch]: as all boolean query boxes are + confirmations for deleting/closing something, I added the "eek" + wilber (you can still disable the pixmap by passing FALSE to the + constructor's "eek" parameter). + + * app/app_procs.c + * app/gdisplay_ops.c + * app/gradient.c + * app/palette.c + * plug-ins/gflare/gflare.c: pass eek==TRUE to the boolean query + box constructor. + Thu Feb 10 19:00:24 CET 2000 Sven Neumann * plug-ins/common/pnm.c: Removed pbm from the list of extensions diff --git a/app/app_procs.c b/app/app_procs.c index dd5e1a6fc3..fc055722e5 100644 --- a/app/app_procs.c +++ b/app/app_procs.c @@ -97,8 +97,6 @@ #include "libgimp/gimplimits.h" #include "libgimp/gimpintl.h" -#include "pixmaps/eek.xpm" - #define LOGO_WIDTH_MIN 300 #define LOGO_HEIGHT_MIN 110 #define AUTHORS "Spencer Kimball & Peter Mattis" @@ -120,7 +118,7 @@ static void toast_old_temp_files (void); static gint is_app_exit_finish_done = FALSE; -int we_are_exiting = FALSE; +gint we_are_exiting = FALSE; static GtkWidget *logo_area = NULL; static GdkPixmap *logo_pixmap = NULL; @@ -708,70 +706,37 @@ app_exit (gboolean kill_it) static void really_quit_callback (GtkButton *button, - GtkWidget *dialog) + gboolean quit, + gpointer data) { - gtk_widget_destroy (dialog); - app_exit_finish (); -} - -static void -really_quit_cancel_callback (GtkWidget *widget, - GtkWidget *dialog) -{ - menus_set_sensitive ("/File/Quit", TRUE); - menus_set_sensitive ("/File/Quit", TRUE); - gtk_widget_destroy (dialog); + if (quit) + { + app_exit_finish (); + } + else + { + menus_set_sensitive ("/File/Quit", TRUE); + menus_set_sensitive ("/File/Quit", TRUE); + } } static void really_quit_dialog (void) { GtkWidget *dialog; - GtkWidget *hbox; - GtkWidget *pixmap_widget; - GdkPixmap *pixmap; - GdkBitmap *mask; - GtkStyle *style; - GtkWidget *label; menus_set_sensitive ("/File/Quit", FALSE); menus_set_sensitive ("/File/Quit", FALSE); - dialog = gimp_dialog_new (_("Really Quit?"), "really_quit", - gimp_standard_help_func, - "dialogs/really_quit.html", - GTK_WIN_POS_MOUSE, - FALSE, FALSE, FALSE, - - _("Quit"), really_quit_callback, - NULL, NULL, NULL, FALSE, FALSE, - _("Cancel"), really_quit_cancel_callback, - NULL, NULL, NULL, TRUE, TRUE, - - NULL); - - hbox = gtk_hbox_new (FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox), 4); - gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), hbox); - gtk_widget_show (hbox); - - gtk_widget_realize (dialog); - style = gtk_widget_get_style (dialog); - - pixmap = gdk_pixmap_create_from_xpm_d (dialog->window, - &mask, - &style->bg[GTK_STATE_NORMAL], - eek_xpm); - pixmap_widget = gtk_pixmap_new (pixmap, mask); - gtk_box_pack_start (GTK_BOX (hbox), pixmap_widget, FALSE, FALSE, 10); - gtk_widget_show (pixmap_widget); - - gdk_pixmap_unref (pixmap); - - label = gtk_label_new (_("Some files unsaved.\n\nQuit the GIMP?")); - gtk_misc_set_padding (GTK_MISC (label), 10, 10); - gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0); - gtk_widget_show (label); + dialog = gimp_query_boolean_box (_("Really Quit?"), + gimp_standard_help_func, + "dialogs/really_quit.html", + TRUE, + _("Some files unsaved.\n\nQuit the GIMP?"), + _("Quit"), _("Cancel"), + NULL, NULL, + really_quit_callback, + NULL); gtk_widget_show (dialog); } diff --git a/app/display/gimpdisplay-ops.c b/app/display/gimpdisplay-ops.c index f46595621b..c95e0f7427 100644 --- a/app/display/gimpdisplay-ops.c +++ b/app/display/gimpdisplay-ops.c @@ -349,6 +349,7 @@ gdisplay_close_warning_dialog (gchar *image_name, gimp_query_boolean_box (image_name, gimp_standard_help_func, "dialogs/really_close.html", + TRUE, warning_buf, _("Close"), _("Cancel"), NULL, NULL, diff --git a/app/gdisplay_ops.c b/app/gdisplay_ops.c index f46595621b..c95e0f7427 100644 --- a/app/gdisplay_ops.c +++ b/app/gdisplay_ops.c @@ -349,6 +349,7 @@ gdisplay_close_warning_dialog (gchar *image_name, gimp_query_boolean_box (image_name, gimp_standard_help_func, "dialogs/really_close.html", + TRUE, warning_buf, _("Close"), _("Cancel"), NULL, NULL, diff --git a/app/gradient.c b/app/gradient.c index bc9570e197..0bf9799e08 100644 --- a/app/gradient.c +++ b/app/gradient.c @@ -1784,6 +1784,7 @@ ed_delete_gradient_callback (GtkWidget *widget, gimp_query_boolean_box (_("Delete Gradient"), gimp_standard_help_func, "dialogs/gradient_editor/delete_gradient.html", + TRUE, str, _("Delete"), _("Cancel"), NULL, NULL, diff --git a/app/gradient_editor.c b/app/gradient_editor.c index bc9570e197..0bf9799e08 100644 --- a/app/gradient_editor.c +++ b/app/gradient_editor.c @@ -1784,6 +1784,7 @@ ed_delete_gradient_callback (GtkWidget *widget, gimp_query_boolean_box (_("Delete Gradient"), gimp_standard_help_func, "dialogs/gradient_editor/delete_gradient.html", + TRUE, str, _("Delete"), _("Cancel"), NULL, NULL, diff --git a/app/gui/gradient-editor.c b/app/gui/gradient-editor.c index bc9570e197..0bf9799e08 100644 --- a/app/gui/gradient-editor.c +++ b/app/gui/gradient-editor.c @@ -1784,6 +1784,7 @@ ed_delete_gradient_callback (GtkWidget *widget, gimp_query_boolean_box (_("Delete Gradient"), gimp_standard_help_func, "dialogs/gradient_editor/delete_gradient.html", + TRUE, str, _("Delete"), _("Cancel"), NULL, NULL, diff --git a/app/gui/palette-editor.c b/app/gui/palette-editor.c index 24a15155f3..a6b095a03a 100644 --- a/app/gui/palette-editor.c +++ b/app/gui/palette-editor.c @@ -1839,6 +1839,7 @@ palette_dialog_delete_callback (GtkWidget *widget, dialog = gimp_query_boolean_box (_("Delete Palette"), gimp_standard_help_func, "dialogs/palette_editor/delete_palette.html", + TRUE, str, _("Delete"), _("Cancel"), NULL, NULL, diff --git a/app/palette.c b/app/palette.c index 24a15155f3..a6b095a03a 100644 --- a/app/palette.c +++ b/app/palette.c @@ -1839,6 +1839,7 @@ palette_dialog_delete_callback (GtkWidget *widget, dialog = gimp_query_boolean_box (_("Delete Palette"), gimp_standard_help_func, "dialogs/palette_editor/delete_palette.html", + TRUE, str, _("Delete"), _("Cancel"), NULL, NULL, diff --git a/app/widgets/gimpgradienteditor.c b/app/widgets/gimpgradienteditor.c index bc9570e197..0bf9799e08 100644 --- a/app/widgets/gimpgradienteditor.c +++ b/app/widgets/gimpgradienteditor.c @@ -1784,6 +1784,7 @@ ed_delete_gradient_callback (GtkWidget *widget, gimp_query_boolean_box (_("Delete Gradient"), gimp_standard_help_func, "dialogs/gradient_editor/delete_gradient.html", + TRUE, str, _("Delete"), _("Cancel"), NULL, NULL, diff --git a/app/widgets/gimppaletteeditor.c b/app/widgets/gimppaletteeditor.c index 24a15155f3..a6b095a03a 100644 --- a/app/widgets/gimppaletteeditor.c +++ b/app/widgets/gimppaletteeditor.c @@ -1839,6 +1839,7 @@ palette_dialog_delete_callback (GtkWidget *widget, dialog = gimp_query_boolean_box (_("Delete Palette"), gimp_standard_help_func, "dialogs/palette_editor/delete_palette.html", + TRUE, str, _("Delete"), _("Cancel"), NULL, NULL, diff --git a/libgimp/gimpquerybox.c b/libgimp/gimpquerybox.c index db426aef30..8cfb1a801a 100644 --- a/libgimp/gimpquerybox.c +++ b/libgimp/gimpquerybox.c @@ -25,6 +25,8 @@ #include "libgimp-intl.h" +#include "pixmaps/eek.xpm" + /* * String, integer, double and size query boxes */ @@ -90,7 +92,7 @@ create_query_box (gchar *title, { QueryBox *query_box; GtkWidget *qbox; - GtkWidget *vbox; + GtkWidget *vbox = NULL; GtkWidget *label; query_box = g_new (QueryBox, 1); @@ -115,14 +117,17 @@ create_query_box (gchar *title, else object = NULL; - vbox = gtk_vbox_new (FALSE, 2); - gtk_container_set_border_width (GTK_CONTAINER (vbox), 6); - gtk_container_add (GTK_CONTAINER (GTK_DIALOG (qbox)->vbox), vbox); - gtk_widget_show (vbox); + if (message) + { + vbox = gtk_vbox_new (FALSE, 2); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 6); + gtk_container_add (GTK_CONTAINER (GTK_DIALOG (qbox)->vbox), vbox); + gtk_widget_show (vbox); - label = gtk_label_new (message); - gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); - gtk_widget_show (label); + label = gtk_label_new (message); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); + gtk_widget_show (label); + } query_box->qbox = qbox; query_box->vbox = vbox; @@ -295,6 +300,7 @@ GtkWidget * gimp_query_boolean_box (gchar *title, GimpHelpFunc help_func, gchar *help_data, + gboolean eek, gchar *message, gchar *true_button, gchar *false_button, @@ -304,15 +310,50 @@ gimp_query_boolean_box (gchar *title, gpointer data) { QueryBox *query_box; + GtkWidget *hbox; + GtkWidget *pixmap_widget; + GtkWidget *label; + + static GdkPixmap *eek_pixmap = NULL; + static GdkBitmap *eek_mask = NULL; query_box = create_query_box (title, help_func, help_data, boolean_query_box_true_callback, boolean_query_box_false_callback, - message, + eek ? NULL : message, true_button, false_button, object, signal, callback, data); + if (!eek) + return query_box->qbox; + + hbox = gtk_hbox_new (FALSE, 10); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 10); + gtk_container_add (GTK_CONTAINER (GTK_DIALOG (query_box->qbox)->vbox), hbox); + gtk_widget_show (hbox); + + if (!eek_pixmap) + { + GtkStyle *style; + + gtk_widget_realize (query_box->qbox); + style = gtk_widget_get_style (query_box->qbox); + + eek_pixmap = gdk_pixmap_create_from_xpm_d (query_box->qbox->window, + &eek_mask, + &style->bg[GTK_STATE_NORMAL], + eek_xpm); + } + + pixmap_widget = gtk_pixmap_new (eek_pixmap, eek_mask); + gtk_box_pack_start (GTK_BOX (hbox), pixmap_widget, FALSE, FALSE, 0); + gtk_widget_show (pixmap_widget); + + label = gtk_label_new (message); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); + gtk_widget_show (label); + return query_box->qbox; } diff --git a/libgimp/gimpquerybox.h b/libgimp/gimpquerybox.h index 006f863e8d..64442f081c 100644 --- a/libgimp/gimpquerybox.h +++ b/libgimp/gimpquerybox.h @@ -108,6 +108,7 @@ GtkWidget * gimp_query_size_box (gchar *title, GtkWidget * gimp_query_boolean_box (gchar *title, GimpHelpFunc help_func, gchar *help_data, + gboolean eek, gchar *message, gchar *true_button, gchar *false_button, diff --git a/libgimpwidgets/gimpquerybox.c b/libgimpwidgets/gimpquerybox.c index db426aef30..8cfb1a801a 100644 --- a/libgimpwidgets/gimpquerybox.c +++ b/libgimpwidgets/gimpquerybox.c @@ -25,6 +25,8 @@ #include "libgimp-intl.h" +#include "pixmaps/eek.xpm" + /* * String, integer, double and size query boxes */ @@ -90,7 +92,7 @@ create_query_box (gchar *title, { QueryBox *query_box; GtkWidget *qbox; - GtkWidget *vbox; + GtkWidget *vbox = NULL; GtkWidget *label; query_box = g_new (QueryBox, 1); @@ -115,14 +117,17 @@ create_query_box (gchar *title, else object = NULL; - vbox = gtk_vbox_new (FALSE, 2); - gtk_container_set_border_width (GTK_CONTAINER (vbox), 6); - gtk_container_add (GTK_CONTAINER (GTK_DIALOG (qbox)->vbox), vbox); - gtk_widget_show (vbox); + if (message) + { + vbox = gtk_vbox_new (FALSE, 2); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 6); + gtk_container_add (GTK_CONTAINER (GTK_DIALOG (qbox)->vbox), vbox); + gtk_widget_show (vbox); - label = gtk_label_new (message); - gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); - gtk_widget_show (label); + label = gtk_label_new (message); + gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); + gtk_widget_show (label); + } query_box->qbox = qbox; query_box->vbox = vbox; @@ -295,6 +300,7 @@ GtkWidget * gimp_query_boolean_box (gchar *title, GimpHelpFunc help_func, gchar *help_data, + gboolean eek, gchar *message, gchar *true_button, gchar *false_button, @@ -304,15 +310,50 @@ gimp_query_boolean_box (gchar *title, gpointer data) { QueryBox *query_box; + GtkWidget *hbox; + GtkWidget *pixmap_widget; + GtkWidget *label; + + static GdkPixmap *eek_pixmap = NULL; + static GdkBitmap *eek_mask = NULL; query_box = create_query_box (title, help_func, help_data, boolean_query_box_true_callback, boolean_query_box_false_callback, - message, + eek ? NULL : message, true_button, false_button, object, signal, callback, data); + if (!eek) + return query_box->qbox; + + hbox = gtk_hbox_new (FALSE, 10); + gtk_container_set_border_width (GTK_CONTAINER (hbox), 10); + gtk_container_add (GTK_CONTAINER (GTK_DIALOG (query_box->qbox)->vbox), hbox); + gtk_widget_show (hbox); + + if (!eek_pixmap) + { + GtkStyle *style; + + gtk_widget_realize (query_box->qbox); + style = gtk_widget_get_style (query_box->qbox); + + eek_pixmap = gdk_pixmap_create_from_xpm_d (query_box->qbox->window, + &eek_mask, + &style->bg[GTK_STATE_NORMAL], + eek_xpm); + } + + pixmap_widget = gtk_pixmap_new (eek_pixmap, eek_mask); + gtk_box_pack_start (GTK_BOX (hbox), pixmap_widget, FALSE, FALSE, 0); + gtk_widget_show (pixmap_widget); + + label = gtk_label_new (message); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); + gtk_widget_show (label); + return query_box->qbox; } diff --git a/libgimpwidgets/gimpquerybox.h b/libgimpwidgets/gimpquerybox.h index 006f863e8d..64442f081c 100644 --- a/libgimpwidgets/gimpquerybox.h +++ b/libgimpwidgets/gimpquerybox.h @@ -108,6 +108,7 @@ GtkWidget * gimp_query_size_box (gchar *title, GtkWidget * gimp_query_boolean_box (gchar *title, GimpHelpFunc help_func, gchar *help_data, + gboolean eek, gchar *message, gchar *true_button, gchar *false_button, diff --git a/plug-ins/gflare/gflare.c b/plug-ins/gflare/gflare.c index 1cc56a3d73..918af97eb5 100644 --- a/plug-ins/gflare/gflare.c +++ b/plug-ins/gflare/gflare.c @@ -3390,6 +3390,7 @@ dlg_selector_delete_callback (GtkWidget *widget, dialog = gimp_query_boolean_box (_("Delete GFlare"), gimp_plugin_help_func, "filters/gflare.html", + TRUE, str, _("Delete"), _("Cancel"), NULL, NULL,