OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ash/shell_context_menu.h" | 5 #include "ash/shell_context_menu.h" |
6 | 6 |
7 #include "ash/desktop_background/desktop_background_controller.h" | 7 #include "ash/desktop_background/desktop_background_controller.h" |
8 #include "ash/shell.h" | 8 #include "ash/shell.h" |
9 #include "grit/ash_strings.h" | 9 #include "grit/ash_strings.h" |
10 #include "ui/base/l10n/l10n_util.h" | 10 #include "ui/base/l10n/l10n_util.h" |
11 #include "ui/views/controls/menu/menu_model_adapter.h" | 11 #include "ui/views/controls/menu/menu_model_adapter.h" |
12 #include "ui/views/controls/menu/menu_runner.h" | 12 #include "ui/views/controls/menu/menu_runner.h" |
13 | 13 |
14 namespace ash { | 14 namespace ash { |
15 namespace internal { | 15 namespace internal { |
16 | 16 |
17 ShellContextMenu::ShellContextMenu() { | 17 ShellContextMenu::ShellContextMenu() { |
18 } | 18 } |
19 | 19 |
20 ShellContextMenu::~ShellContextMenu() { | 20 ShellContextMenu::~ShellContextMenu() { |
21 } | 21 } |
22 | 22 |
23 void ShellContextMenu::ShowMenu(views::Widget* widget, | 23 void ShellContextMenu::ShowMenu(views::Widget* widget, |
24 const gfx::Point& location) { | 24 const gfx::Point& location) { |
25 if (!Shell::GetInstance()->user_wallpaper_delegate()-> | |
26 CanOpenSetWallpaperPage()) | |
27 return; | |
28 ui::SimpleMenuModel menu_model(this); | 25 ui::SimpleMenuModel menu_model(this); |
29 menu_model.AddItem(MENU_CHANGE_WALLPAPER, | 26 menu_model.AddItem(MENU_CHANGE_WALLPAPER, |
30 l10n_util::GetStringUTF16(IDS_AURA_SET_DESKTOP_WALLPAPER)); | 27 l10n_util::GetStringUTF16(IDS_AURA_SET_DESKTOP_WALLPAPER)); |
31 views::MenuModelAdapter menu_model_adapter(&menu_model); | 28 views::MenuModelAdapter menu_model_adapter(&menu_model); |
32 menu_runner_.reset(new views::MenuRunner(menu_model_adapter.CreateMenu())); | 29 menu_runner_.reset(new views::MenuRunner(menu_model_adapter.CreateMenu())); |
33 if (menu_runner_->RunMenuAt( | 30 if (menu_runner_->RunMenuAt( |
34 widget, NULL, gfx::Rect(location, gfx::Size()), | 31 widget, NULL, gfx::Rect(location, gfx::Size()), |
35 views::MenuItemView::TOPRIGHT, views::MenuRunner::HAS_MNEMONICS) == | 32 views::MenuItemView::TOPRIGHT, views::MenuRunner::HAS_MNEMONICS) == |
36 views::MenuRunner::MENU_DELETED) | 33 views::MenuRunner::MENU_DELETED) |
37 return; | 34 return; |
38 } | 35 } |
39 | 36 |
40 bool ShellContextMenu::IsCommandIdChecked(int command_id) const { | 37 bool ShellContextMenu::IsCommandIdChecked(int command_id) const { |
41 return false; | 38 return false; |
42 } | 39 } |
43 | 40 |
44 bool ShellContextMenu::IsCommandIdEnabled(int command_id) const { | 41 bool ShellContextMenu::IsCommandIdEnabled(int command_id) const { |
45 return true; | 42 switch (static_cast<MenuItem>(command_id)) { |
| 43 case MENU_CHANGE_WALLPAPER: { |
| 44 return Shell::GetInstance()->user_wallpaper_delegate()-> |
| 45 CanOpenSetWallpaperPage(); |
| 46 } |
| 47 default: |
| 48 return true; |
| 49 } |
46 } | 50 } |
47 | 51 |
48 void ShellContextMenu::ExecuteCommand(int command_id) { | 52 void ShellContextMenu::ExecuteCommand(int command_id) { |
49 switch (static_cast<MenuItem>(command_id)) { | 53 switch (static_cast<MenuItem>(command_id)) { |
50 case MENU_CHANGE_WALLPAPER: { | 54 case MENU_CHANGE_WALLPAPER: { |
51 Shell::GetInstance()->user_wallpaper_delegate()-> | 55 Shell::GetInstance()->user_wallpaper_delegate()-> |
52 OpenSetWallpaperPage(); | 56 OpenSetWallpaperPage(); |
53 break; | 57 break; |
54 } | 58 } |
55 } | 59 } |
56 } | 60 } |
57 | 61 |
58 bool ShellContextMenu::GetAcceleratorForCommandId( | 62 bool ShellContextMenu::GetAcceleratorForCommandId( |
59 int command_id, | 63 int command_id, |
60 ui::Accelerator* accelerator) { | 64 ui::Accelerator* accelerator) { |
61 return false; | 65 return false; |
62 } | 66 } |
63 | 67 |
64 } // namespace internal | 68 } // namespace internal |
65 } // namespace ash | 69 } // namespace ash |
OLD | NEW |