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.
5 #ifndef CHROME_BROWSER_UI_APP_LIST_APP_CONTEXT_MENU_H_
6 #define CHROME_BROWSER_UI_APP_LIST_APP_CONTEXT_MENU_H_
10 #include "base/basictypes.h"
11 #include "base/memory/scoped_ptr.h"
12 #include "ui/base/models/simple_menu_model.h"
14 class AppListControllerDelegate
;
17 namespace extensions
{
18 class ContextMenuMatcher
;
23 class AppContextMenuDelegate
;
25 class AppContextMenu
: public ui::SimpleMenuModel::Delegate
{
27 AppContextMenu(AppContextMenuDelegate
* delegate
,
29 const std::string
& app_id
,
30 AppListControllerDelegate
* controller
);
31 ~AppContextMenu() override
;
33 // Note this could return NULL if corresponding extension is gone.
34 ui::MenuModel
* GetMenuModel();
36 void set_is_platform_app(bool is_platform_app
) {
37 is_platform_app_
= is_platform_app
;
39 void set_is_search_result(bool is_search_result
) {
40 is_search_result_
= is_search_result
;
42 void set_is_in_folder(bool is_in_folder
) {
43 is_in_folder_
= is_in_folder
;
47 // ui::SimpleMenuModel::Delegate overrides:
48 bool IsItemForCommandIdDynamic(int command_id
) const override
;
49 base::string16
GetLabelForCommandId(int command_id
) const override
;
50 bool IsCommandIdChecked(int command_id
) const override
;
51 bool IsCommandIdEnabled(int command_id
) const override
;
52 bool GetAcceleratorForCommandId(int command_id
,
53 ui::Accelerator
* accelerator
) override
;
54 void ExecuteCommand(int command_id
, int event_flags
) override
;
56 AppContextMenuDelegate
* delegate_
;
58 const std::string app_id_
;
59 AppListControllerDelegate
* controller_
;
60 bool is_platform_app_
;
61 bool is_search_result_
;
64 scoped_ptr
<ui::SimpleMenuModel
> menu_model_
;
65 scoped_ptr
<extensions::ContextMenuMatcher
> extension_menu_items_
;
67 DISALLOW_COPY_AND_ASSIGN(AppContextMenu
);
70 } // namespace app_list
72 #endif // CHROME_BROWSER_UI_APP_LIST_APP_CONTEXT_MENU_H_