OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/webui/constrained_web_dialog_delegate_base.h" | 5 #include "chrome/browser/ui/webui/constrained_web_dialog_delegate_base.h" |
6 | 6 |
7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
8 | 8 |
9 #include "base/memory/scoped_nsobject.h" | 9 #include "base/mac/scoped_nsobject.h" |
10 #import "chrome/browser/ui/cocoa/constrained_window/constrained_window_custom_sh
eet.h" | 10 #import "chrome/browser/ui/cocoa/constrained_window/constrained_window_custom_sh
eet.h" |
11 #import "chrome/browser/ui/cocoa/constrained_window/constrained_window_custom_wi
ndow.h" | 11 #import "chrome/browser/ui/cocoa/constrained_window/constrained_window_custom_wi
ndow.h" |
12 #import "chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.h" | 12 #import "chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.h" |
13 #include "content/public/browser/web_contents.h" | 13 #include "content/public/browser/web_contents.h" |
14 #include "content/public/browser/web_contents_view.h" | 14 #include "content/public/browser/web_contents_view.h" |
15 #include "ui/gfx/size.h" | 15 #include "ui/gfx/size.h" |
16 #include "ui/web_dialogs/web_dialog_delegate.h" | 16 #include "ui/web_dialogs/web_dialog_delegate.h" |
17 #include "ui/web_dialogs/web_dialog_ui.h" | 17 #include "ui/web_dialogs/web_dialog_ui.h" |
18 #include "ui/web_dialogs/web_dialog_web_contents_delegate.h" | 18 #include "ui/web_dialogs/web_dialog_web_contents_delegate.h" |
19 | 19 |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
88 virtual void OnConstrainedWindowClosed( | 88 virtual void OnConstrainedWindowClosed( |
89 ConstrainedWindowMac* window) OVERRIDE { | 89 ConstrainedWindowMac* window) OVERRIDE { |
90 if (!impl_->closed_via_webui()) | 90 if (!impl_->closed_via_webui()) |
91 GetWebDialogDelegate()->OnDialogClosed(""); | 91 GetWebDialogDelegate()->OnDialogClosed(""); |
92 delete this; | 92 delete this; |
93 } | 93 } |
94 | 94 |
95 private: | 95 private: |
96 scoped_ptr<ConstrainedWebDialogDelegateMac> impl_; | 96 scoped_ptr<ConstrainedWebDialogDelegateMac> impl_; |
97 scoped_ptr<ConstrainedWindowMac> constrained_window_; | 97 scoped_ptr<ConstrainedWindowMac> constrained_window_; |
98 scoped_nsobject<NSWindow> window_; | 98 base::scoped_nsobject<NSWindow> window_; |
99 | 99 |
100 DISALLOW_COPY_AND_ASSIGN(ConstrainedWebDialogDelegateViewMac); | 100 DISALLOW_COPY_AND_ASSIGN(ConstrainedWebDialogDelegateViewMac); |
101 }; | 101 }; |
102 | 102 |
103 ConstrainedWebDialogDelegateViewMac::ConstrainedWebDialogDelegateViewMac( | 103 ConstrainedWebDialogDelegateViewMac::ConstrainedWebDialogDelegateViewMac( |
104 content::BrowserContext* browser_context, | 104 content::BrowserContext* browser_context, |
105 WebDialogDelegate* delegate, | 105 WebDialogDelegate* delegate, |
106 WebDialogWebContentsDelegate* tab_delegate, | 106 WebDialogWebContentsDelegate* tab_delegate, |
107 content::WebContents* web_contents) | 107 content::WebContents* web_contents) |
108 : impl_(new ConstrainedWebDialogDelegateMac(browser_context, | 108 : impl_(new ConstrainedWebDialogDelegateMac(browser_context, |
109 delegate, | 109 delegate, |
110 tab_delegate)) { | 110 tab_delegate)) { |
111 // Create a window to hold web_contents in the constrained sheet: | 111 // Create a window to hold web_contents in the constrained sheet: |
112 gfx::Size size; | 112 gfx::Size size; |
113 delegate->GetDialogSize(&size); | 113 delegate->GetDialogSize(&size); |
114 NSRect frame = NSMakeRect(0, 0, size.width(), size.height()); | 114 NSRect frame = NSMakeRect(0, 0, size.width(), size.height()); |
115 | 115 |
116 window_.reset( | 116 window_.reset( |
117 [[ConstrainedWindowCustomWindow alloc] initWithContentRect:frame]); | 117 [[ConstrainedWindowCustomWindow alloc] initWithContentRect:frame]); |
118 [GetWebContents()->GetView()->GetNativeView() setFrame:frame]; | 118 [GetWebContents()->GetView()->GetNativeView() setFrame:frame]; |
119 [[window_ contentView] | 119 [[window_ contentView] |
120 addSubview:GetWebContents()->GetView()->GetNativeView()]; | 120 addSubview:GetWebContents()->GetView()->GetNativeView()]; |
121 | 121 |
122 scoped_nsobject<CustomConstrainedWindowSheet> sheet( | 122 base::scoped_nsobject<CustomConstrainedWindowSheet> sheet( |
123 [[CustomConstrainedWindowSheet alloc] | 123 [[CustomConstrainedWindowSheet alloc] initWithCustomWindow:window_]); |
124 initWithCustomWindow:window_]); | |
125 constrained_window_.reset(new ConstrainedWindowMac( | 124 constrained_window_.reset(new ConstrainedWindowMac( |
126 this, web_contents, sheet)); | 125 this, web_contents, sheet)); |
127 | 126 |
128 impl_->set_window(constrained_window_.get()); | 127 impl_->set_window(constrained_window_.get()); |
129 } | 128 } |
130 | 129 |
131 ConstrainedWebDialogDelegate* CreateConstrainedWebDialog( | 130 ConstrainedWebDialogDelegate* CreateConstrainedWebDialog( |
132 content::BrowserContext* browser_context, | 131 content::BrowserContext* browser_context, |
133 WebDialogDelegate* delegate, | 132 WebDialogDelegate* delegate, |
134 WebDialogWebContentsDelegate* tab_delegate, | 133 WebDialogWebContentsDelegate* tab_delegate, |
135 content::WebContents* web_contents) { | 134 content::WebContents* web_contents) { |
136 // Deleted when the dialog closes. | 135 // Deleted when the dialog closes. |
137 ConstrainedWebDialogDelegateViewMac* constrained_delegate = | 136 ConstrainedWebDialogDelegateViewMac* constrained_delegate = |
138 new ConstrainedWebDialogDelegateViewMac( | 137 new ConstrainedWebDialogDelegateViewMac( |
139 browser_context, delegate, tab_delegate, web_contents); | 138 browser_context, delegate, tab_delegate, web_contents); |
140 return constrained_delegate; | 139 return constrained_delegate; |
141 } | 140 } |
OLD | NEW |