chromium/ash/public/cpp/app_menu_constants.h

// Copyright 2018 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef ASH_PUBLIC_CPP_APP_MENU_CONSTANTS_H_
#define ASH_PUBLIC_CPP_APP_MENU_CONSTANTS_H_

namespace ash {

// Defines command ids used in Shelf and AppList app context menus. These are
// used in histograms, do not remove/renumber entries. If you're adding to this
// enum with the intention that it will be logged, add checks to ensure
// stability of the enum and update the ChromeOSUICommands enum listing in
// tools/metrics/histograms/enums.xml.
enum CommandId {
  // Used by ShelfContextMenu.
  // Superseded by LAUNCH_NEW.
  DEPRECATED_MENU_OPEN_NEW = 0,
  MENU_CLOSE = 1,
  // Superseded by TOGGLE_PIN.
  DEPRECATED_MENU_PIN = 2,
  // Superseded by USE_LAUNCH_TYPE_PINNED.
  DEPRECATED_LAUNCH_TYPE_PINNED_TAB = 3,
  // Superseded by USE_LAUNCH_TYPE_REGULAR.
  DEPRECATED_LAUNCH_TYPE_REGULAR_TAB = 4,
  // Superseded by USE_LAUNCH_TYPE_FULLSCREEN.
  DEPRECATED_LAUNCH_TYPE_FULLSCREEN = 5,
  // Superseded by USE_LAUNCH_TYPE_WINDOW.
  DEPRECATED_LAUNCH_TYPE_WINDOW = 6,
  // Superseded by APP_CONTEXT_MENU_NEW_WINDOW.
  DEPRECATED_MENU_NEW_WINDOW = 7,
  // Superseded by APP_CONTEXT_MENU_NEW_INCOGNITO_WINDOW.
  DEPRECATED_MENU_NEW_INCOGNITO_WINDOW = 8,

  // Used by AppMenuModelAdapter.
  NOTIFICATION_CONTAINER = 9,

  // Used by CrostiniShelfContextMenu.
  CROSTINI_USE_LOW_DENSITY = 10,
  CROSTINI_USE_HIGH_DENSITY = 11,

  // Allow reordering of shelf items with the keyboard. Only used for shelf.
  SWAP_WITH_NEXT = 12,
  SWAP_WITH_PREVIOUS = 13,

  // Used by ShelfContextMenu.
  // Superseded by USE_LAUNCH_TYPE_TABBED_WINDOW.
  DEPRECATED_LAUNCH_TYPE_TABBED_WINDOW = 20,

  // Used by AppContextMenu and/or ShelfContextMenu.
  LAUNCH_NEW = 100,
  TOGGLE_PIN = 101,
  SHOW_APP_INFO = 102,
  OPTIONS = 103,
  UNINSTALL = 104,
  REMOVE_FROM_FOLDER = 105,
  APP_CONTEXT_MENU_NEW_WINDOW = 106,
  APP_CONTEXT_MENU_NEW_INCOGNITO_WINDOW = 107,
  INSTALL = 108,
  SETTINGS = 109,
  USE_LAUNCH_TYPE_COMMAND_START = 200,
  // No longer supported launch type for hosted apps.
  DEPRECATED_USE_LAUNCH_TYPE_PINNED = USE_LAUNCH_TYPE_COMMAND_START,
  USE_LAUNCH_TYPE_REGULAR = 201,
  // No longer supported launch type for hosted apps.
  DEPRECATED_USE_LAUNCH_TYPE_FULLSCREEN = 202,
  USE_LAUNCH_TYPE_WINDOW = 203,
  USE_LAUNCH_TYPE_TABBED_WINDOW = 204,
  USE_LAUNCH_TYPE_COMMAND_END,
  // The reorder options used by AppsGridContextMenu, ShelfContextMenuModel and
  // AppServiceContextMenu.
  REORDER_SUBMENU = 300,
  REORDER_BY_NAME_ALPHABETICAL = 301,
  REORDER_BY_NAME_REVERSE_ALPHABETICAL = 302,
  REORDER_BY_COLOR = 303,

  // Range of command ids reserved for launching app shortcuts from context
  // menu for Android app. Used by AppContextMenu and ShelfContextMenu.
  LAUNCH_APP_SHORTCUT_FIRST = 1000,
  LAUNCH_APP_SHORTCUT_LAST = 1999,

  // Command for shutting down a VM associated with an App. Used by
  // AppContextMenu and ShelfContextMenu.
  SHUTDOWN_GUEST_OS = 2000,
  SHUTDOWN_BRUSCHETTA_OS = 2001,

  // Range of command IDs reserved for shelf app menu items when there are
  // multiple instances of the same app.
  APP_MENU_ITEM_ID_FIRST = 3000,
  APP_MENU_ITEM_ID_LAST = 3999,

  // Reserved range for extension/app custom menus as defined by
  //   IDC_EXTENSIONS_CONTEXT_CUSTOM_FIRST
  //   IDC_EXTENSIONS_CONTEXT_CUSTOM_LAST
  // in chrome/app/chrome_command_ids.h and used in ContextMenuMatcher.
  EXTENSIONS_CONTEXT_CUSTOM_FIRST = 49000,
  EXTENSIONS_CONTEXT_CUSTOM_LAST = 50000,

  COMMAND_ID_COUNT
};

// The size of app context menu items' icons.
constexpr int kAppContextMenuIconSize = 20;

// Minimum padding for children of NotificationMenuView in dips.
constexpr int kNotificationHorizontalPadding = 16;
constexpr int kNotificationVerticalPadding = 8;

// Height of the NotificationItemView in dips.
constexpr int kNotificationItemViewHeight = 48;

// The maximum number of overflow icons which can be shown without the
// showing |overflow_icon_|.
constexpr int kMaxOverflowIcons = 9;

// The identifier used for notifications in the NotificationOverflowView.
constexpr int kNotificationOverflowIconId = 43;

// The identifier used for the overflow icon in NotificationOverflowView.
constexpr int kOverflowIconId = 44;

}  // namespace ash

#endif  // ASH_PUBLIC_CPP_APP_MENU_CONSTANTS_H_