Index: chrome/browser/views/infobars/infobar_container.h |
=================================================================== |
--- chrome/browser/views/infobars/infobar_container.h (revision 0) |
+++ chrome/browser/views/infobars/infobar_container.h (revision 0) |
@@ -0,0 +1,73 @@ |
+// 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_INFOBAR_CONTAINER_H_ |
+#define CHROME_BROWSER_VIEWS_INFOBARS_INFOBAR_CONTAINER_H_ |
+ |
+#include "chrome/common/notification_service.h" |
+#include "chrome/views/view.h" |
+ |
+class BrowserView; |
+class InfoBarDelegate; |
+class TabContents; |
+ |
+// A views::View subclass that contains a collection of InfoBars associated with |
+// a TabContents. |
+class InfoBarContainer : public views::View, |
+ public NotificationObserver { |
+ public: |
+ explicit InfoBarContainer(BrowserView* browser_view); |
+ virtual ~InfoBarContainer(); |
+ |
+ // Changes the TabContents for which this container is showing InfoBars. Can |
+ // be NULL. |
+ void ChangeTabContents(TabContents* contents); |
+ |
+ // Called by child InfoBars as they animate. If |completed| is true, the |
+ // animation has finished running. |
+ void InfoBarAnimated(bool completed); |
+ |
+ // Remove the specified InfoBarDelegate from the selected TabContents. This |
+ // will notify us back and cause us to close the View. This is called from |
+ // the InfoBar's close button handler. |
+ void RemoveDelegate(InfoBarDelegate* delegate); |
+ |
+ // Overridden from views::View: |
+ virtual gfx::Size GetPreferredSize(); |
+ virtual void Layout(); |
+ protected: |
+ virtual void ViewHierarchyChanged(bool is_add, |
+ views::View* parent, |
+ views::View* child); |
+ |
+ private: |
+ // Overridden from NotificationObserver: |
+ virtual void Observe(NotificationType type, |
+ const NotificationSource& source, |
+ const NotificationDetails& details); |
+ |
+ // Constructs the InfoBars needed to reflect the state of the current |
+ // TabContents associated with this container. No animations are run during |
+ // this process. |
+ void UpdateInfoBars(); |
+ |
+ // Adds an InfoBar for the specified delegate, in response to a notification |
+ // from the selected TabContents. The InfoBar's appearance will be animated. |
+ void AddInfoBar(InfoBarDelegate* delegate); |
+ |
+ // Removes an InfoBar for the specified delegate, in response to a |
+ // notification from the selected TabContents. The InfoBar's disappearance |
+ // will be animated. |
+ void RemoveInfoBar(InfoBarDelegate* delegate); |
+ |
+ // The BrowserView that hosts this InfoBarContainer. |
+ BrowserView* browser_view_; |
+ |
+ // The TabContents for which we are currently showing InfoBars. |
+ TabContents* tab_contents_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(InfoBarContainer); |
+}; |
+ |
+#endif // #ifndef CHROME_BROWSER_VIEWS_INFOBARS_INFOBAR_CONTAINER_H_ |
Property changes on: chrome\browser\views\infobars\infobar_container.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |