123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- // Copyright 2014 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #ifndef COMPONENTS_WEB_MODAL_SINGLE_WEB_CONTENTS_DIALOG_MANAGER_H_
- #define COMPONENTS_WEB_MODAL_SINGLE_WEB_CONTENTS_DIALOG_MANAGER_H_
- #include "ui/gfx/native_widget_types.h"
- namespace content {
- class WebContents;
- } // namespace content
- namespace web_modal {
- class WebContentsModalDialogHost;
- // Interface from SingleWebContentsDialogManager to
- // WebContentsModalDialogManager.
- class SingleWebContentsDialogManagerDelegate {
- public:
- SingleWebContentsDialogManagerDelegate() {}
- SingleWebContentsDialogManagerDelegate(
- const SingleWebContentsDialogManagerDelegate&) = delete;
- SingleWebContentsDialogManagerDelegate& operator=(
- const SingleWebContentsDialogManagerDelegate&) = delete;
- virtual ~SingleWebContentsDialogManagerDelegate() {}
- virtual content::WebContents* GetWebContents() const = 0;
- // Notify the delegate that the dialog is closing. The native
- // manager will be deleted before the end of this call.
- virtual void WillClose(gfx::NativeWindow dialog) = 0;
- };
- // Provides an interface for platform-specific UI implementation for the web
- // contents modal dialog. Each object will manage a single dialog window
- // during its lifecycle.
- //
- // Implementation classes should accept a dialog window at construction time
- // and register to be notified when the dialog is closing, so that it can
- // notify its delegate (WillClose method).
- class SingleWebContentsDialogManager {
- public:
- SingleWebContentsDialogManager(const SingleWebContentsDialogManager&) =
- delete;
- SingleWebContentsDialogManager& operator=(
- const SingleWebContentsDialogManager&) = delete;
- virtual ~SingleWebContentsDialogManager() {}
- // Makes the web contents modal dialog visible. Only one web contents modal
- // dialog is shown at a time per tab.
- virtual void Show() = 0;
- // Hides the web contents modal dialog without closing it.
- virtual void Hide() = 0;
- // Closes the web contents modal dialog.
- // If this method causes a WillClose() call to the delegate, the manager
- // will be deleted at the close of that invocation.
- virtual void Close() = 0;
- // Sets focus on the web contents modal dialog.
- virtual void Focus() = 0;
- // Runs a pulse animation for the web contents modal dialog.
- virtual void Pulse() = 0;
- // Called when the host view for the dialog has changed.
- virtual void HostChanged(WebContentsModalDialogHost* new_host) = 0;
- // Return the dialog under management by this object.
- virtual gfx::NativeWindow dialog() = 0;
- protected:
- SingleWebContentsDialogManager() {}
- };
- } // namespace web_modal
- #endif // COMPONENTS_WEB_MODAL_SINGLE_WEB_CONTENTS_DIALOG_MANAGER_H_
|