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

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

Issue 319013002: Reland Fix Views web-modal dialog widget creation. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Revert MediaGalleriesScanResultDialogViews::AcceptDialogForTesting. Created 6 years, 6 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 "chrome/browser/ui/views/constrained_window_views.h" 5 #include "chrome/browser/ui/views/constrained_window_views.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "chrome/browser/ui/browser_finder.h" 9 #include "chrome/browser/ui/browser_finder.h"
10 #include "components/web_modal/web_contents_modal_dialog_host.h" 10 #include "components/web_modal/web_contents_modal_dialog_host.h"
11 #include "components/web_modal/web_contents_modal_dialog_manager.h"
12 #include "components/web_modal/web_contents_modal_dialog_manager_delegate.h"
11 #include "ui/views/border.h" 13 #include "ui/views/border.h"
12 #include "ui/views/widget/widget.h" 14 #include "ui/views/widget/widget.h"
13 #include "ui/views/widget/widget_observer.h" 15 #include "ui/views/widget/widget_observer.h"
14 #include "ui/views/window/dialog_delegate.h" 16 #include "ui/views/window/dialog_delegate.h"
15 17
16 using web_modal::ModalDialogHost; 18 using web_modal::ModalDialogHost;
17 using web_modal::ModalDialogHostObserver; 19 using web_modal::ModalDialogHostObserver;
18 20
19 namespace { 21 namespace {
20 // The name of a key to store on the window handle to associate 22 // The name of a key to store on the window handle to associate
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 size.SetToMin(max_size); 113 size.SetToMin(max_size);
112 UpdateModalDialogPosition(widget, dialog_host, size); 114 UpdateModalDialogPosition(widget, dialog_host, size);
113 } 115 }
114 116
115 void UpdateBrowserModalDialogPosition(views::Widget* widget, 117 void UpdateBrowserModalDialogPosition(views::Widget* widget,
116 web_modal::ModalDialogHost* dialog_host) { 118 web_modal::ModalDialogHost* dialog_host) {
117 UpdateModalDialogPosition(widget, dialog_host, 119 UpdateModalDialogPosition(widget, dialog_host,
118 widget->GetRootView()->GetPreferredSize()); 120 widget->GetRootView()->GetPreferredSize());
119 } 121 }
120 122
123 views::Widget* ShowWebModalDialogViews(views::WidgetDelegate* dialog,
124 content::WebContents* web_contents) {
125 views::Widget* widget = CreateWebModalDialogViews(dialog, web_contents);
126 web_modal::WebContentsModalDialogManager::FromWebContents(web_contents)->
127 ShowModalDialog(widget->GetNativeWindow());
128 return widget;
129 }
130
131 views::Widget* CreateWebModalDialogViews(views::WidgetDelegate* dialog,
132 content::WebContents* web_contents) {
133 DCHECK_EQ(ui::MODAL_TYPE_CHILD, dialog->GetModalType());
134 web_modal::WebContentsModalDialogManager* manager =
135 web_modal::WebContentsModalDialogManager::FromWebContents(web_contents);
136 const gfx::NativeWindow parent =
137 manager->delegate()->GetWebContentsModalDialogHost()->GetHostView();
138 return views::DialogDelegate::CreateDialogWidget(dialog, NULL, parent);
139 }
140
121 views::Widget* CreateBrowserModalDialogViews(views::DialogDelegate* dialog, 141 views::Widget* CreateBrowserModalDialogViews(views::DialogDelegate* dialog,
122 gfx::NativeWindow parent) { 142 gfx::NativeWindow parent) {
123 views::Widget* widget = 143 views::Widget* widget =
124 views::DialogDelegate::CreateDialogWidget(dialog, NULL, parent); 144 views::DialogDelegate::CreateDialogWidget(dialog, NULL, parent);
125 if (!dialog->UseNewStyleForThisDialog()) 145 if (!dialog->UseNewStyleForThisDialog())
126 return widget; 146 return widget;
127 147
128 // Get the browser dialog management and hosting components from |parent|. 148 // Get the browser dialog management and hosting components from |parent|.
129 Browser* browser = chrome::FindBrowserWithWindow(parent); 149 Browser* browser = chrome::FindBrowserWithWindow(parent);
130 if (browser) { 150 if (browser) {
131 ChromeWebModalDialogManagerDelegate* manager = browser; 151 ChromeWebModalDialogManagerDelegate* manager = browser;
132 ModalDialogHost* host = manager->GetWebContentsModalDialogHost(); 152 ModalDialogHost* host = manager->GetWebContentsModalDialogHost();
133 DCHECK_EQ(parent, host->GetHostView()); 153 DCHECK_EQ(parent, host->GetHostView());
134 ModalDialogHostObserver* dialog_host_observer = 154 ModalDialogHostObserver* dialog_host_observer =
135 new BrowserModalDialogHostObserverViews( 155 new BrowserModalDialogHostObserverViews(
136 host, widget, kBrowserModalDialogHostObserverViewsKey); 156 host, widget, kBrowserModalDialogHostObserverViewsKey);
137 dialog_host_observer->OnPositionRequiresUpdate(); 157 dialog_host_observer->OnPositionRequiresUpdate();
138 } 158 }
139 return widget; 159 return widget;
140 } 160 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/constrained_window_views.h ('k') | chrome/browser/ui/views/constrained_window_views_browsertest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698