diff options
author | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-30 18:54:43 +0000 |
---|---|---|
committer | avi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-30 18:54:43 +0000 |
commit | f7987cf0ff7c4fd69d0a2e59861e8c21a169f176 (patch) | |
tree | 179e12a4a8703a48c3d1053dae97adb714c1c89b /chrome/browser/platform_util_common_linux.cc | |
parent | 2ba83f79188bf7b9bc6589c163c8978c1a9b6e3f (diff) | |
download | chromium_src-f7987cf0ff7c4fd69d0a2e59861e8c21a169f176.zip chromium_src-f7987cf0ff7c4fd69d0a2e59861e8c21a169f176.tar.gz chromium_src-f7987cf0ff7c4fd69d0a2e59861e8c21a169f176.tar.bz2 |
Make a new yes/no messagebox wrapper function, use it in the bookmark alert.
BUG=http://crbug.com/34481; http://crbug.com/40011
TEST=on Mac/ChromeOS, have at least 15 bookmarks on bookmarks bar or other bookmarks,
right click on one of those and click on Open all bookmarks. An confirmation
dialog box should be shown. No other visible change.
Review URL: http://codereview.chromium.org/1687017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46101 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/platform_util_common_linux.cc')
-rw-r--r-- | chrome/browser/platform_util_common_linux.cc | 48 |
1 files changed, 35 insertions, 13 deletions
diff --git a/chrome/browser/platform_util_common_linux.cc b/chrome/browser/platform_util_common_linux.cc index 328d260..80fc66c 100644 --- a/chrome/browser/platform_util_common_linux.cc +++ b/chrome/browser/platform_util_common_linux.cc @@ -14,6 +14,28 @@ #include "gfx/native_widget_types.h" #include "googleurl/src/gurl.h" +namespace { + +void SetDialogTitle(GtkWidget* dialog, const string16& title) { + gtk_window_set_title(GTK_WINDOW(dialog), UTF16ToUTF8(title).c_str()); + + // Make sure it's big enough to show the title. + GtkRequisition req; + gtk_widget_size_request(dialog, &req); + int width; + gtk_util::GetWidgetSizeFromCharacters(dialog, title.length(), 0, + &width, NULL); + // The fudge factor accounts for extra space needed by the frame + // decorations as well as width differences between average text and the + // actual title text. + width = width * 1.2 + 50; + + if (width > req.width) + gtk_widget_set_size_request(dialog, width, -1); +} + +} // namespace + namespace platform_util { gfx::NativeWindow GetTopLevel(gfx::NativeView view) { @@ -37,24 +59,24 @@ void SimpleErrorBox(gfx::NativeWindow parent, GtkWidget* dialog = gtk_message_dialog_new(parent, GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", UTF16ToUTF8(message).c_str()); gtk_util::ApplyMessageDialogQuirks(dialog); - gtk_window_set_title(GTK_WINDOW(dialog), UTF16ToUTF8(title).c_str()); + SetDialogTitle(dialog, title); g_signal_connect(dialog, "response", G_CALLBACK(gtk_widget_destroy), NULL); gtk_widget_show_all(dialog); +} - // Make sure it's big enough to show the title. - GtkRequisition req; - gtk_widget_size_request(dialog, &req); - int width; - gtk_util::GetWidgetSizeFromCharacters(dialog, title.length(), 0, - &width, NULL); - // The fudge factor accounts for extra space needed by the frame - // decorations as well as width differences between average text and the - // actual title text. - width = width * 1.2 + 50; +bool SimpleYesNoBox(gfx::NativeWindow parent, + const string16& title, + const string16& message) { + GtkWidget* dialog = gtk_message_dialog_new(parent, GTK_DIALOG_MODAL, + GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "%s", + UTF16ToUTF8(message).c_str()); + gtk_util::ApplyMessageDialogQuirks(dialog); + SetDialogTitle(dialog, title); - if (width > req.width) - gtk_widget_set_size_request(dialog, width, -1); + gint result = gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); + return (result == GTK_RESPONSE_YES); } /* Warning: this may be either Linux or ChromeOS */ |