tab_menu_model.h revision 72a454cd3513ac24fbdd0e0cb9ad70b86a99b801
1// Copyright (c) 2010 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#ifndef CHROME_BROWSER_UI_TABS_TAB_MENU_MODEL_H_
6#define CHROME_BROWSER_UI_TABS_TAB_MENU_MODEL_H_
7#pragma once
8
9#include "ui/base/models/simple_menu_model.h"
10
11// A menu model that builds the contents of the tab context menu. This menu has
12// only one level (no submenus). TabMenuModel caches local state from the
13// tab (such as the pinned state). To make sure the menu reflects the real state
14// of the tab a new TabMenuModel should be created each time the menu is shown.
15class TabMenuModel : public ui::SimpleMenuModel {
16 public:
17  TabMenuModel(ui::SimpleMenuModel::Delegate* delegate, bool is_pinned);
18  virtual ~TabMenuModel() {}
19
20  // Returns true if vertical tabs are enabled.
21  static bool AreVerticalTabsEnabled();
22
23 private:
24  void Build(bool is_pinned);
25
26  DISALLOW_COPY_AND_ASSIGN(TabMenuModel);
27};
28
29#endif  // CHROME_BROWSER_UI_TABS_TAB_MENU_MODEL_H_
30