1// Copyright (c) 2012 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 ASH_SHELL_CONTEXT_MENU_H_
6#define ASH_SHELL_CONTEXT_MENU_H_
7
8#include "ash/shelf/shelf_alignment_menu.h"
9#include "ash/shelf/shelf_types.h"
10#include "base/basictypes.h"
11#include "ui/base/models/simple_menu_model.h"
12
13namespace aura {
14class RootWindow;
15}
16
17namespace ash {
18namespace shell {
19
20// Context menu for the ash_shell.
21class ContextMenu : public ui::SimpleMenuModel,
22                    public ui::SimpleMenuModel::Delegate {
23 public:
24  explicit ContextMenu(aura::Window* root);
25  virtual ~ContextMenu();
26
27  // ui::SimpleMenuModel::Delegate overrides:
28  virtual bool IsCommandIdChecked(int command_id) const OVERRIDE;
29  virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE;
30  virtual bool GetAcceleratorForCommandId(
31      int command_id,
32      ui::Accelerator* accelerator) OVERRIDE;
33  virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE;
34
35 private:
36  enum MenuItem {
37    MENU_AUTO_HIDE,
38    MENU_ALIGNMENT_MENU,
39  };
40
41  aura::Window* root_window_;
42
43  ShelfAlignmentMenu alignment_menu_;
44
45  DISALLOW_COPY_AND_ASSIGN(ContextMenu);
46};
47
48}  // namespace shell
49}  // namespace ash
50
51#endif  // ASH_SHELL_CONTEXT_MENU_H_
52