| Index: chrome/browser/infobar_delegate.h
|
| ===================================================================
|
| --- chrome/browser/infobar_delegate.h (revision 0)
|
| +++ chrome/browser/infobar_delegate.h (revision 0)
|
| @@ -0,0 +1,122 @@
|
| +// Copyright (c) 2006-2008 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 CHROME_BROWSER_INFOBAR_DELEGATE_H_
|
| +#define CHROME_BROWSER_INFOBAR_DELEGATE_H_
|
| +
|
| +#include "base/basictypes.h"
|
| +#include "skia/include/SkBitmap.h"
|
| +
|
| +class AlertInfoBarDelegate;
|
| +class ConfirmInfoBarDelegate;
|
| +class InfoBar;
|
| +
|
| +// An interface implemented by objects wishing to control an InfoBar.
|
| +// Implementing this interface is not sufficient to use an InfoBar, since it
|
| +// does not map to a specific InfoBar type. Instead, you must implement either
|
| +// AlertInfoBarDelegate or ConfirmInfoBarDelegate, or override with your own
|
| +// delegate for your own InfoBar variety.
|
| +class InfoBarDelegate {
|
| + public:
|
| + // Returns true if the supplied |delegate| is equal to this one. Equality is
|
| + // left to the implementation to define. This function is called by the
|
| + // TabContents when determining whether or not a delegate should be added
|
| + // because a matching one already exists. If this function returns true, the
|
| + // TabContents will not add the new delegate because it considers one to
|
| + // already be present.
|
| + virtual bool EqualsDelegate(InfoBarDelegate* delegate) const {
|
| + return false;
|
| + }
|
| +
|
| + // Returns true if the InfoBar should be closed automatically after the page
|
| + // is navigated.
|
| + virtual bool ShouldCloseOnNavigate() const { return true; }
|
| +
|
| + // Called after the InfoBar is closed. The delegate is free to delete itself
|
| + // at this point.
|
| + virtual void InfoBarClosed() {}
|
| +
|
| + // Called to create the InfoBar. Implementation of this method is
|
| + // platform-specific.
|
| + virtual InfoBar* CreateInfoBar() = 0;
|
| +
|
| + // Returns a pointer to the ConfirmInfoBarDelegate interface, if implemented.
|
| + virtual AlertInfoBarDelegate* AsAlertInfoBarDelegate() {
|
| + return NULL;
|
| + }
|
| +
|
| + // Returns a pointer to the ConfirmInfoBarDelegate interface, if implemented.
|
| + virtual ConfirmInfoBarDelegate* AsConfirmInfoBarDelegate() {
|
| + return NULL;
|
| + }
|
| +};
|
| +
|
| +// An interface derived from InfoBarDelegate implemented by objects wishing to
|
| +// control an AlertInfoBar.
|
| +class AlertInfoBarDelegate : public InfoBarDelegate {
|
| + public:
|
| + // Returns the message string to be displayed for the InfoBar.
|
| + virtual std::wstring GetMessageText() const = 0;
|
| +
|
| + // Return the icon to be shown for this InfoBar. If the returned bitmap is
|
| + // NULL, no icon is shown.
|
| + virtual SkBitmap* GetIcon() const { return NULL; }
|
| +
|
| + // Overridden from InfoBarDelegate:
|
| + virtual bool EqualsDelegate(InfoBarDelegate* delegate) const;
|
| + virtual InfoBar* CreateInfoBar();
|
| + virtual AlertInfoBarDelegate* AsAlertInfoBarDelegate() { return this; }
|
| +};
|
| +
|
| +// An interface derived from InfoBarDelegate implemented by objects wishing to
|
| +// control a ConfirmInfoBar.
|
| +class ConfirmInfoBarDelegate : public AlertInfoBarDelegate {
|
| + public:
|
| + enum InfoBarButton {
|
| + BUTTON_NONE = 0,
|
| + BUTTON_OK,
|
| + BUTTON_CANCEL
|
| + };
|
| +
|
| + // Return the buttons to be shown for this InfoBar.
|
| + virtual int GetButtons() const {
|
| + return BUTTON_NONE;
|
| + }
|
| +
|
| + // Return the label for the specified button. The default implementation
|
| + // returns "OK" for the OK button and "Cancel" for the Cancel button.
|
| + virtual std::wstring GetButtonLabel(InfoBarButton button) const;
|
| +
|
| + // Called when the OK button is pressed.
|
| + virtual void Accept() {}
|
| +
|
| + // Called when the Cancel button is pressed.
|
| + virtual void Cancel() {}
|
| +
|
| + // Overridden from InfoBarDelegate:
|
| + virtual InfoBar* CreateInfoBar();
|
| + virtual ConfirmInfoBarDelegate* AsConfirmInfoBarDelegate() {
|
| + return this;
|
| + }
|
| +};
|
| +
|
| +// Simple implementations for common use cases ---------------------------------
|
| +
|
| +class SimpleAlertInfoBarDelegate : public AlertInfoBarDelegate {
|
| + public:
|
| + SimpleAlertInfoBarDelegate(const std::wstring& message, SkBitmap* icon);
|
| +
|
| + // Overridden from AlertInfoBarDelegate:
|
| + virtual std::wstring GetMessageText() const;
|
| + virtual SkBitmap* GetIcon() const;
|
| + virtual void InfoBarClosed();
|
| +
|
| + private:
|
| + std::wstring message_;
|
| + SkBitmap* icon_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(SimpleAlertInfoBarDelegate);
|
| +};
|
| +
|
| +#endif // #ifndef CHROME_BROWSER_INFOBAR_DELEGATE_H_
|
|
|
| Property changes on: chrome\browser\infobar_delegate.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|