Index: chrome/browser/ui/views/frame/browser_view_layout.h |
diff --git a/chrome/browser/ui/views/frame/browser_view_layout.h b/chrome/browser/ui/views/frame/browser_view_layout.h |
index c9af58a9036033b3cca3d22b1f044a1dbe0de3e2..a02642242e64be080b4fbf42b4b69c6e0b8d4470 100644 |
--- a/chrome/browser/ui/views/frame/browser_view_layout.h |
+++ b/chrome/browser/ui/views/frame/browser_view_layout.h |
@@ -15,13 +15,14 @@ |
class BookmarkBarView; |
class Browser; |
class BrowserView; |
+class BrowserViewLayoutDelegate; |
class ContentsContainer; |
-class DownloadShelfView; |
+class ImmersiveModeController; |
class InfoBarContainerView; |
class OverlayContainer; |
class TabContentsContainer; |
class TabStrip; |
-class ToolbarView; |
+class TopContainerView; |
class WebContentsModalDialogHost; |
namespace gfx { |
@@ -42,19 +43,31 @@ class BrowserViewLayout : public views::LayoutManager { |
BrowserViewLayout(); |
virtual ~BrowserViewLayout(); |
- // Sets all the views to be managed. Tests may inject stubs or NULL. |
- void Init(Browser* browser, |
+ // Sets all the views to be managed. Takes ownership of |delegate|. |
+ // |browser_view| may be NULL in tests. |
+ void Init(BrowserViewLayoutDelegate* delegate, |
+ Browser* browser, |
BrowserView* browser_view, |
+ views::View* top_container, |
+ TabStrip* tab_strip, |
+ views::View* toolbar, |
InfoBarContainerView* infobar_container, |
- views::SingleSplitView* contents_split, |
+ views::View* contents_split, |
ContentsContainer* contents_container, |
- OverlayContainer* overlay_container); |
+ OverlayContainer* overlay_container, |
+ ImmersiveModeController* immersive_mode_controller); |
// Sets or updates views that are not available when |this| is initialized. |
+ void set_window_switcher_button(views::View* button) { |
+ window_switcher_button_ = button; |
+ } |
+ void set_tab_strip(TabStrip* tab_strip) { |
+ tab_strip_ = tab_strip; |
+ } |
void set_bookmark_bar(BookmarkBarView* bookmark_bar) { |
bookmark_bar_ = bookmark_bar; |
} |
- void set_download_shelf(DownloadShelfView* download_shelf) { |
+ void set_download_shelf(views::View* download_shelf) { |
download_shelf_ = download_shelf; |
} |
@@ -83,6 +96,7 @@ class BrowserViewLayout : public views::LayoutManager { |
private: |
FRIEND_TEST_ALL_PREFIXES(BrowserViewLayoutTest, BrowserViewLayout); |
FRIEND_TEST_ALL_PREFIXES(BrowserViewLayoutTest, Layout); |
+ FRIEND_TEST_ALL_PREFIXES(BrowserViewLayoutTest, LayoutDownloadShelf); |
class WebContentsModalDialogHostViews; |
enum InstantUIState { |
@@ -99,7 +113,7 @@ class BrowserViewLayout : public views::LayoutManager { |
// Layout the tab strip region, returns the coordinate of the bottom of the |
// TabStrip, for laying out subsequent controls. |
- int LayoutTabStripRegion(); |
+ int LayoutTabStripRegion(views::View* browser_view); |
// Layout the following controls, starting at |top|, returns the coordinate |
// of the bottom of the control, for laying out the next control. |
@@ -140,19 +154,31 @@ class BrowserViewLayout : public views::LayoutManager { |
// Returns true if an infobar is showing. |
bool InfobarVisible() const; |
+ // The delegate interface. May be a mock in tests. |
+ scoped_ptr<BrowserViewLayoutDelegate> delegate_; |
+ |
// The browser from the owning BrowserView. |
Browser* browser_; |
// The owning BrowserView. May be NULL in tests. |
+ // TODO(jamescook): Remove this, use the views::View passed in to Layout(). |
BrowserView* browser_view_; |
// Child views that the layout manager manages. |
+ // NOTE: If you add a view, try to add it as a views::View, which makes |
+ // testing much easier. |
+ views::View* top_container_; |
+ TabStrip* tab_strip_; |
+ views::View* toolbar_; |
BookmarkBarView* bookmark_bar_; |
InfoBarContainerView* infobar_container_; |
- views::SingleSplitView* contents_split_; |
+ views::View* contents_split_; |
ContentsContainer* contents_container_; |
OverlayContainer* overlay_container_; |
- DownloadShelfView* download_shelf_; |
+ views::View* window_switcher_button_; |
+ views::View* download_shelf_; |
+ |
+ ImmersiveModeController* immersive_mode_controller_; |
// The bounds within which the vertically-stacked contents of the BrowserView |
// should be laid out within. This is just the local bounds of the |