1// Copyright 2013 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_SHELF_SHELF_ALIGNMENT_MENU_H_
6#define ASH_SHELF_SHELF_ALIGNMENT_MENU_H_
7
8#include "ash/ash_export.h"
9#include "base/basictypes.h"
10#include "ui/base/models/simple_menu_model.h"
11
12namespace aura {
13class RootWindow;
14}
15
16namespace ash {
17
18// Submenu for choosing the alignment of the launcher.
19class ASH_EXPORT ShelfAlignmentMenu : public ui::SimpleMenuModel,
20                                      public ui::SimpleMenuModel::Delegate {
21 public:
22  explicit ShelfAlignmentMenu(aura::Window* root);
23  virtual ~ShelfAlignmentMenu();
24
25  // ui::SimpleMenuModel::Delegate overrides:
26  virtual bool IsCommandIdChecked(int command_id) const OVERRIDE;
27  virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE;
28  virtual bool GetAcceleratorForCommandId(
29      int command_id,
30      ui::Accelerator* accelerator) OVERRIDE;
31  virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE;
32
33 private:
34  enum MenuItem {
35    // Offset so as not to interfere with other menus.
36    MENU_ALIGN_LEFT = 500,
37    MENU_ALIGN_RIGHT,
38    MENU_ALIGN_BOTTOM,
39  };
40
41  aura::Window* root_window_;
42
43  DISALLOW_COPY_AND_ASSIGN(ShelfAlignmentMenu);
44};
45
46}  // namespace ash
47
48#endif  // ASH_SHELF_SHELF_ALIGNMENT_MENU_H_
49