| // Copyright (c) 2012 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_NATIVE_WEB_CONTENTS_MODAL_DIALOG_MANAGER_H_ |
| #define COMPONENTS_WEB_MODAL_NATIVE_WEB_CONTENTS_MODAL_DIALOG_MANAGER_H_ |
| |
| #include "components/web_modal/native_web_contents_modal_dialog.h" |
| |
| namespace content { |
| class WebContents; |
| } // namespace content |
| |
| namespace web_modal { |
| |
| class WebContentsModalDialogHost; |
| |
| // Interface from NativeWebContentsModalDialogManager to |
| // WebContentsModalDialogManager. |
| class NativeWebContentsModalDialogManagerDelegate { |
| public: |
| NativeWebContentsModalDialogManagerDelegate() {} |
| virtual ~NativeWebContentsModalDialogManagerDelegate() {} |
| |
| virtual content::WebContents* GetWebContents() const = 0; |
| virtual void WillClose(NativeWebContentsModalDialog dialog) = 0; |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(NativeWebContentsModalDialogManagerDelegate); |
| }; |
| |
| // Provides an interface for platform-specific UI implementation for the web |
| // contents modal dialog. |
| class NativeWebContentsModalDialogManager { |
| public: |
| virtual ~NativeWebContentsModalDialogManager() {} |
| |
| // Starts management of the modal aspects of the dialog. This function should |
| // also register to be notified when the dialog is closing, so that it can |
| // notify the manager. |
| virtual void ManageDialog(NativeWebContentsModalDialog dialog) = 0; |
| |
| // Makes the web contents modal dialog visible. Only one web contents modal |
| // dialog is shown at a time per tab. |
| virtual void ShowDialog(NativeWebContentsModalDialog dialog) = 0; |
| |
| // Hides the web contents modal dialog without closing it. |
| virtual void HideDialog(NativeWebContentsModalDialog dialog) = 0; |
| |
| // Closes the web contents modal dialog. |
| virtual void CloseDialog(NativeWebContentsModalDialog dialog) = 0; |
| |
| // Sets focus on the web contents modal dialog. |
| virtual void FocusDialog(NativeWebContentsModalDialog dialog) = 0; |
| |
| // Runs a pulse animation for the web contents modal dialog. |
| virtual void PulseDialog(NativeWebContentsModalDialog dialog) = 0; |
| |
| // Called when the host view for the dialog has changed. |
| virtual void HostChanged(WebContentsModalDialogHost* new_host) = 0; |
| |
| protected: |
| NativeWebContentsModalDialogManager() {} |
| |
| private: |
| DISALLOW_COPY_AND_ASSIGN(NativeWebContentsModalDialogManager); |
| }; |
| |
| } // namespace web_modal |
| |
| #endif // COMPONENTS_WEB_MODAL_NATIVE_WEB_CONTENTS_MODAL_DIALOG_MANAGER_H_ |