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

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

Issue 12281012: Introduce NativeWebContentsModalDialogManagerDelegate interface (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 unified diff | Download patch | Annotate | Revision Log
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 "chrome/browser/platform_util.h" 7 #include "chrome/browser/platform_util.h"
8 #include "chrome/browser/ui/native_web_contents_modal_dialog_manager.h" 8 #include "chrome/browser/ui/native_web_contents_modal_dialog_manager.h"
9 #include "chrome/browser/ui/views/constrained_window_views.h" 9 #include "chrome/browser/ui/views/constrained_window_views.h"
10 #include "chrome/browser/ui/web_contents_modal_dialog_manager.h" 10 #include "chrome/browser/ui/web_contents_modal_dialog_manager.h"
(...skipping 14 matching lines...) Expand all
25 #include "ash/wm/custom_frame_view_ash.h" 25 #include "ash/wm/custom_frame_view_ash.h"
26 #endif 26 #endif
27 27
28 namespace { 28 namespace {
29 29
30 class NativeWebContentsModalDialogManagerViews 30 class NativeWebContentsModalDialogManagerViews
31 : public NativeWebContentsModalDialogManager, 31 : public NativeWebContentsModalDialogManager,
32 public views::WidgetObserver { 32 public views::WidgetObserver {
33 public: 33 public:
34 NativeWebContentsModalDialogManagerViews( 34 NativeWebContentsModalDialogManagerViews(
35 WebContentsModalDialogManager* manager) 35 NativeWebContentsModalDialogManagerDelegate* native_delegate)
36 : manager_(manager) { 36 : native_delegate_(native_delegate) {
37 } 37 }
38 38
39 virtual ~NativeWebContentsModalDialogManagerViews() { 39 virtual ~NativeWebContentsModalDialogManagerViews() {
40 for (std::set<views::Widget*>::iterator it = observed_widgets_.begin(); 40 for (std::set<views::Widget*>::iterator it = observed_widgets_.begin();
41 it != observed_widgets_.end(); 41 it != observed_widgets_.end();
42 ++it) { 42 ++it) {
43 (*it)->RemoveObserver(this); 43 (*it)->RemoveObserver(this);
44 } 44 }
45 } 45 }
46 46
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 gfx::NativeView view = platform_util::GetParent(widget->GetNativeView()); 80 gfx::NativeView view = platform_util::GetParent(widget->GetNativeView());
81 // Allow the parent to animate again. 81 // Allow the parent to animate again.
82 if (view && view->parent()) 82 if (view && view->parent())
83 view->parent()->ClearProperty(aura::client::kAnimationsDisabledKey); 83 view->parent()->ClearProperty(aura::client::kAnimationsDisabledKey);
84 #endif 84 #endif
85 widget->Close(); 85 widget->Close();
86 } 86 }
87 87
88 // views::WidgetObserver overrides 88 // views::WidgetObserver overrides
89 virtual void OnWidgetClosing(views::Widget* widget) OVERRIDE { 89 virtual void OnWidgetClosing(views::Widget* widget) OVERRIDE {
90 manager_->WillClose(static_cast<ConstrainedWindowViews*>(widget)); 90 native_delegate_->WillClose(static_cast<ConstrainedWindowViews*>(widget));
91 observed_widgets_.erase(widget); 91 observed_widgets_.erase(widget);
92 } 92 }
93 93
94 private: 94 private:
95 static views::Widget* GetWidget(NativeWebContentsModalDialog dialog) { 95 static views::Widget* GetWidget(NativeWebContentsModalDialog dialog) {
96 views::Widget* widget = views::Widget::GetWidgetForNativeWindow(dialog); 96 views::Widget* widget = views::Widget::GetWidgetForNativeWindow(dialog);
97 DCHECK(widget); 97 DCHECK(widget);
98 return widget; 98 return widget;
99 } 99 }
100 100
101 WebContentsModalDialogManager* manager_; 101 NativeWebContentsModalDialogManagerDelegate* native_delegate_;
102 std::set<views::Widget*> observed_widgets_; 102 std::set<views::Widget*> observed_widgets_;
103 103
104 DISALLOW_COPY_AND_ASSIGN(NativeWebContentsModalDialogManagerViews); 104 DISALLOW_COPY_AND_ASSIGN(NativeWebContentsModalDialogManagerViews);
105 }; 105 };
106 106
107 } // namespace 107 } // namespace
108 108
109 NativeWebContentsModalDialogManager* WebContentsModalDialogManager:: 109 NativeWebContentsModalDialogManager* WebContentsModalDialogManager::
110 CreateNativeManager(WebContentsModalDialogManager* manager) { 110 CreateNativeManager(
111 return new NativeWebContentsModalDialogManagerViews(manager); 111 NativeWebContentsModalDialogManagerDelegate* native_delegate) {
112 return new NativeWebContentsModalDialogManagerViews(native_delegate);
112 } 113 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698