diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2004-10-27 04:02:22 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2004-10-27 04:02:22 +0800 |
commit | e254f96f141f66bd7669426d3a8543047d734bfa (patch) | |
tree | 35d93f1b6a42509fbcc3886a46bec12248ceab56 /src | |
parent | c463cbf5210374398fd6897eedbc2b3b2c2578f6 (diff) | |
download | gsoc2013-epiphany-e254f96f141f66bd7669426d3a8543047d734bfa.tar.gz gsoc2013-epiphany-e254f96f141f66bd7669426d3a8543047d734bfa.tar.zst gsoc2013-epiphany-e254f96f141f66bd7669426d3a8543047d734bfa.zip |
Use new gtk+ HIG message dialogue API. Fixes bug #130232.
2004-10-26 Christian Persch <chpe@cvs.gnome.org>
* lib/ephy-gui.c: (ephy_gui_confirm_overwrite_file):
* src/bookmarks/ephy-new-bookmark.c: (duplicate_dialog_construct):
* src/ephy-history-window.c: (confirmation_dialog_response_cb),
(confirmation_dialog_construct), (cmd_clear):
* src/ephy-session.c: (offer_to_resume):
* src/ephy-window.c: (confirm_close_with_modified_forms):
Use new gtk+ HIG message dialogue API. Fixes bug #130232.
Diffstat (limited to 'src')
-rw-r--r-- | src/bookmarks/ephy-new-bookmark.c | 67 | ||||
-rw-r--r-- | src/ephy-history-window.c | 113 | ||||
-rw-r--r-- | src/ephy-session.c | 76 | ||||
-rw-r--r-- | src/ephy-window.c | 60 |
4 files changed, 87 insertions, 229 deletions
diff --git a/src/bookmarks/ephy-new-bookmark.c b/src/bookmarks/ephy-new-bookmark.c index 9592f686e..1b37f6fa5 100644 --- a/src/bookmarks/ephy-new-bookmark.c +++ b/src/bookmarks/ephy-new-bookmark.c @@ -22,6 +22,13 @@ #include "config.h" #endif +#include "ephy-new-bookmark.h" +#include "ephy-state.h" +#include "ephy-topics-selector.h" +#include "ephy-debug.h" +#include "ephy-stock-icons.h" +#include "ephy-gui.h" + #include <gtk/gtktable.h> #include <gtk/gtklabel.h> #include <gtk/gtkentry.h> @@ -31,16 +38,11 @@ #include <gtk/gtkimage.h> #include <gtk/gtkscrolledwindow.h> #include <gtk/gtkeditable.h> +#include <gtk/gtkdialog.h> +#include <gtk/gtkmessagedialog.h> #include <glib/gi18n.h> #include <string.h> -#include "ephy-new-bookmark.h" -#include "ephy-state.h" -#include "ephy-topics-selector.h" -#include "ephy-debug.h" -#include "ephy-stock-icons.h" -#include "ephy-gui.h" - static void ephy_new_bookmark_class_init (EphyNewBookmarkClass *klass); static void ephy_new_bookmark_init (EphyNewBookmark *editor); static void ephy_new_bookmark_finalize (GObject *object); @@ -304,55 +306,20 @@ duplicate_dialog_construct (GtkWindow *parent, const char *title) { GtkWidget *dialog; - GtkWidget *hbox, *vbox, *label, *image; char *str, *tmp_str, *tmp_title; - /* FIXME: We "should" use gtk_message dialog here - * but it doesn't support markup of text yet - * so we build our own. See bug 65501. - */ - - dialog = gtk_dialog_new_with_buttons (_("Duplicated Bookmark"), - GTK_WINDOW (parent), - GTK_DIALOG_NO_SEPARATOR, - GTK_STOCK_OK, - GTK_RESPONSE_OK, - NULL); - - gtk_window_set_icon_name (GTK_WINDOW (dialog), "web-browser"); - - gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); - gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); - gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 14); - - hbox = gtk_hbox_new (FALSE, 6); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, - TRUE, TRUE, 0); - - image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_INFO, - GTK_ICON_SIZE_DIALOG); - gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0); - gtk_widget_show (image); - gtk_box_pack_start (GTK_BOX (hbox), image, TRUE, TRUE, 0); - - vbox = gtk_vbox_new (FALSE, 6); - gtk_widget_show (vbox); - gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0); - - label = gtk_label_new (NULL); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); tmp_title = g_markup_printf_escaped ("<b>%s</b>", title); tmp_str = g_strdup_printf (_("A bookmark titled %s already exists for this page."), - tmp_title); + tmp_title); str = g_strconcat ("<big>", tmp_str, "</big>", NULL); - gtk_label_set_markup (GTK_LABEL (label), str); - g_free (tmp_title); - g_free (tmp_str); + + dialog = gtk_message_dialog_new (GTK_WINDOW (parent), GTK_DIALOG_MODAL, + GTK_MESSAGE_INFO, GTK_BUTTONS_OK, NULL); + gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (dialog), str); g_free (str); - gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0); - gtk_widget_show (label); + + gtk_window_set_title (GTK_WINDOW (dialog), _("Duplicated Bookmark")); + gtk_window_set_icon_name (GTK_WINDOW (dialog), "web-browser"); return dialog; } diff --git a/src/ephy-history-window.c b/src/ephy-history-window.c index bfcb06a50..303ebc3a7 100644 --- a/src/ephy-history-window.c +++ b/src/ephy-history-window.c @@ -41,6 +41,8 @@ #include <gtk/gtkcombobox.h> #include <gtk/gtkuimanager.h> #include <gdk/gdkkeysyms.h> +#include <gtk/gtkdialog.h> +#include <gtk/gtkmessagedialog.h> #include <glib/gi18n.h> #include <libgnomeui/gnome-stock-icons.h> #include <string.h> @@ -226,99 +228,42 @@ static GtkRadioActionEntry ephy_history_radio_entries [] = }; static guint ephy_history_n_radio_entries = G_N_ELEMENTS (ephy_history_radio_entries); - static void -confirmation_dialog_response_cb (GtkDialog *dialog, gint response, +confirmation_dialog_response_cb (GtkWidget *dialog, + int response, EphyHistoryWindow *editor) { - gtk_widget_destroy (GTK_WIDGET (dialog)); - - if (response != GTK_RESPONSE_OK) - return; + gtk_widget_destroy (dialog); - ephy_history_clear (editor->priv->history); + if (response == GTK_RESPONSE_ACCEPT) + { + ephy_history_clear (editor->priv->history); + } } static GtkWidget * confirmation_dialog_construct (EphyHistoryWindow *editor) { GtkWidget *dialog; - GtkWidget *label; - GtkWidget *vbox; - GtkWidget *hbox; - GtkWidget *image; - GtkWidget *button; - GtkWidget *align; - char *str; - - dialog = gtk_dialog_new_with_buttons (_("Clear History"), - GTK_WINDOW (editor), - GTK_DIALOG_DESTROY_WITH_PARENT | - GTK_DIALOG_NO_SEPARATOR, - NULL); - gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); - gtk_container_set_border_width (GTK_CONTAINER (dialog), 6); - gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 12); - - gtk_dialog_add_button (GTK_DIALOG (dialog), GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); - button = gtk_button_new (); - gtk_widget_show (button); - gtk_dialog_add_action_widget (GTK_DIALOG (dialog), button, GTK_RESPONSE_OK); - GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); - - gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); - - align = gtk_alignment_new (0.5, 0.5, 0.0, 0.0); - gtk_widget_show (align); - gtk_container_add (GTK_CONTAINER (button), align); - - hbox = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox); - gtk_container_add (GTK_CONTAINER (align), hbox); - - image = gtk_image_new_from_stock (GTK_STOCK_CLEAR, GTK_ICON_SIZE_BUTTON); - gtk_widget_show (image); - gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0); - - label = gtk_label_new_with_mnemonic (_("C_lear")); - gtk_widget_show (label); - gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); - - hbox = gtk_hbox_new (FALSE, 12); - gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, - TRUE, TRUE, 0); - - image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING, - GTK_ICON_SIZE_DIALOG); - gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0); - gtk_widget_show (image); - gtk_box_pack_start (GTK_BOX (hbox), image, TRUE, TRUE, 0); - - vbox = gtk_vbox_new (FALSE, 6); - gtk_widget_show (vbox); - gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0); - - label = gtk_label_new (NULL); - gtk_label_set_selectable (GTK_LABEL (label), TRUE); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); - str = g_strconcat ("<b><big>", _("Clear browsing history?"), - "</big></b>", NULL); - gtk_label_set_markup (GTK_LABEL (label), str); - g_free (str); - gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0); - gtk_widget_show (label); - - label = gtk_label_new (_("Clearing the browsing history will cause all" - " history links to be permanently deleted.")); - gtk_label_set_selectable (GTK_LABEL (label), TRUE); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); - gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0); - gtk_widget_show (label); + dialog = gtk_message_dialog_new + (GTK_WINDOW (editor), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_CANCEL, + _("Clear browsing history?")); + + gtk_message_dialog_format_secondary_text + (GTK_MESSAGE_DIALOG (dialog), + _("Clearing the browsing history will cause all" + " history links to be permanently deleted.")); + + gtk_dialog_add_button (GTK_DIALOG (dialog), + _("C_lear"), GTK_RESPONSE_ACCEPT); + gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CANCEL); + + gtk_window_set_title (GTK_WINDOW (dialog), _("Clear History")); + gtk_window_set_icon_name (GTK_WINDOW (dialog), "web-browser"); g_signal_connect (dialog, "response", G_CALLBACK (confirmation_dialog_response_cb), @@ -334,8 +279,8 @@ cmd_clear (GtkAction *action, if (editor->priv->confirmation_dialog == NULL) { editor->priv->confirmation_dialog = confirmation_dialog_construct (editor); - g_object_add_weak_pointer (G_OBJECT(editor->priv->confirmation_dialog), - (gpointer *)&editor->priv->confirmation_dialog); + g_object_add_weak_pointer (G_OBJECT (editor->priv->confirmation_dialog), + (gpointer *) &editor->priv->confirmation_dialog); } gtk_widget_show (editor->priv->confirmation_dialog); diff --git a/src/ephy-session.c b/src/ephy-session.c index 9a857ab83..42a6b8af5 100644 --- a/src/ephy-session.c +++ b/src/ephy-session.c @@ -39,12 +39,13 @@ #include <glib/gi18n.h> #include <string.h> -#include <gtk/gtkdialog.h> #include <gtk/gtkimage.h> #include <gtk/gtklabel.h> #include <gtk/gtkstock.h> #include <gtk/gtkhbox.h> #include <gtk/gtkvbox.h> +#include <gtk/gtkdialog.h> +#include <gtk/gtkmessagedialog.h> #include <libgnomevfs/gnome-vfs-ops.h> #include <libxml/tree.h> #include <libxml/xmlwriter.h> @@ -365,60 +366,29 @@ static gboolean offer_to_resume (EphySession *session) { GtkWidget *dialog; - GtkWidget *label; - GtkWidget *vbox; - GtkWidget *hbox; - GtkWidget *image; - char *str; int response; - dialog = gtk_dialog_new_with_buttons - (_("Crash Recovery"), NULL, - GTK_DIALOG_NO_SEPARATOR, - _("_Don't Recover"), GTK_RESPONSE_CANCEL, - _("_Recover"), GTK_RESPONSE_OK, - NULL); + dialog = gtk_message_dialog_new + (NULL, + GTK_DIALOG_MODAL, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_NONE, + _("Epiphany appears to have crashed or been killed the last time it was run.")); + + gtk_message_dialog_format_secondary_text + (GTK_MESSAGE_DIALOG (dialog), + _("You can recover the opened tabs and windows.")); + + gtk_dialog_add_button (GTK_DIALOG (dialog), + _("_Don't Recover"), GTK_RESPONSE_CANCEL); + gtk_dialog_add_button (GTK_DIALOG (dialog), + _("_Recover"), GTK_RESPONSE_ACCEPT); + + gtk_window_set_title (GTK_WINDOW (dialog), _("Crash Recovery")); + gtk_window_set_icon_name (GTK_WINDOW (dialog), "web-browser"); + gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_ACCEPT); + session->priv->resume_dialog = dialog; - gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); - gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); - gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); - gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 14); - - hbox = gtk_hbox_new (FALSE, 6); - gtk_container_set_border_width (GTK_CONTAINER (GTK_BOX (hbox)), 5); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, - TRUE, TRUE, 0); - - image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING, - GTK_ICON_SIZE_DIALOG); - gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0); - gtk_widget_show (image); - gtk_box_pack_start (GTK_BOX (hbox), image, - TRUE, TRUE, 0); - - vbox = gtk_vbox_new (FALSE, 6); - gtk_widget_show (vbox); - gtk_box_pack_start (GTK_BOX (hbox), vbox, - TRUE, TRUE, 0); - - label = gtk_label_new (NULL); - gtk_label_set_selectable (GTK_LABEL (label), TRUE); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); - gtk_widget_show (label); - str = g_strconcat ("<b>", _("Epiphany appears to have crashed or been killed the last time it was run."), - "</b>", NULL); - gtk_label_set_markup (GTK_LABEL (label), str); - gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0); - g_free (str); - - label = gtk_label_new (_("You can recover the opened tabs and windows.")); - gtk_label_set_selectable (GTK_LABEL (label), TRUE); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_widget_show (label); - gtk_box_pack_start (GTK_BOX (vbox), label, - TRUE, TRUE, 0); response = gtk_dialog_run (GTK_DIALOG (dialog)); @@ -426,7 +396,7 @@ offer_to_resume (EphySession *session) session->priv->resume_dialog = NULL; - return (response == GTK_RESPONSE_OK); + return (response == GTK_RESPONSE_ACCEPT); } /** diff --git a/src/ephy-window.c b/src/ephy-window.c index fd683a529..fc7a6aa37 100644 --- a/src/ephy-window.c +++ b/src/ephy-window.c @@ -668,57 +668,33 @@ static gboolean confirm_close_with_modified_forms (EphyWindow *window) { GtkWidget *dialog; - GtkWidget *hbox, *vbox, *label, *image; - char *text; int response; - dialog = gtk_dialog_new_with_buttons ("", - GTK_WINDOW (window), - GTK_DIALOG_NO_SEPARATOR | GTK_DIALOG_MODAL, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - _("Close _Document"), GTK_RESPONSE_OK, - NULL); - - gtk_window_set_icon_name (GTK_WINDOW (dialog), "web-browser"); - - gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); - gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); - gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 14); - - hbox = gtk_hbox_new (FALSE, 6); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), hbox, - TRUE, TRUE, 0); - - image = gtk_image_new_from_stock (GTK_STOCK_DIALOG_WARNING, - GTK_ICON_SIZE_DIALOG); - gtk_misc_set_alignment (GTK_MISC (image), 0.5, 0.0); - gtk_widget_show (image); - gtk_box_pack_start (GTK_BOX (hbox), image, TRUE, TRUE, 0); - - vbox = gtk_vbox_new (FALSE, 6); - gtk_widget_show (vbox); - gtk_box_pack_start (GTK_BOX (hbox), vbox, TRUE, TRUE, 0); - - label = gtk_label_new (NULL); - gtk_label_set_selectable (GTK_LABEL (label), TRUE); - gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5); - gtk_label_set_line_wrap (GTK_LABEL (label), TRUE); + dialog = gtk_message_dialog_new + (GTK_WINDOW (window), + GTK_DIALOG_MODAL, + GTK_MESSAGE_WARNING, + GTK_BUTTONS_CANCEL, + _("There are unsubmitted changes to form elements.")); + + gtk_message_dialog_format_secondary_text + (GTK_MESSAGE_DIALOG (dialog), + _("If you close the document anyway, " + "you will lose that information.")); + + gtk_dialog_add_button (GTK_DIALOG (dialog), + _("Close _Document"), GTK_RESPONSE_ACCEPT); - text = g_strdup_printf ("<span weight=\"bold\" size=\"larger\">%s</span>\n\n%s", - _("There are unsubmitted changes to form elements."), - _("If you close the document anyway, you will lose that information.")); - gtk_label_set_markup (GTK_LABEL (label), text); - g_free (text); + gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_CANCEL); - gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, TRUE, 0); - gtk_widget_show (label); + /* FIXME set title */ + gtk_window_set_icon_name (GTK_WINDOW (dialog), "web-browser"); response = gtk_dialog_run (GTK_DIALOG (dialog)); gtk_widget_destroy (dialog); - return response == GTK_RESPONSE_OK; + return response == GTK_RESPONSE_ACCEPT; } static void |