• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "chrome/browser/ui/views/tabs/tab_strip_factory.h"
6 
7 #include "chrome/browser/ui/views/tabs/browser_tab_strip_controller.h"
8 #include "chrome/browser/ui/views/tabs/side_tab_strip.h"
9 #include "chrome/browser/ui/views/tabs/tab_strip.h"
10 
11 // This default implementation of CreateTabStrip creates a TabStrip or a
12 // SideTabStrip, depending on whether we are using vertical tabs.
CreateTabStrip(Browser * browser,views::View * parent,TabStripModel * model,bool use_vertical_tabs)13 AbstractTabStripView* CreateTabStrip(Browser* browser,
14                                      views::View* parent,
15                                      TabStripModel* model,
16                                      bool use_vertical_tabs) {
17   BrowserTabStripController* tabstrip_controller =
18       new BrowserTabStripController(browser, model);
19   // Ownership of this controller is given to a specific tabstrip when we
20   // construct it below.
21 
22   BaseTabStrip* tabstrip = NULL;
23 
24   if (use_vertical_tabs)
25     tabstrip = new SideTabStrip(tabstrip_controller);
26   else
27     tabstrip = new TabStrip(tabstrip_controller);
28   parent->AddChildView(tabstrip);
29   tabstrip_controller->InitFromModel(tabstrip);
30   return tabstrip;
31 }
32 
33