Index: chrome/browser/ui/gtk/html_dialog_gtk.h |
diff --git a/chrome/browser/ui/gtk/html_dialog_gtk.h b/chrome/browser/ui/gtk/html_dialog_gtk.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..b33fda8cd7c83ccb38ead19ffcbac48a58adb50b |
--- /dev/null |
+++ b/chrome/browser/ui/gtk/html_dialog_gtk.h |
@@ -0,0 +1,75 @@ |
+// Copyright (c) 2010 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. |
+ |
+#ifndef CHROME_BROWSER_UI_GTK_HTML_DIALOG_GTK_H_ |
+#define CHROME_BROWSER_UI_GTK_HTML_DIALOG_GTK_H_ |
+#pragma once |
+ |
+#include <string> |
+#include <vector> |
+ |
+#include "app/gtk_signal.h" |
+#include "base/scoped_ptr.h" |
+#include "chrome/browser/dom_ui/html_dialog_ui.h" |
+#include "chrome/browser/dom_ui/html_dialog_tab_contents_delegate.h" |
+#include "gfx/native_widget_types.h" |
+#include "gfx/size.h" |
+ |
+typedef struct _GtkWidget GtkWidget; |
+ |
+class Browser; |
+class Profile; |
+class TabContents; |
+class TabContentsContainerGtk; |
+ |
+class HtmlDialogGtk : public HtmlDialogTabContentsDelegate, |
+ public HtmlDialogUIDelegate { |
+ public: |
+ HtmlDialogGtk(Profile* profile, HtmlDialogUIDelegate* delegate, |
+ gfx::NativeWindow parent_window); |
+ virtual ~HtmlDialogGtk(); |
+ |
+ static void ShowHtmlDialogGtk(Browser* browser, |
+ HtmlDialogUIDelegate* delegate, |
+ gfx::NativeWindow parent_window); |
+ // Initializes the contents of the dialog (the DOMView and the callbacks). |
+ void InitDialog(); |
+ |
+ // Overridden from HtmlDialogUI::Delegate: |
+ virtual bool IsDialogModal() const; |
+ virtual std::wstring GetDialogTitle() const; |
+ virtual GURL GetDialogContentURL() const; |
+ virtual void GetDOMMessageHandlers( |
+ std::vector<DOMMessageHandler*>* handlers) const; |
+ virtual void GetDialogSize(gfx::Size* size) const; |
+ virtual std::string GetDialogArgs() const; |
+ virtual void OnDialogClosed(const std::string& json_retval); |
+ virtual void OnCloseContents(TabContents* source, bool* out_close_dialog) { } |
+ virtual bool ShouldShowDialogTitle() const; |
+ |
+ // Overridden from TabContentsDelegate: |
+ virtual void MoveContents(TabContents* source, const gfx::Rect& pos); |
+ virtual void ToolbarSizeChanged(TabContents* source, bool is_animating); |
+ virtual void HandleKeyboardEvent(const NativeWebKeyboardEvent& event); |
+ |
+ private: |
+ CHROMEGTK_CALLBACK_1(HtmlDialogGtk, void, OnResponse, int); |
+ |
+ // This view is a delegate to the HTML content since it needs to get notified |
+ // about when the dialog is closing. For all other actions (besides dialog |
+ // closing) we delegate to the creator of this view, which we keep track of |
+ // using this variable. |
+ HtmlDialogUIDelegate* delegate_; |
+ |
+ gfx::NativeWindow parent_window_; |
+ |
+ GtkWidget* dialog_; |
+ |
+ scoped_ptr<TabContents> tab_contents_; |
+ scoped_ptr<TabContentsContainerGtk> tab_contents_container_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(HtmlDialogGtk); |
+}; |
+ |
+#endif // CHROME_BROWSER_UI_GTK_HTML_DIALOG_GTK_H_ |