Commit 40b96c72 authored by nancy's avatar nancy Committed by Commit Bot

Move the function GetCommandIdVectorIcon to be public.

This is the preparing for CL:2022585. The function
GetCommandIdVectorIcon will be used by AppServiceShelfContextMenu.

BUG=1038487

Change-Id: Ib1d67bbbf5482c752a82f3d85659246515e7b24b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2025009Reviewed-by: default avatarXiyuan Xia <xiyuan@chromium.org>
Commit-Queue: Nancy Wang <nancylingwang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#736074}
parent eeec5a5a
...@@ -176,6 +176,61 @@ void ShelfContextMenu::ExecuteCommand(int command_id, int event_flags) { ...@@ -176,6 +176,61 @@ void ShelfContextMenu::ExecuteCommand(int command_id, int event_flags) {
} }
} }
const gfx::VectorIcon& ShelfContextMenu::GetCommandIdVectorIcon(
ash::CommandId type,
int string_id) const {
switch (type) {
case ash::MENU_OPEN_NEW:
if (string_id == IDS_APP_LIST_CONTEXT_MENU_NEW_TAB)
return views::kNewTabIcon;
if (string_id == IDS_APP_LIST_CONTEXT_MENU_NEW_WINDOW)
return views::kNewWindowIcon;
return views::kOpenIcon;
case ash::MENU_CLOSE:
return views::kCloseIcon;
case ash::SHOW_APP_INFO:
return views::kInfoIcon;
case ash::UNINSTALL:
return views::kUninstallIcon;
case ash::MENU_PIN:
return controller_->IsPinned(item_.id) ? views::kUnpinIcon
: views::kPinIcon;
case ash::MENU_NEW_WINDOW:
return views::kNewWindowIcon;
case ash::MENU_NEW_INCOGNITO_WINDOW:
return views::kNewIncognitoWindowIcon;
case ash::LAUNCH_TYPE_PINNED_TAB:
case ash::LAUNCH_TYPE_REGULAR_TAB:
case ash::LAUNCH_TYPE_FULLSCREEN:
case ash::LAUNCH_TYPE_WINDOW:
// Check items use a default icon in touchable and default context menus.
return gfx::kNoneIcon;
case ash::NOTIFICATION_CONTAINER:
NOTREACHED() << "NOTIFICATION_CONTAINER does not have an icon, and it is "
"added to the model by NotificationMenuController.";
return gfx::kNoneIcon;
case ash::STOP_APP:
if (string_id == IDS_CROSTINI_SHUT_DOWN_LINUX_MENU_ITEM)
return views::kLinuxShutdownIcon;
return gfx::kNoneIcon;
case ash::CROSTINI_USE_HIGH_DENSITY:
return views::kLinuxHighDensityIcon;
case ash::CROSTINI_USE_LOW_DENSITY:
return views::kLinuxLowDensityIcon;
case ash::SWAP_WITH_NEXT:
case ash::SWAP_WITH_PREVIOUS:
return gfx::kNoneIcon;
case ash::LAUNCH_APP_SHORTCUT_FIRST:
case ash::LAUNCH_APP_SHORTCUT_LAST:
case ash::COMMAND_ID_COUNT:
NOTREACHED();
return gfx::kNoneIcon;
default:
NOTREACHED();
return gfx::kNoneIcon;
}
}
void ShelfContextMenu::AddPinMenu(ui::SimpleMenuModel* menu_model) { void ShelfContextMenu::AddPinMenu(ui::SimpleMenuModel* menu_model) {
// Expect a valid ShelfID to add pin/unpin menu item. // Expect a valid ShelfID to add pin/unpin menu item.
DCHECK(!item_.id.IsNull()); DCHECK(!item_.id.IsNull());
...@@ -240,58 +295,3 @@ void ShelfContextMenu::AddContextMenuOption(ui::SimpleMenuModel* menu_model, ...@@ -240,58 +295,3 @@ void ShelfContextMenu::AddContextMenuOption(ui::SimpleMenuModel* menu_model,
} }
menu_model->AddItemWithStringId(type, string_id); menu_model->AddItemWithStringId(type, string_id);
} }
const gfx::VectorIcon& ShelfContextMenu::GetCommandIdVectorIcon(
ash::CommandId type,
int string_id) const {
switch (type) {
case ash::MENU_OPEN_NEW:
if (string_id == IDS_APP_LIST_CONTEXT_MENU_NEW_TAB)
return views::kNewTabIcon;
if (string_id == IDS_APP_LIST_CONTEXT_MENU_NEW_WINDOW)
return views::kNewWindowIcon;
return views::kOpenIcon;
case ash::MENU_CLOSE:
return views::kCloseIcon;
case ash::SHOW_APP_INFO:
return views::kInfoIcon;
case ash::UNINSTALL:
return views::kUninstallIcon;
case ash::MENU_PIN:
return controller_->IsPinned(item_.id) ? views::kUnpinIcon
: views::kPinIcon;
case ash::MENU_NEW_WINDOW:
return views::kNewWindowIcon;
case ash::MENU_NEW_INCOGNITO_WINDOW:
return views::kNewIncognitoWindowIcon;
case ash::LAUNCH_TYPE_PINNED_TAB:
case ash::LAUNCH_TYPE_REGULAR_TAB:
case ash::LAUNCH_TYPE_FULLSCREEN:
case ash::LAUNCH_TYPE_WINDOW:
// Check items use a default icon in touchable and default context menus.
return gfx::kNoneIcon;
case ash::NOTIFICATION_CONTAINER:
NOTREACHED() << "NOTIFICATION_CONTAINER does not have an icon, and it is "
"added to the model by NotificationMenuController.";
return gfx::kNoneIcon;
case ash::STOP_APP:
if (string_id == IDS_CROSTINI_SHUT_DOWN_LINUX_MENU_ITEM)
return views::kLinuxShutdownIcon;
return gfx::kNoneIcon;
case ash::CROSTINI_USE_HIGH_DENSITY:
return views::kLinuxHighDensityIcon;
case ash::CROSTINI_USE_LOW_DENSITY:
return views::kLinuxLowDensityIcon;
case ash::SWAP_WITH_NEXT:
case ash::SWAP_WITH_PREVIOUS:
return gfx::kNoneIcon;
case ash::LAUNCH_APP_SHORTCUT_FIRST:
case ash::LAUNCH_APP_SHORTCUT_LAST:
case ash::COMMAND_ID_COUNT:
NOTREACHED();
return gfx::kNoneIcon;
default:
NOTREACHED();
return gfx::kNoneIcon;
}
}
...@@ -36,6 +36,11 @@ class ShelfContextMenu : public ui::SimpleMenuModel::Delegate { ...@@ -36,6 +36,11 @@ class ShelfContextMenu : public ui::SimpleMenuModel::Delegate {
bool IsCommandIdEnabled(int command_id) const override; bool IsCommandIdEnabled(int command_id) const override;
void ExecuteCommand(int command_id, int event_flags) override; void ExecuteCommand(int command_id, int event_flags) override;
// Helper method to get the gfx::VectorIcon for a |type|. Returns an empty
// gfx::VectorIcon if there is no icon for this |type|.
const gfx::VectorIcon& GetCommandIdVectorIcon(ash::CommandId type,
int string_id) const;
protected: protected:
ShelfContextMenu(ChromeLauncherController* controller, ShelfContextMenu(ChromeLauncherController* controller,
const ash::ShelfItem* item, const ash::ShelfItem* item,
...@@ -55,11 +60,6 @@ class ShelfContextMenu : public ui::SimpleMenuModel::Delegate { ...@@ -55,11 +60,6 @@ class ShelfContextMenu : public ui::SimpleMenuModel::Delegate {
ash::CommandId type, ash::CommandId type,
int string_id); int string_id);
// Helper method to get the gfx::VectorIcon for a |type|. Returns an empty
// gfx::VectorIcon if there is no icon for this |type|.
const gfx::VectorIcon& GetCommandIdVectorIcon(ash::CommandId type,
int string_id) const;
int64_t display_id() const { return display_id_; } int64_t display_id() const { return display_id_; }
private: private:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment