summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/infobars/infobars.h
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/views/infobars/infobars.h')
-rw-r--r--chrome/browser/views/infobars/infobars.h244
1 files changed, 3 insertions, 241 deletions
diff --git a/chrome/browser/views/infobars/infobars.h b/chrome/browser/views/infobars/infobars.h
index ec270d5..9345bdc 100644
--- a/chrome/browser/views/infobars/infobars.h
+++ b/chrome/browser/views/infobars/infobars.h
@@ -6,246 +6,8 @@
#define CHROME_BROWSER_VIEWS_INFOBARS_INFOBARS_H_
#pragma once
-#include "app/animation.h"
-#include "base/task.h"
-#include "chrome/browser/tab_contents/infobar_delegate.h"
-#include "views/controls/button/button.h"
-#include "views/controls/link.h"
-#include "views/focus/focus_manager.h"
-
-class InfoBarContainer;
-class SlideAnimation;
-namespace views {
-class ExternalFocusTracker;
-class ImageButton;
-class ImageView;
-class Label;
-class NativeButton;
-}
-
-// This file contains implementations for some general purpose InfoBars. See
-// chrome/browser/tab_contents/infobar_delegate.h for the delegate interface(s)
-// that you must implement to use these.
-
-class InfoBarBackground : public views::Background {
- public:
- explicit InfoBarBackground(InfoBarDelegate::Type infobar_type);
-
- // Overridden from views::Background:
- virtual void Paint(gfx::Canvas* canvas, views::View* view) const;
-
- private:
- scoped_ptr<views::Background> gradient_background_;
-
- DISALLOW_COPY_AND_ASSIGN(InfoBarBackground);
-};
-
-class InfoBar : public views::View,
- public views::ButtonListener,
- public views::FocusChangeListener,
- public AnimationDelegate {
- public:
- explicit InfoBar(InfoBarDelegate* delegate);
- virtual ~InfoBar();
-
- InfoBarDelegate* delegate() const { return delegate_; }
-
- // Set a link to the parent InfoBarContainer. This must be set before the
- // InfoBar is added to the view hierarchy.
- void set_container(InfoBarContainer* container) { container_ = container; }
-
- // The target height of the InfoBar, regardless of what its current height
- // is (due to animation).
- static const double kDefaultTargetHeight;
-
- static const int kHorizontalPadding;
- static const int kIconLabelSpacing;
- static const int kButtonButtonSpacing;
- static const int kEndOfLabelSpacing;
- static const int kCloseButtonSpacing;
- static const int kButtonInLabelSpacing;
-
- // Overridden from views::View:
- virtual AccessibilityTypes::Role GetAccessibleRole();
- virtual gfx::Size GetPreferredSize();
- virtual void Layout();
-
- protected:
- // Overridden from views::View:
- virtual void ViewHierarchyChanged(bool is_add,
- views::View* parent,
- views::View* child);
-
- // Returns the available width of the View for use by child view layout,
- // excluding the close button.
- virtual int GetAvailableWidth() const;
-
- // Removes our associated InfoBarDelegate from the associated TabContents.
- // (Will lead to this InfoBar being closed).
- void RemoveInfoBar() const;
-
- void set_target_height(double height) { target_height_ = height; }
-
- SlideAnimation* animation() { return animation_.get(); }
-
- // Returns a centered y-position of a control of height specified in
- // |prefsize| within the standard InfoBar height. Stable during an animation.
- int CenterY(const gfx::Size prefsize);
-
- // Returns a centered y-position of a control of height specified in
- // |prefsize| within the standard InfoBar height, adjusted according to the
- // current amount of animation offset the |parent| InfoBar currently has.
- // Changes during an animation.
- int OffsetY(views::View* parent, const gfx::Size prefsize);
-
- // Overridden from views::ButtonListener:
- virtual void ButtonPressed(views::Button* sender, const views::Event& event);
-
- // Overridden from views::FocusChangeListener:
- virtual void FocusWillChange(View* focused_before, View* focused_now);
-
- // Overridden from AnimationDelegate:
- virtual void AnimationProgressed(const Animation* animation);
- virtual void AnimationEnded(const Animation* animation);
-
- private:
- friend class InfoBarContainer;
-
- // 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();
-
- // Called when an InfoBar is added or removed from a view hierarchy to do
- // setup and shutdown.
- void InfoBarAdded();
- void InfoBarRemoved();
-
- // Destroys the external focus tracker, if present. If |restore_focus| is
- // true, restores focus to the view tracked by the focus tracker before doing
- // so.
- void DestroyFocusTracker(bool restore_focus);
-
- // Deletes this object (called after a return to the message loop to allow
- // the stack in ViewHierarchyChanged to unwind).
- void DeleteSelf();
-
- // The InfoBar's container
- InfoBarContainer* container_;
-
- // The InfoBar's delegate.
- InfoBarDelegate* delegate_;
-
- // The Close Button at the right edge of the InfoBar.
- views::ImageButton* close_button_;
-
- // The animation that runs when the InfoBar is opened or closed.
- scoped_ptr<SlideAnimation> animation_;
-
- // Tracks and stores the last focused view which is not the InfoBar or any of
- // its children. Used to restore focus once the InfoBar is closed.
- scoped_ptr<views::ExternalFocusTracker> focus_tracker_;
-
- // Used to delete this object after a return to the message loop.
- ScopedRunnableMethodFactory<InfoBar> delete_factory_;
-
- // The target height for the InfoBar.
- double target_height_;
-
- 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 LinkInfoBar : public InfoBar,
- public views::LinkController {
- public:
- explicit LinkInfoBar(LinkInfoBarDelegate* delegate);
- virtual ~LinkInfoBar();
-
- // Overridden from views::LinkController:
- virtual void LinkActivated(views::Link* source, int event_flags);
-
- // Overridden from views::View:
- virtual void Layout();
-
- private:
- LinkInfoBarDelegate* GetDelegate();
-
- views::ImageView* icon_;
- views::Label* label_1_;
- views::Label* label_2_;
- views::Link* link_;
-
- DISALLOW_COPY_AND_ASSIGN(LinkInfoBar);
-};
-
-class ConfirmInfoBar : public AlertInfoBar,
- public views::LinkController {
- public:
- explicit ConfirmInfoBar(ConfirmInfoBarDelegate* delegate);
- virtual ~ConfirmInfoBar();
-
- // Overridden from views::LinkController:
- virtual void LinkActivated(views::Link* source, int event_flags);
-
- // 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::ButtonListener:
- virtual void ButtonPressed(views::Button* sender, const views::Event& event);
-
- // Overridden from InfoBar:
- virtual int GetAvailableWidth() const;
-
- private:
- void Init();
-
- ConfirmInfoBarDelegate* GetDelegate();
-
- views::NativeButton* ok_button_;
- views::NativeButton* cancel_button_;
- views::Link* link_;
-
- bool initialized_;
-
- DISALLOW_COPY_AND_ASSIGN(ConfirmInfoBar);
-};
-
+#include "chrome/browser/ui/views/infobars/infobars.h"
+// TODO(beng): remove this file once all includes have been updated.
#endif // CHROME_BROWSER_VIEWS_INFOBARS_INFOBARS_H_
+