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.
13AbstractTabStripView* 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