blob: a35795ee8cc118f08f05900d6f81ef16ec5f0ce3 [file] [log] [blame]
// Copyright 2015 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_UI_LAYOUT_CONSTANTS_H_
#define CHROME_BROWSER_UI_LAYOUT_CONSTANTS_H_
#include "build/build_config.h"
#include "ui/gfx/geometry/insets.h"
#include "ui/gfx/geometry/size.h"
enum LayoutConstant {
// The size of the avatar icon in the profile row of the app menu.
APP_MENU_PROFILE_ROW_AVATAR_ICON_SIZE,
// The maximum character length for strings in the app menu.
APP_MENU_MAXIMUM_CHARACTER_LENGTH,
// The height of Bookmarks Bar when attached to the toolbar. The height of the
// Bookmarks Bar is larger than the BOOKMARK_BAR_BUTTON_HEIGHT by a fixed
// amount.
BOOKMARK_BAR_HEIGHT,
// The height of a button within the Bookmarks Bar.
BOOKMARK_BAR_BUTTON_HEIGHT,
// The horizontal padding between buttons within the Bookmarks Bar.
BOOKMARK_BAR_BUTTON_PADDING,
// The horizontal padding between the image and the title of the bookmark
// button.
BOOKMARK_BAR_BUTTON_IMAGE_LABEL_PADDING,
// The size of icons used in Download bubbles.
// TODO(crbug.com/40214740): We should be sourcing the size of the file icon
// from
// the layout
// provider rather than relying on hardcoded constants.
DOWNLOAD_ICON_SIZE,
// The vertical padding between the edge of a location bar bubble and its
// contained text.
LOCATION_BAR_BUBBLE_FONT_VERTICAL_PADDING,
// The vertical inset to apply to the bounds of a location bar bubble's anchor
// view, to bring the bubble closer to the anchor. This compensates for the
// space between the bottoms of most such views and the visible bottoms of the
// images inside.
LOCATION_BAR_BUBBLE_ANCHOR_VERTICAL_INSET,
// The internal padding to use inside children of the location bar.
LOCATION_BAR_CHILD_INTERIOR_PADDING,
// The corner radius to use for children of the location bar.
LOCATION_BAR_CHILD_CORNER_RADIUS,
// The size of icons within chips inside the location bar.
LOCATION_BAR_CHIP_ICON_SIZE,
// The internal padding to use inside an indicator chip, permission request
// chip and between chips in the location bar.
LOCATION_BAR_CHIP_PADDING,
// The vertical and horizontal padding inside the border.
LOCATION_BAR_ELEMENT_PADDING,
// The height to be occupied by the LocationBar.
LOCATION_BAR_HEIGHT,
// The vertical margins from the page info icon
LOCATION_BAR_PAGE_INFO_ICON_VERTICAL_PADDING,
// The leading edge space in the omnibox from the LHS icons used in Chrome
// with the chrome refresh flag.
LOCATION_BAR_LEADING_DECORATION_EDGE_PADDING,
// The trailing edge space in the omnibox from the RHS icons used in Chrome
// with the chrome refresh flag.
LOCATION_BAR_TRAILING_DECORATION_EDGE_PADDING,
// The padding between trailing edge decorations and the inner views of the
// omnibox.
LOCATION_BAR_TRAILING_DECORATION_INNER_PADDING,
// The size of the icons used inside the LocationBar.
// TODO(crbug.com/40883435): Deprecate this after the size of all location bar
// icons have moved to
// either `LOCATION_BAR_LEADING_ICON_SIZE` or
// `LOCATION_BAR_TRAILING_ICON_SIZE`
LOCATION_BAR_ICON_SIZE,
// The size of the leading icons used inside the LocationBar.
LOCATION_BAR_LEADING_ICON_SIZE,
// The size of the trailing icons used inside the LocationBar.
LOCATION_BAR_TRAILING_ICON_SIZE,
// The size of icons used in PageInfo bubbles.
PAGE_INFO_ICON_SIZE,
// Padding after the tab title.
TAB_AFTER_TITLE_PADDING,
// Width of the alert indicator shown for a tab using media capture.
TAB_ALERT_INDICATOR_CAPTURE_ICON_WIDTH,
// Width of the alert indicator icon displayed in the tab. The same width is
// used for all 3 states of normal, hovered and pressed.
TAB_ALERT_INDICATOR_ICON_WIDTH,
// Width and height of the tab close button.
TAB_CLOSE_BUTTON_SIZE,
// The height of a tab, including outer strokes. In non-100% scales this is
// slightly larger than the apparent height of the tab, as the top stroke is
// drawn as a 1-px line flush with the bottom of the tab's topmost DIP.
TAB_HEIGHT,
// The total tab strip height, including all interior padding.
TAB_STRIP_HEIGHT,
// The padding value shared between the area above the tab, the bottom of the
// detached tab, and on all sides of the controls padding.
TAB_STRIP_PADDING,
// The height of a separator in the tabstrip.
TAB_SEPARATOR_HEIGHT,
// Padding before the tab title.
TAB_PRE_TITLE_PADDING,
// The distance between the edge of one tab to the corresponding edge or the
// subsequent tab when tabs are stacked.
TAB_STACK_DISTANCE,
// In refresh, tabs are drawn with an extension into the toolbar's
// space to prevent a gap from appearing between the toolbar and the
// bottom of tabs on some non-integral scales.
// TODO(tbergquist): Remove this after pixel canvas or any deeper fix to
// non-pixel-aligned drawing goes in. See https://crbug.com/765723.
TABSTRIP_TOOLBAR_OVERLAP,
// The total height, including icons and insets, of buttons in the toolbar.
TOOLBAR_BUTTON_HEIGHT,
// The corner radius for a divider in the toolbar.
TOOLBAR_DIVIDER_CORNER_RADIUS,
// The height for a divider in the toolbar.
TOOLBAR_DIVIDER_HEIGHT,
// The horizontal space on either side of a divider in the toolbar.
TOOLBAR_DIVIDER_SPACING,
// The width for a divider in the toolbar.
TOOLBAR_DIVIDER_WIDTH,
// Additional horizontal padding between the elements in the toolbar.
TOOLBAR_ELEMENT_PADDING,
// Default margin of the toolbar icons set by the layout manager.
TOOLBAR_ICON_DEFAULT_MARGIN,
// The horizontal space between most items in the toolbar.
TOOLBAR_STANDARD_SPACING,
// corner radius on the top of the toolbar introduced in chrome refresh 2023
TOOLBAR_CORNER_RADIUS,
// The size of the app menu button in a web app browser window.
WEB_APP_MENU_BUTTON_SIZE,
// The size of page action icons in a web app title bar.
WEB_APP_PAGE_ACTION_ICON_SIZE,
};
enum LayoutInset {
// The padding around icons used in Download bubbles.
DOWNLOAD_ICON,
// The padding around rows used in Download bubbles.
DOWNLOAD_ROW,
// The padding used around the icon inside the LocationBar. The full width of
// the icon would be LOCATION_BAR_ICON_SIZE + 2 * inset.width(). The full
// height of the icon would be LOCATION_BAR_ICON_SIZE + 2 * inset.height().
// Icons may additionally be spaced horizontally by
// LOCATION_BAR_ELEMENT_PADDING, but this region is not part of the icon view
// (e.g. does not highlight on hover).
LOCATION_BAR_ICON_INTERIOR_PADDING,
// The page info icon in the location bar has different insets than the other
// icons with chrome refresh flag.
LOCATION_BAR_PAGE_INFO_ICON_PADDING,
// The page action icons in the location bar have different insets than the
// other icons with chrome refresh flag.
LOCATION_BAR_PAGE_ACTION_ICON_PADDING,
// The padding inside the border of a toolbar action view button.
TOOLBAR_ACTION_VIEW,
// The padding inside the border of a toolbar button (around the image).
TOOLBAR_BUTTON,
// The padding around the browser app menu chip.
BROWSER_APP_MENU_CHIP_PADDING,
// The padding around the profile menu chip.
AVATAR_CHIP_PADDING,
// The padding between the edges of the toolbar and its content.
TOOLBAR_INTERIOR_MARGIN,
// The padding between the edges of the toolbar and its content when the webui
// tab strip is enabled. Special handling is needed as when the browser is
// maximized and the tabstrip is collapsed the toolbar will sit flush with the
// edge of the screen.
WEBUI_TAB_STRIP_TOOLBAR_INTERIOR_MARGIN,
};
int GetLayoutConstant(LayoutConstant constant);
gfx::Insets GetLayoutInsets(LayoutInset inset);
#endif // CHROME_BROWSER_UI_LAYOUT_CONSTANTS_H_