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