Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Side by Side Diff: chrome/browser/ui/gtk/js_modal_dialog_gtk.cc

Issue 7096016: Remove JS dialog dependency from content. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: now a tc delegate Created 9 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/gtk/js_modal_dialog_gtk.h" 5 #include "chrome/browser/ui/gtk/js_modal_dialog_gtk.h"
6 6
7 #include <gtk/gtk.h> 7 #include <gtk/gtk.h>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/utf_string_conversions.h" 10 #include "base/utf_string_conversions.h"
11 #include "chrome/browser/ui/app_modal_dialogs/js_modal_dialog.h" 11 #include "chrome/browser/ui/app_modal_dialogs/js_modal_dialog.h"
12 #include "chrome/browser/ui/gtk/gtk_util.h" 12 #include "chrome/browser/ui/gtk/gtk_util.h"
13 #include "grit/generated_resources.h" 13 #include "grit/generated_resources.h"
14 #include "grit/locale_settings.h" 14 #include "grit/locale_settings.h"
15 #include "ui/base/l10n/l10n_util.h" 15 #include "ui/base/l10n/l10n_util.h"
16 #include "ui/base/message_box_flags.h" 16 #include "ui/base/message_box_flags.h"
17 17
18 namespace { 18 namespace {
19 19
20 // We stash pointers to widgets on the gtk_dialog so we can refer to them 20 // We stash pointers to widgets on the gtk_dialog so we can refer to them
21 // after dialog creation. 21 // after dialog creation.
22 const char kPromptTextId[] = "chrome_prompt_text"; 22 const char kPromptTextId[] = "chrome_prompt_text";
23 const char kSuppressCheckboxId[] = "chrome_suppress_checkbox"; 23 const char kSuppressCheckboxId[] = "chrome_suppress_checkbox";
24 24
25 // If there's a text entry in the dialog, get the text from the first one and 25 // If there's a text entry in the dialog, get the text from the first one and
26 // return it. 26 // return it.
27 std::wstring GetPromptText(GtkDialog* dialog) { 27 string16 GetPromptText(GtkDialog* dialog) {
28 GtkWidget* widget = static_cast<GtkWidget*>( 28 GtkWidget* widget = static_cast<GtkWidget*>(
29 g_object_get_data(G_OBJECT(dialog), kPromptTextId)); 29 g_object_get_data(G_OBJECT(dialog), kPromptTextId));
30 if (widget) 30 if (widget)
31 return UTF8ToWide(gtk_entry_get_text(GTK_ENTRY(widget))); 31 return UTF8ToUTF16(gtk_entry_get_text(GTK_ENTRY(widget)));
32 return std::wstring(); 32 return string16();
33 } 33 }
34 34
35 // If there's a toggle button in the dialog, return the toggled state. 35 // If there's a toggle button in the dialog, return the toggled state.
36 // Otherwise, return false. 36 // Otherwise, return false.
37 bool ShouldSuppressJSDialogs(GtkDialog* dialog) { 37 bool ShouldSuppressJSDialogs(GtkDialog* dialog) {
38 GtkWidget* widget = static_cast<GtkWidget*>( 38 GtkWidget* widget = static_cast<GtkWidget*>(
39 g_object_get_data(G_OBJECT(dialog), kSuppressCheckboxId)); 39 g_object_get_data(G_OBJECT(dialog), kSuppressCheckboxId));
40 if (widget) 40 if (widget)
41 return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); 41 return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
42 return false; 42 return false;
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 default: 80 default:
81 NOTREACHED(); 81 NOTREACHED();
82 } 82 }
83 83
84 // We want the alert to be app modal so put all the browser windows into the 84 // We want the alert to be app modal so put all the browser windows into the
85 // same window group. 85 // same window group.
86 gtk_util::MakeAppModalWindowGroup(); 86 gtk_util::MakeAppModalWindowGroup();
87 87
88 gtk_dialog_ = gtk_message_dialog_new(parent_window, 88 gtk_dialog_ = gtk_message_dialog_new(parent_window,
89 GTK_DIALOG_MODAL, message_type, buttons, "%s", 89 GTK_DIALOG_MODAL, message_type, buttons, "%s",
90 WideToUTF8(dialog_->message_text()).c_str()); 90 UTF16ToUTF8(dialog_->message_text()).c_str());
91 g_signal_connect(gtk_dialog_, "delete-event", 91 g_signal_connect(gtk_dialog_, "delete-event",
92 G_CALLBACK(gtk_widget_hide_on_delete), NULL); 92 G_CALLBACK(gtk_widget_hide_on_delete), NULL);
93 gtk_util::ApplyMessageDialogQuirks(gtk_dialog_); 93 gtk_util::ApplyMessageDialogQuirks(gtk_dialog_);
94 gtk_window_set_title(GTK_WINDOW(gtk_dialog_), 94 gtk_window_set_title(GTK_WINDOW(gtk_dialog_),
95 WideToUTF8(dialog_->title()).c_str()); 95 UTF16ToUTF8(dialog_->title()).c_str());
96 96
97 // Adjust content area as needed. Set up the prompt text entry or 97 // Adjust content area as needed. Set up the prompt text entry or
98 // suppression check box. 98 // suppression check box.
99 if (ui::MessageBoxFlags::kIsJavascriptPrompt == dialog_->dialog_flags()) { 99 if (ui::MessageBoxFlags::kIsJavascriptPrompt == dialog_->dialog_flags()) {
100 // TODO(tc): Replace with gtk_dialog_get_content_area() when using GTK 2.14+ 100 // TODO(tc): Replace with gtk_dialog_get_content_area() when using GTK 2.14+
101 GtkWidget* contents_vbox = GTK_DIALOG(gtk_dialog_)->vbox; 101 GtkWidget* contents_vbox = GTK_DIALOG(gtk_dialog_)->vbox;
102 GtkWidget* text_box = gtk_entry_new(); 102 GtkWidget* text_box = gtk_entry_new();
103 gtk_entry_set_text(GTK_ENTRY(text_box), 103 gtk_entry_set_text(GTK_ENTRY(text_box),
104 WideToUTF8(dialog_->default_prompt_text()).c_str()); 104 UTF16ToUTF8(dialog_->default_prompt_text()).c_str());
105 gtk_box_pack_start(GTK_BOX(contents_vbox), text_box, TRUE, TRUE, 0); 105 gtk_box_pack_start(GTK_BOX(contents_vbox), text_box, TRUE, TRUE, 0);
106 g_object_set_data(G_OBJECT(gtk_dialog_), kPromptTextId, text_box); 106 g_object_set_data(G_OBJECT(gtk_dialog_), kPromptTextId, text_box);
107 gtk_entry_set_activates_default(GTK_ENTRY(text_box), TRUE); 107 gtk_entry_set_activates_default(GTK_ENTRY(text_box), TRUE);
108 } 108 }
109 109
110 if (dialog_->display_suppress_checkbox()) { 110 if (dialog_->display_suppress_checkbox()) {
111 GtkWidget* contents_vbox = GTK_DIALOG(gtk_dialog_)->vbox; 111 GtkWidget* contents_vbox = GTK_DIALOG(gtk_dialog_)->vbox;
112 GtkWidget* check_box = gtk_check_button_new_with_label( 112 GtkWidget* check_box = gtk_check_button_new_with_label(
113 l10n_util::GetStringUTF8( 113 l10n_util::GetStringUTF8(
114 IDS_JAVASCRIPT_MESSAGEBOX_SUPPRESS_OPTION).c_str()); 114 IDS_JAVASCRIPT_MESSAGEBOX_SUPPRESS_OPTION).c_str());
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 216
217 //////////////////////////////////////////////////////////////////////////////// 217 ////////////////////////////////////////////////////////////////////////////////
218 // NativeAppModalDialog, public: 218 // NativeAppModalDialog, public:
219 219
220 // static 220 // static
221 NativeAppModalDialog* NativeAppModalDialog::CreateNativeJavaScriptPrompt( 221 NativeAppModalDialog* NativeAppModalDialog::CreateNativeJavaScriptPrompt(
222 JavaScriptAppModalDialog* dialog, 222 JavaScriptAppModalDialog* dialog,
223 gfx::NativeWindow parent_window) { 223 gfx::NativeWindow parent_window) {
224 return new JSModalDialogGtk(dialog, parent_window); 224 return new JSModalDialogGtk(dialog, parent_window);
225 } 225 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698