summaryrefslogtreecommitdiffstats
path: root/chrome/browser/platform_util_common_linux.cc
diff options
context:
space:
mode:
authoravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-30 18:54:43 +0000
committeravi@chromium.org <avi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-30 18:54:43 +0000
commitf7987cf0ff7c4fd69d0a2e59861e8c21a169f176 (patch)
tree179e12a4a8703a48c3d1053dae97adb714c1c89b /chrome/browser/platform_util_common_linux.cc
parent2ba83f79188bf7b9bc6589c163c8978c1a9b6e3f (diff)
downloadchromium_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.cc48
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 */