Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2016 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 #include "chrome/browser/ui/ash/context_menu.h" | |
| 6 | |
| 7 #include "ash/shelf/shelf_item_types.h" | |
| 8 #include "chrome/browser/profiles/profile.h" | |
| 9 #include "chrome/browser/profiles/profile_manager.h" | |
| 10 #include "chrome/common/pref_names.h" | |
| 11 #include "components/prefs/pref_service.h" | |
| 12 #include "mojo/common/common_type_converters.h" | |
| 13 | |
| 14 ContextMenu::ContextMenu() {} | |
| 15 | |
| 16 ContextMenu::~ContextMenu() {} | |
| 17 | |
| 18 void ContextMenu::GetItemsAndInfo(uint32_t shelf_item_type, | |
| 19 int32_t shelf_item_id, | |
| 20 const GetItemsAndInfoCallback& callback) { | |
| 21 Profile* profile = ProfileManager::GetActiveUserProfile(); | |
| 22 const bool can_user_modify_shelf_auto_hide_behavior = | |
| 23 profile->GetPrefs() | |
| 24 ->FindPreference(prefs::kShelfAutoHideBehaviorLocal) | |
| 25 ->IsUserModifiable(); | |
| 26 const bool is_guest_session = profile->IsGuestSession(); | |
| 27 | |
| 28 // TODO(msw): Replace these test items with actual Chrome-provided items. | |
| 29 mojo::Array<mash::shelf::mojom::ContextMenuItemPtr> items; | |
| 30 if (shelf_item_id > 0) { | |
| 31 mash::shelf::mojom::ContextMenuItemPtr test_item = | |
| 32 mash::shelf::mojom::ContextMenuItem::New(); | |
| 33 test_item->type = mash::shelf::mojom::ContextMenuItem::Type::ITEM; | |
| 34 test_item->command_id = 990; | |
|
sky
2016/03/18 20:30:57
I'm going to assume all this is temporary and not
| |
| 35 test_item->label = mojo::String::From("CHROME TEST ITEM"); | |
| 36 test_item->enabled = true; | |
| 37 items.push_back(std::move(test_item)); | |
| 38 | |
| 39 mash::shelf::mojom::ContextMenuItemPtr test_check = | |
| 40 mash::shelf::mojom::ContextMenuItem::New(); | |
| 41 test_check->type = mash::shelf::mojom::ContextMenuItem::Type::CHECK; | |
| 42 test_check->command_id = 991; | |
| 43 test_check->label = mojo::String::From("CHROME TEST CHECK"); | |
| 44 test_check->enabled = true; | |
| 45 test_check->checked = true; | |
| 46 items.push_back(std::move(test_check)); | |
| 47 | |
| 48 mash::shelf::mojom::ContextMenuItemPtr test_submenu = | |
| 49 mash::shelf::mojom::ContextMenuItem::New(); | |
| 50 test_submenu->type = mash::shelf::mojom::ContextMenuItem::Type::SUBMENU; | |
| 51 test_submenu->command_id = 992; | |
| 52 test_submenu->label = mojo::String::From("CHROME TEST SUBMENU"); | |
| 53 test_submenu->enabled = true; | |
| 54 | |
| 55 mojo::Array<mash::shelf::mojom::ContextMenuItemPtr> test_submenu_items; | |
| 56 int radio_group_id = 1; | |
| 57 | |
| 58 mash::shelf::mojom::ContextMenuItemPtr test_submenu_foo = | |
| 59 mash::shelf::mojom::ContextMenuItem::New(); | |
| 60 test_submenu_foo->type = mash::shelf::mojom::ContextMenuItem::Type::RADIO; | |
| 61 test_submenu_foo->command_id = 993; | |
| 62 test_submenu_foo->label = mojo::String::From("CHROME TEST RADIO FOO"); | |
| 63 test_submenu_foo->enabled = true; | |
| 64 test_submenu_foo->checked = true; | |
| 65 test_submenu_foo->radio_group_id = radio_group_id; | |
| 66 test_submenu_items.push_back(std::move(test_submenu_foo)); | |
| 67 | |
| 68 mash::shelf::mojom::ContextMenuItemPtr test_submenu_bar = | |
| 69 mash::shelf::mojom::ContextMenuItem::New(); | |
| 70 test_submenu_bar->type = mash::shelf::mojom::ContextMenuItem::Type::RADIO; | |
| 71 test_submenu_bar->command_id = 994; | |
| 72 test_submenu_bar->label = mojo::String::From("CHROME TEST RADIO BAR"); | |
| 73 test_submenu_bar->enabled = true; | |
| 74 test_submenu_bar->checked = false; | |
| 75 test_submenu_bar->radio_group_id = radio_group_id; | |
| 76 test_submenu_items.push_back(std::move(test_submenu_bar)); | |
| 77 | |
| 78 test_submenu->submenu = std::move(test_submenu_items); | |
| 79 items.push_back(std::move(test_submenu)); | |
| 80 | |
| 81 mash::shelf::mojom::ContextMenuItemPtr test_separator = | |
| 82 mash::shelf::mojom::ContextMenuItem::New(); | |
| 83 test_separator->type = mash::shelf::mojom::ContextMenuItem::Type::SEPARATOR; | |
| 84 items.push_back(std::move(test_separator)); | |
| 85 } | |
| 86 | |
| 87 callback.Run(std::move(items), can_user_modify_shelf_auto_hide_behavior, | |
| 88 is_guest_session); | |
| 89 } | |
| 90 | |
| 91 void ContextMenu::ExecuteCommand(int32_t command_id, int32_t event_flags) { | |
| 92 NOTIMPLEMENTED() << "Unknown command " << command_id; | |
| 93 } | |
| OLD | NEW |