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 #include "ash/shelf/shelf_alignment_menu.h"
7 #include "ash/metrics/user_metrics_recorder.h"
8 #include "ash/shelf/shelf_layout_manager.h"
9 #include "ash/shelf/shelf_types.h"
10 #include "ash/shell.h"
11 #include "grit/ash_strings.h"
12 #include "ui/aura/window.h"
13 #include "ui/base/l10n/l10n_util.h"
17 ShelfAlignmentMenu::ShelfAlignmentMenu(aura::Window
* root
)
18 : ui::SimpleMenuModel(NULL
),
21 int align_group_id
= 1;
23 AddRadioItemWithStringId(MENU_ALIGN_LEFT
,
24 IDS_ASH_SHELF_CONTEXT_MENU_ALIGN_LEFT
,
26 AddRadioItemWithStringId(MENU_ALIGN_BOTTOM
,
27 IDS_ASH_SHELF_CONTEXT_MENU_ALIGN_BOTTOM
,
29 AddRadioItemWithStringId(MENU_ALIGN_RIGHT
,
30 IDS_ASH_SHELF_CONTEXT_MENU_ALIGN_RIGHT
,
34 ShelfAlignmentMenu::~ShelfAlignmentMenu() {}
36 bool ShelfAlignmentMenu::IsCommandIdChecked(int command_id
) const {
37 return ShelfLayoutManager::ForShelf(root_window_
)
38 ->SelectValueForShelfAlignment(MENU_ALIGN_BOTTOM
== command_id
,
39 MENU_ALIGN_LEFT
== command_id
,
40 MENU_ALIGN_RIGHT
== command_id
,
44 bool ShelfAlignmentMenu::IsCommandIdEnabled(int command_id
) const {
48 bool ShelfAlignmentMenu::GetAcceleratorForCommandId(
50 ui::Accelerator
* accelerator
) {
54 void ShelfAlignmentMenu::ExecuteCommand(int command_id
, int event_flags
) {
55 switch (static_cast<MenuItem
>(command_id
)) {
57 Shell::GetInstance()->metrics()->
58 RecordUserMetricsAction(UMA_SHELF_ALIGNMENT_SET_LEFT
);
59 Shell::GetInstance()->SetShelfAlignment(SHELF_ALIGNMENT_LEFT
,
62 case MENU_ALIGN_BOTTOM
:
63 Shell::GetInstance()->metrics()->
64 RecordUserMetricsAction(UMA_SHELF_ALIGNMENT_SET_BOTTOM
);
65 Shell::GetInstance()->SetShelfAlignment(SHELF_ALIGNMENT_BOTTOM
,
68 case MENU_ALIGN_RIGHT
:
69 Shell::GetInstance()->metrics()->
70 RecordUserMetricsAction(UMA_SHELF_ALIGNMENT_SET_RIGHT
);
71 Shell::GetInstance()->SetShelfAlignment(SHELF_ALIGNMENT_RIGHT
,