blob: 4df36800c715eb7e3ec4a283ffd4daffae8e9f7b [file] [log] [blame]
// 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_