Home | History | Annotate | Download | only in shell
      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 
     13 namespace aura {
     14 class RootWindow;
     15 }
     16 
     17 namespace ash {
     18 namespace shell {
     19 
     20 // Context menu for the ash_shell.
     21 class 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