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

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

Issue 12276010: Factor out uses of the WebContentsModalDialog interface from platform-independent code (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove incorrect override Created 7 years, 10 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
« no previous file with comments | « chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.mm ('k') | chrome/browser/ui/gtk/login_prompt_gtk.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/gtk/constrained_web_dialog_delegate_gtk.cc
diff --git a/chrome/browser/ui/gtk/constrained_web_dialog_delegate_gtk.cc b/chrome/browser/ui/gtk/constrained_web_dialog_delegate_gtk.cc
index 267a832a451b9ffdf17ce27c9ef0ff725206b11c..56b807397272bd3036fee078983d61b49830a71c 100644
--- a/chrome/browser/ui/gtk/constrained_web_dialog_delegate_gtk.cc
+++ b/chrome/browser/ui/gtk/constrained_web_dialog_delegate_gtk.cc
@@ -18,20 +18,45 @@ using content::WebContents;
using ui::WebDialogDelegate;
using ui::WebDialogWebContentsDelegate;
-class ConstrainedWebDialogDelegateGtk : public ConstrainedWindowGtkDelegate,
- public ConstrainedWebDialogDelegate {
+namespace {
+
+class ConstrainedWebDialogDelegateGtk
+ : public ConstrainedWebDialogDelegateBase {
public:
ConstrainedWebDialogDelegateGtk(
content::BrowserContext* browser_context,
WebDialogDelegate* delegate,
- WebDialogWebContentsDelegate* tab_delegate);
-
- virtual ~ConstrainedWebDialogDelegateGtk() {}
+ WebDialogWebContentsDelegate* tab_delegate)
+ : ConstrainedWebDialogDelegateBase(
+ browser_context, delegate, tab_delegate) {}
- void set_window(WebContentsModalDialog* dialog) {
- return impl_->set_window(dialog);
+ // WebDialogWebContentsDelegate interface.
+ virtual void CloseContents(WebContents* source) OVERRIDE {
+ window_->CloseWebContentsModalDialog();
}
+ void set_window(ConstrainedWindowGtk* window) { window_ = window; }
+ ConstrainedWindowGtk* window() const { return window_; }
+
+ private:
+ ConstrainedWindowGtk* window_;
+
+ DISALLOW_COPY_AND_ASSIGN(ConstrainedWebDialogDelegateGtk);
+};
+
+} // namespace
+
+class ConstrainedWebDialogDelegateViewGtk
+ : public ConstrainedWindowGtkDelegate,
+ public ConstrainedWebDialogDelegate {
+ public:
+ ConstrainedWebDialogDelegateViewGtk(
+ content::BrowserContext* browser_context,
+ WebDialogDelegate* delegate,
+ WebDialogWebContentsDelegate* tab_delegate);
+
+ virtual ~ConstrainedWebDialogDelegateViewGtk() {}
+
// ConstrainedWebDialogDelegate interface
virtual const WebDialogDelegate*
GetWebDialogDelegate() const OVERRIDE {
@@ -46,8 +71,8 @@ class ConstrainedWebDialogDelegateGtk : public ConstrainedWindowGtkDelegate,
virtual void ReleaseWebContentsOnDialogClose() OVERRIDE {
return impl_->ReleaseWebContentsOnDialogClose();
}
- virtual WebContentsModalDialog* GetWindow() OVERRIDE {
- return impl_->GetWindow();
+ virtual NativeWebContentsModalDialog GetNativeDialog() OVERRIDE {
+ return impl_->window()->GetNativeDialog();
}
virtual WebContents* GetWebContents() OVERRIDE {
return impl_->GetWebContents();
@@ -70,18 +95,28 @@ class ConstrainedWebDialogDelegateGtk : public ConstrainedWindowGtkDelegate,
return true;
}
+ void SetWindow(ConstrainedWindowGtk* window) {
+ impl_->set_window(window);
+ }
+
+ ConstrainedWindowGtk* GetWindow() {
+ return impl_->window();
+ }
+
private:
- scoped_ptr<ConstrainedWebDialogDelegateBase> impl_;
+ scoped_ptr<ConstrainedWebDialogDelegateGtk> impl_;
- DISALLOW_COPY_AND_ASSIGN(ConstrainedWebDialogDelegateGtk);
+ DISALLOW_COPY_AND_ASSIGN(ConstrainedWebDialogDelegateViewGtk);
};
-ConstrainedWebDialogDelegateGtk::ConstrainedWebDialogDelegateGtk(
+ConstrainedWebDialogDelegateViewGtk::ConstrainedWebDialogDelegateViewGtk(
content::BrowserContext* browser_context,
WebDialogDelegate* delegate,
WebDialogWebContentsDelegate* tab_delegate)
- : impl_(new ConstrainedWebDialogDelegateBase(
- browser_context, delegate, tab_delegate)) {
+ : impl_(new ConstrainedWebDialogDelegateGtk(
+ browser_context,
+ delegate,
+ tab_delegate)) {
gfx::Size dialog_size;
delegate->GetDialogSize(&dialog_size);
gtk_widget_set_size_request(GTK_WIDGET(GetWidgetRoot()),
@@ -96,11 +131,11 @@ ConstrainedWebDialogDelegate* CreateConstrainedWebDialog(
WebDialogDelegate* delegate,
WebDialogWebContentsDelegate* tab_delegate,
content::WebContents* web_contents) {
- ConstrainedWebDialogDelegateGtk* constrained_delegate =
- new ConstrainedWebDialogDelegateGtk(
+ ConstrainedWebDialogDelegateViewGtk* constrained_delegate =
+ new ConstrainedWebDialogDelegateViewGtk(
browser_context, delegate, tab_delegate);
- WebContentsModalDialog* web_contents_modal_dialog =
+ ConstrainedWindowGtk* window =
new ConstrainedWindowGtk(web_contents, constrained_delegate);
- constrained_delegate->set_window(web_contents_modal_dialog);
+ constrained_delegate->SetWindow(window);
return constrained_delegate;
}
« no previous file with comments | « chrome/browser/ui/cocoa/tab_modal_confirm_dialog_mac.mm ('k') | chrome/browser/ui/gtk/login_prompt_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698