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/root_window_controller.h" | |
8 #include "ash/shelf/shelf.h" | 7 #include "ash/shelf/shelf.h" |
9 #include "ash/shelf/shelf_types.h" | 8 #include "ash/shelf/shelf_types.h" |
10 #include "ash/shell.h" | |
11 #include "grit/ash_strings.h" | 9 #include "grit/ash_strings.h" |
12 | 10 |
13 namespace ash { | 11 namespace ash { |
14 namespace shell { | 12 namespace shell { |
15 | 13 |
16 ContextMenu::ContextMenu(aura::Window* root) | 14 ContextMenu::ContextMenu(ash::Shelf* shelf) |
17 : ui::SimpleMenuModel(NULL), | 15 : ui::SimpleMenuModel(nullptr), shelf_(shelf), alignment_menu_(shelf) { |
18 root_window_(root), | 16 DCHECK(shelf_); |
19 alignment_menu_(root) { | |
20 DCHECK(root_window_); | |
21 set_delegate(this); | 17 set_delegate(this); |
22 AddCheckItemWithStringId(MENU_AUTO_HIDE, | 18 AddCheckItemWithStringId(MENU_AUTO_HIDE, |
23 IDS_ASH_SHELF_CONTEXT_MENU_AUTO_HIDE); | 19 IDS_ASH_SHELF_CONTEXT_MENU_AUTO_HIDE); |
24 AddSubMenuWithStringId(MENU_ALIGNMENT_MENU, | 20 AddSubMenuWithStringId(MENU_ALIGNMENT_MENU, |
25 IDS_ASH_SHELF_CONTEXT_MENU_POSITION, | 21 IDS_ASH_SHELF_CONTEXT_MENU_POSITION, |
26 &alignment_menu_); | 22 &alignment_menu_); |
27 } | 23 } |
28 | 24 |
29 ContextMenu::~ContextMenu() { | 25 ContextMenu::~ContextMenu() { |
30 } | 26 } |
31 | 27 |
32 bool ContextMenu::IsCommandIdChecked(int command_id) const { | 28 bool ContextMenu::IsCommandIdChecked(int command_id) const { |
33 switch (command_id) { | 29 if (command_id == MENU_AUTO_HIDE) |
34 case MENU_AUTO_HIDE: | 30 return shelf_->GetAutoHideBehavior() == SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS; |
35 return Shell::GetInstance()->GetShelfAutoHideBehavior(root_window_) == | 31 return false; |
36 ash::SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS; | |
37 default: | |
38 return false; | |
39 } | |
40 } | 32 } |
41 | 33 |
42 bool ContextMenu::IsCommandIdEnabled(int command_id) const { | 34 bool ContextMenu::IsCommandIdEnabled(int command_id) const { |
43 return true; | 35 return true; |
44 } | 36 } |
45 | 37 |
46 bool ContextMenu::GetAcceleratorForCommandId( | 38 bool ContextMenu::GetAcceleratorForCommandId(int command_id, |
47 int command_id, | 39 ui::Accelerator* accelerator) { |
48 ui::Accelerator* accelerator) { | |
49 return false; | 40 return false; |
50 } | 41 } |
51 | 42 |
52 void ContextMenu::ExecuteCommand(int command_id, int event_flags) { | 43 void ContextMenu::ExecuteCommand(int command_id, int event_flags) { |
53 Shell* shell = Shell::GetInstance(); | 44 if (command_id == MENU_AUTO_HIDE) { |
54 switch (static_cast<MenuItem>(command_id)) { | 45 shelf_->SetAutoHideBehavior(shelf_->GetAutoHideBehavior() == |
55 case MENU_AUTO_HIDE: | 46 SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS |
56 shell->SetShelfAutoHideBehavior( | 47 ? SHELF_AUTO_HIDE_BEHAVIOR_NEVER |
57 shell->GetShelfAutoHideBehavior(root_window_) == | 48 : SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS); |
58 SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS ? | |
59 SHELF_AUTO_HIDE_BEHAVIOR_NEVER : | |
60 SHELF_AUTO_HIDE_BEHAVIOR_ALWAYS, | |
61 root_window_); | |
62 break; | |
63 case MENU_ALIGNMENT_MENU: | |
64 break; | |
65 } | 49 } |
66 } | 50 } |
67 | 51 |
68 } // namespace shell | 52 } // namespace shell |
69 } // namespace ash | 53 } // namespace ash |
OLD | NEW |