Home | History | Annotate | Download | only in app_list
      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 UI_APP_LIST_APP_LIST_MENU_H_
      6 #define UI_APP_LIST_APP_LIST_MENU_H_
      7 
      8 #include "ui/app_list/app_list_view_delegate.h"
      9 #include "ui/base/models/simple_menu_model.h"
     10 
     11 namespace app_list {
     12 
     13 // Menu for the app list. This is shown in the top right hand corner of the
     14 // app list.
     15 // TODO(benwells): We should consider moving this into Chrome.
     16 class AppListMenu : public ui::SimpleMenuModel::Delegate {
     17  public:
     18   enum AppListMenuCommands {
     19     SHOW_SETTINGS,
     20     SHOW_HELP,
     21     SHOW_FEEDBACK,
     22     // |SELECT_PROFILE| must remain the last enum because values greater than
     23     // |SELECT_PROFILE| are used to indicate a profile index.
     24     SELECT_PROFILE,
     25   };
     26 
     27   explicit AppListMenu(AppListViewDelegate* delegate);
     28   virtual ~AppListMenu();
     29 
     30   ui::SimpleMenuModel* menu_model() { return &menu_model_; }
     31 
     32  private:
     33   void InitMenu();
     34 
     35   virtual bool IsCommandIdChecked(int command_id) const OVERRIDE;
     36   virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE;
     37   virtual bool GetAcceleratorForCommandId(
     38       int command_id,
     39       ui::Accelerator* accelerator) OVERRIDE;
     40   virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE;
     41 
     42   ui::SimpleMenuModel menu_model_;
     43   AppListViewDelegate* delegate_;
     44   AppListViewDelegate::Users users_;
     45 
     46   DISALLOW_COPY_AND_ASSIGN(AppListMenu);
     47 };
     48 
     49 }  // namespace app_list
     50 
     51 #endif  // UI_APP_LIST_APP_LIST_MENU_H_
     52