1 // Copyright (c) 2013 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.
5 #include "chrome/browser/ui/gtk/constrained_window_gtk.h"
6 #include "chrome/browser/ui/native_web_contents_modal_dialog_manager.h"
7 #include "chrome/browser/ui/web_contents_modal_dialog_manager.h"
11 class NativeWebContentsModalDialogManagerGtk
12 : public NativeWebContentsModalDialogManager
{
14 NativeWebContentsModalDialogManagerGtk() {
17 virtual ~NativeWebContentsModalDialogManagerGtk() {
20 // NativeWebContentsModalDialogManager overrides
21 virtual void ManageDialog(NativeWebContentsModalDialog dialog
) OVERRIDE
{
24 virtual void ShowDialog(NativeWebContentsModalDialog dialog
) OVERRIDE
{
25 GetConstrainedWindowGtk(dialog
)->ShowWebContentsModalDialog();
28 virtual void CloseDialog(NativeWebContentsModalDialog dialog
) OVERRIDE
{
29 gtk_widget_destroy(GetGtkWidget(dialog
));
32 virtual void FocusDialog(NativeWebContentsModalDialog dialog
) OVERRIDE
{
33 GetConstrainedWindowGtk(dialog
)->FocusWebContentsModalDialog();
36 virtual void PulseDialog(NativeWebContentsModalDialog dialog
) OVERRIDE
{
37 GetConstrainedWindowGtk(dialog
)->PulseWebContentsModalDialog();
41 GtkWidget
* GetGtkWidget(NativeWebContentsModalDialog dialog
) {
42 return GTK_WIDGET(dialog
);
45 ConstrainedWindowGtk
* GetConstrainedWindowGtk(
46 NativeWebContentsModalDialog dialog
) {
47 gpointer constrained_window_gtk
=
48 g_object_get_data(G_OBJECT(dialog
), "ConstrainedWindowGtk");
49 DCHECK(constrained_window_gtk
);
50 return static_cast<ConstrainedWindowGtk
*>(constrained_window_gtk
);
53 DISALLOW_COPY_AND_ASSIGN(NativeWebContentsModalDialogManagerGtk
);
58 NativeWebContentsModalDialogManager
*
59 WebContentsModalDialogManager::CreateNativeManager(
60 NativeWebContentsModalDialogManagerDelegate
* native_delegate
) {
61 return new NativeWebContentsModalDialogManagerGtk
;