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

Unified Diff: chrome/browser/ui/gtk/web_dialog_gtk.cc

Issue 231733005: Delete the GTK+ port of Chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remerge to ToT Created 6 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/gtk/web_dialog_gtk.cc
diff --git a/chrome/browser/ui/gtk/web_dialog_gtk.cc b/chrome/browser/ui/gtk/web_dialog_gtk.cc
deleted file mode 100644
index eff7ecd71e9a53f2e7a79a890a608e4cb0d822a3..0000000000000000000000000000000000000000
--- a/chrome/browser/ui/gtk/web_dialog_gtk.cc
+++ /dev/null
@@ -1,265 +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/web_dialog_gtk.h"
-
-#include <gtk/gtk.h>
-
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/browser/ui/browser_dialogs.h"
-#include "chrome/browser/ui/gtk/gtk_util.h"
-#include "chrome/browser/ui/webui/chrome_web_contents_handler.h"
-#include "content/public/browser/native_web_keyboard_event.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/browser/web_contents_view.h"
-#include "ui/web_dialogs/web_dialog_ui.h"
-
-using content::NativeWebKeyboardEvent;
-using content::WebContents;
-using content::WebUIMessageHandler;
-using ui::WebDialogDelegate;
-using ui::WebDialogUI;
-using ui::WebDialogWebContentsDelegate;
-
-namespace chrome {
-
-gfx::NativeWindow ShowWebDialog(gfx::NativeWindow parent,
- content::BrowserContext* context,
- WebDialogDelegate* delegate) {
- WebDialogGtk* web_dialog = new WebDialogGtk(context, delegate, parent);
- return web_dialog->InitDialog();
-}
-
-} // namespace chrome
-
-namespace {
-
-void SetDialogStyle() {
- static bool style_was_set = false;
-
- if (style_was_set)
- return;
- style_was_set = true;
-
- gtk_rc_parse_string(
- "style \"chrome-html-dialog\" {\n"
- " GtkDialog::action-area-border = 0\n"
- " GtkDialog::content-area-border = 0\n"
- " GtkDialog::content-area-spacing = 0\n"
- "}\n"
- "widget \"*chrome-html-dialog\" style \"chrome-html-dialog\"");
-}
-
-} // namespace
-
-////////////////////////////////////////////////////////////////////////////////
-// WebDialogGtk, public:
-
-WebDialogGtk::WebDialogGtk(content::BrowserContext* context,
- WebDialogDelegate* delegate,
- gfx::NativeWindow parent_window)
- : WebDialogWebContentsDelegate(context, new ChromeWebContentsHandler),
- delegate_(delegate),
- parent_window_(parent_window),
- dialog_(NULL) {
-}
-
-WebDialogGtk::~WebDialogGtk() {
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// WebDialogDelegate implementation:
-
-ui::ModalType WebDialogGtk::GetDialogModalType() const {
- return delegate_ ? delegate_->GetDialogModalType() : ui::MODAL_TYPE_NONE;
-}
-
-base::string16 WebDialogGtk::GetDialogTitle() const {
- return delegate_ ? delegate_->GetDialogTitle() : base::string16();
-}
-
-GURL WebDialogGtk::GetDialogContentURL() const {
- if (delegate_)
- return delegate_->GetDialogContentURL();
- else
- return GURL();
-}
-
-void WebDialogGtk::GetWebUIMessageHandlers(
- std::vector<WebUIMessageHandler*>* handlers) const {
- if (delegate_)
- delegate_->GetWebUIMessageHandlers(handlers);
- else
- handlers->clear();
-}
-
-void WebDialogGtk::GetDialogSize(gfx::Size* size) const {
- if (delegate_)
- delegate_->GetDialogSize(size);
- else
- *size = gfx::Size();
-}
-
-void WebDialogGtk::GetMinimumDialogSize(gfx::Size* size) const {
- if (delegate_)
- delegate_->GetMinimumDialogSize(size);
- else
- *size = gfx::Size();
-}
-
-std::string WebDialogGtk::GetDialogArgs() const {
- if (delegate_)
- return delegate_->GetDialogArgs();
- else
- return std::string();
-}
-
-void WebDialogGtk::OnDialogClosed(const std::string& json_retval) {
- DCHECK(dialog_);
-
- Detach();
- if (delegate_) {
- WebDialogDelegate* dialog_delegate = delegate_;
- delegate_ = NULL; // We will not communicate further with the delegate.
-
- // Store the dialog bounds.
- gfx::Rect dialog_bounds = gtk_util::GetDialogBounds(GTK_WIDGET(dialog_));
- dialog_delegate->StoreDialogSize(dialog_bounds.size());
-
- dialog_delegate->OnDialogClosed(json_retval);
- }
-
- gtk_widget_destroy(dialog_);
- delete this;
-}
-
-void WebDialogGtk::OnCloseContents(WebContents* source,
- bool* out_close_dialog) {
- if (delegate_)
- delegate_->OnCloseContents(source, out_close_dialog);
-}
-
-void WebDialogGtk::CloseContents(WebContents* source) {
- DCHECK(dialog_);
-
- bool close_dialog = false;
- OnCloseContents(source, &close_dialog);
- if (close_dialog)
- OnDialogClosed(std::string());
-}
-
-content::WebContents* WebDialogGtk::OpenURLFromTab(
- content::WebContents* source,
- const content::OpenURLParams& params) {
- content::WebContents* new_contents = NULL;
- if (delegate_ &&
- delegate_->HandleOpenURLFromTab(source, params, &new_contents)) {
- return new_contents;
- }
- return WebDialogWebContentsDelegate::OpenURLFromTab(source, params);
-}
-
-void WebDialogGtk::AddNewContents(content::WebContents* source,
- content::WebContents* new_contents,
- WindowOpenDisposition disposition,
- const gfx::Rect& initial_pos,
- bool user_gesture,
- bool* was_blocked) {
- if (delegate_ && delegate_->HandleAddNewContents(
- source, new_contents, disposition, initial_pos, user_gesture)) {
- return;
- }
- WebDialogWebContentsDelegate::AddNewContents(
- source, new_contents, disposition, initial_pos, user_gesture,
- was_blocked);
-}
-
-void WebDialogGtk::LoadingStateChanged(content::WebContents* source,
- bool to_different_document) {
- if (delegate_)
- delegate_->OnLoadingStateChanged(source);
-}
-
-bool WebDialogGtk::ShouldShowDialogTitle() const {
- return true;
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// content::WebContentsDelegate implementation:
-
-// A simplified version of BrowserWindowGtk::HandleKeyboardEvent().
-// We don't handle global keyboard shortcuts here, but that's fine since
-// they're all browser-specific. (This may change in the future.)
-void WebDialogGtk::HandleKeyboardEvent(content::WebContents* source,
- const NativeWebKeyboardEvent& event) {
- GdkEventKey* os_event = &event.os_event->key;
- if (!os_event || event.type == blink::WebInputEvent::Char)
- return;
-
- // To make sure the default key bindings can still work, such as Escape to
- // close the dialog.
- gtk_bindings_activate_event(GTK_OBJECT(dialog_), os_event);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// WebDialogGtk:
-
-gfx::NativeWindow WebDialogGtk::InitDialog() {
- web_contents_.reset(WebContents::Create(
- WebContents::CreateParams(browser_context())));
- web_contents_->SetDelegate(this);
-
- // This must be done before loading the page; see the comments in
- // WebDialogUI.
- WebDialogUI::SetDelegate(web_contents_.get(), this);
-
- web_contents_->GetController().LoadURL(
- GetDialogContentURL(),
- content::Referrer(),
- content::PAGE_TRANSITION_AUTO_TOPLEVEL,
- std::string());
- GtkDialogFlags flags = GTK_DIALOG_NO_SEPARATOR;
- if (delegate_->GetDialogModalType() != ui::MODAL_TYPE_NONE)
- flags = static_cast<GtkDialogFlags>(flags | GTK_DIALOG_MODAL);
-
- dialog_ = gtk_dialog_new_with_buttons(
- base::UTF16ToUTF8(delegate_->GetDialogTitle()).c_str(),
- parent_window_,
- flags,
- NULL);
-
- SetDialogStyle();
- gtk_widget_set_name(dialog_, "chrome-html-dialog");
- g_signal_connect(dialog_, "response", G_CALLBACK(OnResponseThunk), this);
-
- GtkWidget* content_area = gtk_dialog_get_content_area(GTK_DIALOG(dialog_));
- gfx::NativeView web_contents_widget =
- web_contents_->GetView()->GetNativeView();
- gtk_box_pack_start(GTK_BOX(content_area), web_contents_widget, TRUE, TRUE, 0);
-
- gfx::Size dialog_size;
- delegate_->GetDialogSize(&dialog_size);
- if (!dialog_size.IsEmpty()) {
- gtk_window_set_default_size(GTK_WINDOW(dialog_),
- dialog_size.width(),
- dialog_size.height());
- }
- gfx::Size minimum_dialog_size;
- delegate_->GetMinimumDialogSize(&minimum_dialog_size);
- if (!minimum_dialog_size.IsEmpty()) {
- gtk_widget_set_size_request(GTK_WIDGET(web_contents_widget),
- minimum_dialog_size.width(),
- minimum_dialog_size.height());
- }
-
- gtk_widget_show_all(dialog_);
-
- web_contents_->GetView()->SetInitialFocus();
-
- return GTK_WINDOW(dialog_);
-}
-
-void WebDialogGtk::OnResponse(GtkWidget* dialog, int response_id) {
- OnDialogClosed(std::string());
-}

Powered by Google App Engine
This is Rietveld 408576698