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
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_UI_VIEWS_CONSTRAINED_WINDOW_VIEWS_H_
6#define CHROME_BROWSER_UI_VIEWS_CONSTRAINED_WINDOW_VIEWS_H_
7
8#include "ui/gfx/native_widget_types.h"
9
10namespace content {
11class WebContents;
12}
13
14namespace views {
15class DialogDelegate;
16class Widget;
17class WidgetDelegate;
18}
19
20namespace web_modal {
21class ModalDialogHost;
22class WebContentsModalDialogHost;
23}
24
25// Update the position of dialog |widget| against |dialog_host|. This is used to
26// reposition widgets e.g. when the host dimensions change.
27void UpdateWebContentsModalDialogPosition(
28    views::Widget* widget,
29    web_modal::WebContentsModalDialogHost* dialog_host);
30
31void UpdateBrowserModalDialogPosition(
32    views::Widget* widget,
33    web_modal::ModalDialogHost* dialog_host);
34
35// Calls CreateWebModalDialogViews, shows the dialog, and returns its widget.
36views::Widget* ShowWebModalDialogViews(
37    views::WidgetDelegate* dialog,
38    content::WebContents* initiator_web_contents);
39
40// Create a widget for |dialog| that is modal to |web_contents|.
41views::Widget* CreateWebModalDialogViews(views::WidgetDelegate* dialog,
42                                         content::WebContents* web_contents);
43
44// Create a widget for |dialog| that is modal to the browser window |parent|.
45// This places the dialog appropriately if |parent| is a valid browser window.
46views::Widget* CreateBrowserModalDialogViews(views::DialogDelegate* dialog,
47                                             gfx::NativeWindow parent);
48
49#endif  // CHROME_BROWSER_UI_VIEWS_CONSTRAINED_WINDOW_VIEWS_H_
50