| Index: chrome/browser/views/infobars/infobars.h
|
| ===================================================================
|
| --- chrome/browser/views/infobars/infobars.h (revision 0)
|
| +++ chrome/browser/views/infobars/infobars.h (revision 0)
|
| @@ -0,0 +1,138 @@
|
| +// 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_VIEWS_INFOBARS_INFOBARS_H_
|
| +#define CHROME_BROWSER_VIEWS_INFOBARS_INFOBARS_H_
|
| +
|
| +#include "chrome/browser/infobar_delegate.h"
|
| +#include "chrome/views/base_button.h"
|
| +#include "chrome/views/native_button.h"
|
| +
|
| +class InfoBarContainer;
|
| +class SlideAnimation;
|
| +namespace views {
|
| +class Button;
|
| +class ImageView;
|
| +class Label;
|
| +}
|
| +
|
| +// This file contains implementations for some general purpose InfoBars. See
|
| +// chrome/browser/infobar_delegate.h for the delegate interface(s) that you must
|
| +// implement to use these.
|
| +
|
| +class InfoBar : public views::View,
|
| + public views::BaseButton::ButtonListener,
|
| + public AnimationDelegate {
|
| + public:
|
| + explicit InfoBar(InfoBarDelegate* delegate);
|
| + virtual ~InfoBar();
|
| +
|
| + InfoBarDelegate* delegate() const { return delegate_; }
|
| +
|
| + void set_container(InfoBarContainer* container) { container_ = container; }
|
| +
|
| + // Starts animating the InfoBar open.
|
| + void AnimateOpen();
|
| +
|
| + // Opens the InfoBar immediately.
|
| + void Open();
|
| +
|
| + // Starts animating the InfoBar closed. It will not be closed until the
|
| + // animation has completed, when |Close| will be called.
|
| + void AnimateClose();
|
| +
|
| + // Closes the InfoBar immediately and removes it from its container. Notifies
|
| + // the delegate that it has closed. The InfoBar is deleted after this function
|
| + // is called.
|
| + void Close();
|
| +
|
| + // Overridden from views::View:
|
| + virtual gfx::Size GetPreferredSize();
|
| + virtual void Layout();
|
| +
|
| + protected:
|
| + // Returns the available width of the View for use by child view layout,
|
| + // excluding the close button.
|
| + virtual int GetAvailableWidth() const;
|
| +
|
| + private:
|
| + // Overridden from views::Button::ButtonListener:
|
| + virtual void ButtonPressed(views::BaseButton* sender);
|
| +
|
| + // Overridden from AnimationDelegate:
|
| + virtual void AnimationProgressed(const Animation* animation);
|
| + virtual void AnimationEnded(const Animation* animation);
|
| +
|
| + // The InfoBar's container
|
| + InfoBarContainer* container_;
|
| +
|
| + // The InfoBar's delegate.
|
| + InfoBarDelegate* delegate_;
|
| +
|
| + // The Close Button at the right edge of the InfoBar.
|
| + views::Button* close_button_;
|
| +
|
| + // The animation that runs when the InfoBar is opened or closed.
|
| + scoped_ptr<SlideAnimation> animation_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(InfoBar);
|
| +};
|
| +
|
| +class AlertInfoBar : public InfoBar {
|
| + public:
|
| + explicit AlertInfoBar(AlertInfoBarDelegate* delegate);
|
| + virtual ~AlertInfoBar();
|
| +
|
| + // Overridden from views::View:
|
| + virtual void Layout();
|
| +
|
| + protected:
|
| + views::Label* label() const { return label_; }
|
| + views::ImageView* icon() const { return icon_; }
|
| +
|
| + private:
|
| + AlertInfoBarDelegate* GetDelegate();
|
| +
|
| + views::Label* label_;
|
| + views::ImageView* icon_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(AlertInfoBar);
|
| +};
|
| +
|
| +class ConfirmInfoBar : public AlertInfoBar,
|
| + public views::NativeButton::Listener {
|
| + public:
|
| + explicit ConfirmInfoBar(ConfirmInfoBarDelegate* delegate);
|
| + virtual ~ConfirmInfoBar();
|
| +
|
| + // Overridden from views::View:
|
| + virtual void Layout();
|
| +
|
| + protected:
|
| + // Overridden from views::View:
|
| + virtual void ViewHierarchyChanged(bool is_add,
|
| + views::View* parent,
|
| + views::View* child);
|
| +
|
| + // Overridden from views::NativeButton::Listener:
|
| + virtual void ButtonPressed(views::NativeButton* sender);
|
| +
|
| + // Overridden from InfoBar:
|
| + virtual int GetAvailableWidth() const;
|
| +
|
| + private:
|
| + void Init();
|
| +
|
| + ConfirmInfoBarDelegate* GetDelegate();
|
| +
|
| + views::NativeButton* ok_button_;
|
| + views::NativeButton* cancel_button_;
|
| +
|
| + bool initialized_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(ConfirmInfoBar);
|
| +};
|
| +
|
| +
|
| +#endif // #ifndef CHROME_BROWSER_VIEWS_INFOBARS_INFOBARS_H_
|
|
|
| Property changes on: chrome\browser\views\infobars\infobars.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|