Index: chrome/browser/ui/gtk/javascript_app_modal_dialog_gtk.cc |
diff --git a/chrome/browser/ui/gtk/javascript_app_modal_dialog_gtk.cc b/chrome/browser/ui/gtk/javascript_app_modal_dialog_gtk.cc |
deleted file mode 100644 |
index d2612d09227f9e09efb1cddfff9951ad19d3e7ad..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/gtk/javascript_app_modal_dialog_gtk.cc |
+++ /dev/null |
@@ -1,233 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "chrome/browser/ui/gtk/javascript_app_modal_dialog_gtk.h" |
- |
-#include <gtk/gtk.h> |
- |
-#include "base/logging.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "chrome/browser/ui/app_modal_dialogs/javascript_app_modal_dialog.h" |
-#include "chrome/browser/ui/gtk/gtk_util.h" |
-#include "grit/generated_resources.h" |
-#include "grit/locale_settings.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/base/ui_base_types.h" |
- |
-namespace { |
- |
-// We stash pointers to widgets on the gtk_dialog so we can refer to them |
-// after dialog creation. |
-const char kPromptTextId[] = "chrome_prompt_text"; |
-const char kSuppressCheckboxId[] = "chrome_suppress_checkbox"; |
- |
-// If there's a text entry in the dialog, get the text from the first one and |
-// return it. |
-base::string16 GetPromptText(GtkDialog* dialog) { |
- GtkWidget* widget = static_cast<GtkWidget*>( |
- g_object_get_data(G_OBJECT(dialog), kPromptTextId)); |
- if (widget) |
- return base::UTF8ToUTF16(gtk_entry_get_text(GTK_ENTRY(widget))); |
- return base::string16(); |
-} |
- |
-// If there's a toggle button in the dialog, return the toggled state. |
-// Otherwise, return false. |
-bool ShouldSuppressJSDialogs(GtkDialog* dialog) { |
- GtkWidget* widget = static_cast<GtkWidget*>( |
- g_object_get_data(G_OBJECT(dialog), kSuppressCheckboxId)); |
- if (widget) |
- return gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); |
- return false; |
-} |
- |
-} // namespace |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// JavaScriptAppModalDialogGtk, public: |
- |
-JavaScriptAppModalDialogGtk::JavaScriptAppModalDialogGtk( |
- JavaScriptAppModalDialog* dialog, |
- gfx::NativeWindow parent_window) |
- : dialog_(dialog) { |
- GtkButtonsType buttons = GTK_BUTTONS_NONE; |
- GtkMessageType message_type = GTK_MESSAGE_OTHER; |
- |
- // We add in the OK button manually later because we want to focus it |
- // explicitly. |
- switch (dialog_->javascript_message_type()) { |
- case content::JAVASCRIPT_MESSAGE_TYPE_ALERT: |
- buttons = GTK_BUTTONS_NONE; |
- message_type = GTK_MESSAGE_WARNING; |
- break; |
- |
- case content::JAVASCRIPT_MESSAGE_TYPE_CONFIRM: |
- if (dialog_->is_before_unload_dialog()) { |
- // onbeforeunload also uses a confirm prompt, it just has custom |
- // buttons. We add the buttons using gtk_dialog_add_button below. |
- buttons = GTK_BUTTONS_NONE; |
- } else { |
- buttons = GTK_BUTTONS_CANCEL; |
- } |
- message_type = GTK_MESSAGE_QUESTION; |
- break; |
- |
- case content::JAVASCRIPT_MESSAGE_TYPE_PROMPT: |
- buttons = GTK_BUTTONS_CANCEL; |
- message_type = GTK_MESSAGE_QUESTION; |
- break; |
- |
- default: |
- NOTREACHED(); |
- } |
- |
- // We want the alert to be app modal so put all the browser windows into the |
- // same window group. |
- gtk_util::MakeAppModalWindowGroup(); |
- |
- gtk_dialog_ = gtk_message_dialog_new(parent_window, |
- GTK_DIALOG_MODAL, message_type, buttons, "%s", |
- base::UTF16ToUTF8(dialog_->message_text()).c_str()); |
- g_signal_connect(gtk_dialog_, "delete-event", |
- G_CALLBACK(gtk_widget_hide_on_delete), NULL); |
- gtk_util::ApplyMessageDialogQuirks(gtk_dialog_); |
- gtk_window_set_title(GTK_WINDOW(gtk_dialog_), |
- base::UTF16ToUTF8(dialog_->title()).c_str()); |
- |
- // Adjust content area as needed. Set up the prompt text entry or |
- // suppression check box. |
- if (dialog_->javascript_message_type() == |
- content::JAVASCRIPT_MESSAGE_TYPE_PROMPT) { |
- GtkWidget* content_area = |
- gtk_dialog_get_content_area(GTK_DIALOG(gtk_dialog_)); |
- GtkWidget* text_box = gtk_entry_new(); |
- gtk_entry_set_text(GTK_ENTRY(text_box), |
- base::UTF16ToUTF8(dialog_->default_prompt_text()).c_str()); |
- gtk_box_pack_start(GTK_BOX(content_area), text_box, TRUE, TRUE, 0); |
- g_object_set_data(G_OBJECT(gtk_dialog_), kPromptTextId, text_box); |
- gtk_entry_set_activates_default(GTK_ENTRY(text_box), TRUE); |
- } |
- |
- if (dialog_->display_suppress_checkbox()) { |
- GtkWidget* content_area = |
- gtk_dialog_get_content_area(GTK_DIALOG(gtk_dialog_)); |
- GtkWidget* check_box = gtk_check_button_new_with_label( |
- l10n_util::GetStringUTF8( |
- IDS_JAVASCRIPT_MESSAGEBOX_SUPPRESS_OPTION).c_str()); |
- gtk_box_pack_start(GTK_BOX(content_area), check_box, TRUE, TRUE, 0); |
- g_object_set_data(G_OBJECT(gtk_dialog_), kSuppressCheckboxId, check_box); |
- } |
- |
- // Adjust buttons/action area as needed. |
- if (dialog_->is_before_unload_dialog()) { |
- std::string button_text = l10n_util::GetStringUTF8( |
- dialog_->is_reload() ? |
- IDS_BEFORERELOAD_MESSAGEBOX_OK_BUTTON_LABEL : |
- IDS_BEFOREUNLOAD_MESSAGEBOX_OK_BUTTON_LABEL); |
- gtk_dialog_add_button(GTK_DIALOG(gtk_dialog_), button_text.c_str(), |
- GTK_RESPONSE_OK); |
- |
- button_text = l10n_util::GetStringUTF8( |
- dialog_->is_reload() ? |
- IDS_BEFORERELOAD_MESSAGEBOX_CANCEL_BUTTON_LABEL : |
- IDS_BEFOREUNLOAD_MESSAGEBOX_CANCEL_BUTTON_LABEL); |
- gtk_dialog_add_button(GTK_DIALOG(gtk_dialog_), button_text.c_str(), |
- GTK_RESPONSE_CANCEL); |
- } else { |
- // Add the OK button and focus it. |
- GtkWidget* ok_button = gtk_dialog_add_button(GTK_DIALOG(gtk_dialog_), |
- GTK_STOCK_OK, GTK_RESPONSE_OK); |
- if (dialog_->javascript_message_type() != |
- content::JAVASCRIPT_MESSAGE_TYPE_PROMPT) |
- gtk_widget_grab_focus(ok_button); |
- } |
- |
- gtk_dialog_set_default_response(GTK_DIALOG(gtk_dialog_), GTK_RESPONSE_OK); |
- g_signal_connect(gtk_dialog_, "response", G_CALLBACK(OnResponseThunk), this); |
-} |
- |
-JavaScriptAppModalDialogGtk::~JavaScriptAppModalDialogGtk() { |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// JavaScriptAppModalDialogGtk, NativeAppModalDialog implementation: |
- |
-int JavaScriptAppModalDialogGtk::GetAppModalDialogButtons() const { |
- switch (dialog_->javascript_message_type()) { |
- case content::JAVASCRIPT_MESSAGE_TYPE_ALERT: |
- return ui::DIALOG_BUTTON_OK; |
- |
- case content::JAVASCRIPT_MESSAGE_TYPE_CONFIRM: |
- return ui::DIALOG_BUTTON_OK | ui::DIALOG_BUTTON_CANCEL; |
- |
- case content::JAVASCRIPT_MESSAGE_TYPE_PROMPT: |
- return ui::DIALOG_BUTTON_OK; |
- |
- default: |
- NOTREACHED(); |
- return 0; |
- } |
-} |
- |
-void JavaScriptAppModalDialogGtk::ShowAppModalDialog() { |
- gtk_util::ShowDialogWithMinLocalizedWidth(GTK_WIDGET(gtk_dialog_), |
- IDS_ALERT_DIALOG_WIDTH_CHARS); |
-} |
- |
-void JavaScriptAppModalDialogGtk::ActivateAppModalDialog() { |
- DCHECK(gtk_dialog_); |
- gtk_window_present(GTK_WINDOW(gtk_dialog_)); |
-} |
- |
-void JavaScriptAppModalDialogGtk::CloseAppModalDialog() { |
- DCHECK(gtk_dialog_); |
- OnResponse(gtk_dialog_, GTK_RESPONSE_DELETE_EVENT); |
-} |
- |
-void JavaScriptAppModalDialogGtk::AcceptAppModalDialog() { |
- OnResponse(gtk_dialog_, GTK_RESPONSE_OK); |
-} |
- |
-void JavaScriptAppModalDialogGtk::CancelAppModalDialog() { |
- OnResponse(gtk_dialog_, GTK_RESPONSE_CANCEL); |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// JavaScriptAppModalDialogGtk, private: |
- |
-void JavaScriptAppModalDialogGtk::OnResponse(GtkWidget* dialog, |
- int response_id) { |
- switch (response_id) { |
- case GTK_RESPONSE_OK: |
- // The first arg is the prompt text and the second is true if we want to |
- // suppress additional popups from the page. |
- dialog_->OnAccept(GetPromptText(GTK_DIALOG(dialog)), |
- ShouldSuppressJSDialogs(GTK_DIALOG(dialog))); |
- break; |
- |
- case GTK_RESPONSE_CANCEL: |
- case GTK_RESPONSE_DELETE_EVENT: // User hit the X on the dialog. |
- dialog_->OnCancel(ShouldSuppressJSDialogs(GTK_DIALOG(dialog))); |
- break; |
- |
- default: |
- NOTREACHED(); |
- } |
- gtk_widget_destroy(dialog); |
- |
- // Now that the dialog is gone, we can put all the windows into separate |
- // window groups so other dialogs are no longer app modal. |
- gtk_util::AppModalDismissedUngroupWindows(); |
- delete this; |
-} |
- |
-//////////////////////////////////////////////////////////////////////////////// |
-// NativeAppModalDialog, public: |
- |
-// static |
-NativeAppModalDialog* NativeAppModalDialog::CreateNativeJavaScriptPrompt( |
- JavaScriptAppModalDialog* dialog, |
- gfx::NativeWindow parent_window) { |
- return new JavaScriptAppModalDialogGtk(dialog, parent_window); |
-} |