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

Side by Side Diff: chrome/browser/ui/views/web_contents_modal_dialog_manager_views.cc

Issue 985133002: Remove NativeWebContentsModalDialog and NativePopup typedefs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@extension-popup
Patch Set: Created 5 years, 9 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 unified diff | Download patch
OLDNEW
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 <set> 5 #include <set>
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "chrome/browser/platform_util.h" 8 #include "chrome/browser/platform_util.h"
9 #include "components/constrained_window/constrained_window_views.h" 9 #include "components/constrained_window/constrained_window_views.h"
10 #include "components/web_modal/single_web_contents_dialog_manager.h" 10 #include "components/web_modal/single_web_contents_dialog_manager.h"
11 #include "components/web_modal/web_contents_modal_dialog_host.h" 11 #include "components/web_modal/web_contents_modal_dialog_host.h"
12 #include "components/web_modal/web_contents_modal_dialog_manager.h" 12 #include "components/web_modal/web_contents_modal_dialog_manager.h"
13 #include "ui/gfx/geometry/point.h" 13 #include "ui/gfx/geometry/point.h"
14 #include "ui/gfx/geometry/size.h" 14 #include "ui/gfx/geometry/size.h"
15 #include "ui/views/border.h" 15 #include "ui/views/border.h"
16 #include "ui/views/widget/widget.h" 16 #include "ui/views/widget/widget.h"
17 #include "ui/views/widget/widget_delegate.h" 17 #include "ui/views/widget/widget_delegate.h"
18 #include "ui/views/widget/widget_observer.h" 18 #include "ui/views/widget/widget_observer.h"
19 #include "ui/views/window/dialog_delegate.h" 19 #include "ui/views/window/dialog_delegate.h"
20 #include "ui/views/window/non_client_view.h" 20 #include "ui/views/window/non_client_view.h"
21 21
22 #if defined(USE_AURA) 22 #if defined(USE_AURA)
23 #include "ui/aura/client/aura_constants.h" 23 #include "ui/aura/client/aura_constants.h"
24 #include "ui/aura/window.h" 24 #include "ui/aura/window.h"
25 #include "ui/wm/core/visibility_controller.h" 25 #include "ui/wm/core/visibility_controller.h"
26 #include "ui/wm/core/window_animations.h" 26 #include "ui/wm/core/window_animations.h"
27 #include "ui/wm/core/window_modality_controller.h" 27 #include "ui/wm/core/window_modality_controller.h"
28 #endif 28 #endif
29 29
30 using web_modal::NativeWebContentsModalDialog;
31 using web_modal::SingleWebContentsDialogManager; 30 using web_modal::SingleWebContentsDialogManager;
32 using web_modal::SingleWebContentsDialogManagerDelegate; 31 using web_modal::SingleWebContentsDialogManagerDelegate;
33 using web_modal::WebContentsModalDialogHost; 32 using web_modal::WebContentsModalDialogHost;
34 using web_modal::ModalDialogHostObserver; 33 using web_modal::ModalDialogHostObserver;
35 34
36 namespace { 35 namespace {
37 36
38 class NativeWebContentsModalDialogManagerViews 37 class NativeWebContentsModalDialogManagerViews
39 : public SingleWebContentsDialogManager, 38 : public SingleWebContentsDialogManager,
40 public ModalDialogHostObserver, 39 public ModalDialogHostObserver,
41 public views::WidgetObserver { 40 public views::WidgetObserver {
42 public: 41 public:
43 NativeWebContentsModalDialogManagerViews( 42 NativeWebContentsModalDialogManagerViews(
44 NativeWebContentsModalDialog dialog, 43 gfx::NativeWindow dialog,
45 SingleWebContentsDialogManagerDelegate* native_delegate) 44 SingleWebContentsDialogManagerDelegate* native_delegate)
46 : native_delegate_(native_delegate), 45 : native_delegate_(native_delegate),
47 dialog_(dialog), 46 dialog_(dialog),
48 host_(NULL) { 47 host_(NULL) {
49 ManageDialog(); 48 ManageDialog();
50 } 49 }
51 50
52 ~NativeWebContentsModalDialogManagerViews() override { 51 ~NativeWebContentsModalDialogManagerViews() override {
53 if (host_) 52 if (host_)
54 host_->RemoveObserver(this); 53 host_->RemoveObserver(this);
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 it != observed_widgets_.end(); 188 it != observed_widgets_.end();
190 ++it) { 189 ++it) {
191 views::Widget::ReparentNativeView((*it)->GetNativeView(), 190 views::Widget::ReparentNativeView((*it)->GetNativeView(),
192 host_->GetHostView()); 191 host_->GetHostView());
193 } 192 }
194 193
195 OnPositionRequiresUpdate(); 194 OnPositionRequiresUpdate();
196 } 195 }
197 } 196 }
198 197
199 NativeWebContentsModalDialog dialog() override { return dialog_; } 198 gfx::NativeWindow dialog() override { return dialog_; }
200 199
201 private: 200 private:
202 static views::Widget* GetWidget(NativeWebContentsModalDialog dialog) { 201 static views::Widget* GetWidget(gfx::NativeWindow dialog) {
203 views::Widget* widget = views::Widget::GetWidgetForNativeWindow(dialog); 202 views::Widget* widget = views::Widget::GetWidgetForNativeWindow(dialog);
204 DCHECK(widget); 203 DCHECK(widget);
205 return widget; 204 return widget;
206 } 205 }
207 206
208 void WidgetClosing(views::Widget* widget) { 207 void WidgetClosing(views::Widget* widget) {
209 #if defined(USE_AURA) 208 #if defined(USE_AURA)
210 gfx::NativeView view = platform_util::GetParent(widget->GetNativeView()); 209 gfx::NativeView view = platform_util::GetParent(widget->GetNativeView());
211 // Allow the parent to animate again. 210 // Allow the parent to animate again.
212 if (view && view->parent()) 211 if (view && view->parent())
213 view->parent()->ClearProperty(aura::client::kAnimationsDisabledKey); 212 view->parent()->ClearProperty(aura::client::kAnimationsDisabledKey);
214 #endif 213 #endif
215 widget->RemoveObserver(this); 214 widget->RemoveObserver(this);
216 observed_widgets_.erase(widget); 215 observed_widgets_.erase(widget);
217 216
218 #if defined(USE_AURA) 217 #if defined(USE_AURA)
219 shown_widgets_.erase(widget); 218 shown_widgets_.erase(widget);
220 #endif 219 #endif
221 220
222 // Will cause this object to be deleted. 221 // Will cause this object to be deleted.
223 native_delegate_->WillClose(widget->GetNativeWindow()); 222 native_delegate_->WillClose(widget->GetNativeWindow());
224 } 223 }
225 224
226 SingleWebContentsDialogManagerDelegate* native_delegate_; 225 SingleWebContentsDialogManagerDelegate* native_delegate_;
227 NativeWebContentsModalDialog dialog_; 226 gfx::NativeWindow dialog_;
228 WebContentsModalDialogHost* host_; 227 WebContentsModalDialogHost* host_;
229 std::set<views::Widget*> observed_widgets_; 228 std::set<views::Widget*> observed_widgets_;
230 std::set<views::Widget*> shown_widgets_; 229 std::set<views::Widget*> shown_widgets_;
231 230
232 DISALLOW_COPY_AND_ASSIGN(NativeWebContentsModalDialogManagerViews); 231 DISALLOW_COPY_AND_ASSIGN(NativeWebContentsModalDialogManagerViews);
233 }; 232 };
234 233
235 } // namespace 234 } // namespace
236 235
237 namespace web_modal { 236 namespace web_modal {
238 237
239 SingleWebContentsDialogManager* WebContentsModalDialogManager:: 238 SingleWebContentsDialogManager*
240 CreateNativeWebModalManager( 239 WebContentsModalDialogManager::CreateNativeWebModalManager(
241 NativeWebContentsModalDialog dialog, 240 gfx::NativeWindow dialog,
242 SingleWebContentsDialogManagerDelegate* native_delegate) { 241 SingleWebContentsDialogManagerDelegate* native_delegate) {
243 return new NativeWebContentsModalDialogManagerViews(dialog, native_delegate); 242 return new NativeWebContentsModalDialogManagerViews(dialog, native_delegate);
244 } 243 }
245 244
246 } // namespace web_modal 245 } // namespace web_modal
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/constrained_web_dialog_delegate_views.cc ('k') | chrome/browser/ui/webui/certificate_viewer_webui.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698