Commit fec6a27b authored by Christopher Grant's avatar Christopher Grant Committed by Commit Bot

VR: Introduce a shell overflow menu

This change adds an initial, non-functional overflow menu.  It can be
summoned, looks like an overflow menu, and has buttons and items.  It
does not yet:

- Trigger any actions on clicks
- Appear when hovering the overflow button
- Update according to tab state
- Expand to fit translated text

These additions will come in follow-on changes.

BUG=817614

Cq-Include-Trybots: luci.chromium.try:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_vr;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I837f7a3b4cb0b151e9370ba3d7e2f2de00bd34bc
Reviewed-on: https://chromium-review.googlesource.com/967256
Commit-Queue: Christopher Grant <cjgrant@chromium.org>
Reviewed-by: default avatarIan Vollick <vollick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544087}
parent 6c97f7fd
......@@ -10933,6 +10933,12 @@ For more information, visit our <ph name="BEGIN_LINK">&lt;a target="_blank" href
<message name="IDS_VR_REPOSITION_LABEL" desc="This text appears over a window to explain to the user how to manipulate the window.">
Move the controller to reposition. Click to finish.
</message>
<message name="IDS_VR_MENU_NEW_INCOGNITO_TAB" desc="Menu item for opening a new incognito tab that facilitates pseudononymous browsing. [CHAR-LIMIT=27]">
New incognito tab
</message>
<message name="IDS_VR_MENU_CLOSE_INCOGNITO_TABS" desc="Menu item for closing all open incognito tabs. [CHAR-LIMIT=27]">
Close incognito tabs
</message>
</if>
<message name="IDS_CONFIRM_FILE_UPLOAD_TITLE" desc="Title of dialog for confirming that many files are about to be uploaded / given to the site. [ICU Syntax]">
......
......@@ -55,6 +55,11 @@ static const char* g_ui_element_name_strings[] = {
"kUrlBarOriginRegion",
"kUrlBarOriginContent",
"kUrlBarHintText",
"kUrlBarOverflowButton",
"kUrlBarOverflowButtonIcon",
"kOverflowMenuBackplane",
"kOverflowMenu",
"kOverflowMenuLayout",
"kOmniboxVisibiltyControlForVoice",
"kOmniboxVisibilityControlForAudioPermissionPrompt",
"kOmniboxDmmRoot",
......
......@@ -54,6 +54,11 @@ enum UiElementName {
kUrlBarOriginRegion,
kUrlBarOriginContent,
kUrlBarHintText,
kUrlBarOverflowButton,
kUrlBarOverflowButtonIcon,
kOverflowMenuBackplane,
kOverflowMenu,
kOverflowMenuLayout,
kOmniboxVisibiltyControlForVoice,
kOmniboxVisibilityControlForAudioPermissionPrompt,
kOmniboxDmmRoot,
......
......@@ -38,6 +38,8 @@ static const char* g_ui_element_type_strings[] = {
"kTypeSnackbarDescription",
"kTypeCursorBackground",
"kTypeCursorForeground",
"kTypeOverflowMenuButton",
"kTypeOverflowMenuItem",
};
static_assert(
......
......@@ -38,6 +38,8 @@ enum UiElementType {
kTypeSnackbarDescription,
kTypeCursorBackground,
kTypeCursorForeground,
kTypeOverflowMenuButton,
kTypeOverflowMenuItem,
// This must be last.
kNumUiElementTypes,
......
......@@ -155,14 +155,15 @@ void UrlBarTexture::Draw(SkCanvas* canvas, const gfx::Size& texture_size) {
// Site security state icon.
if (state_.vector_icon != nullptr) {
gfx::RectF icon_region(left_edge, kHeight / 2 - kUrlBarIconSizeDMM / 2,
kUrlBarIconSizeDMM, kUrlBarIconSizeDMM);
gfx::RectF icon_region(left_edge,
kHeight / 2 - kUrlBarButtonIconSizeDMM / 2,
kUrlBarButtonIconSizeDMM, kUrlBarButtonIconSizeDMM);
VectorIcon::DrawVectorIcon(
&gfx_canvas, *state_.vector_icon, ToPixels(kUrlBarIconSizeDMM),
&gfx_canvas, *state_.vector_icon, ToPixels(kUrlBarButtonIconSizeDMM),
{ToPixels(icon_region.x()), ToPixels(icon_region.y())},
GetIconColor(state_.security_level, colors_));
security_hit_region_ = icon_region;
left_edge += kUrlBarIconSizeDMM;
left_edge += kUrlBarButtonIconSizeDMM;
}
std::unique_ptr<gfx::RenderText> render_text;
......
......@@ -49,6 +49,7 @@ struct Model {
bool background_loaded = false;
bool supports_selection = true;
bool needs_keyboard_update = false;
bool overflow_menu_enabled = false;
// WebVR state.
WebVrModel web_vr;
......
......@@ -63,12 +63,13 @@ static constexpr float kUrlBarRelativeOffset = -0.45f;
static constexpr float kUrlBarVerticalOffsetDMM = -0.516f;
static constexpr float kUrlBarRotationRad = gfx::DegToRad(-10.0f);
static constexpr float kUrlBarFontHeightDMM = 0.027f;
static constexpr float kUrlBarIconSizeDMM = 0.038f;
static constexpr float kUrlBarBackButtonWidthDMM = 0.087f;
static constexpr float kUrlBarBackButtonIconOffsetDMM = 0.0045f;
static constexpr float kUrlBarButtonSizeDMM = 0.064f;
static constexpr float kUrlBarButtonIconSizeDMM = 0.038f;
static constexpr float kUrlBarEndButtonIconOffsetDMM = 0.0045f;
static constexpr float kUrlBarEndButtonWidthDMM = 0.088f;
static constexpr float kUrlBarSeparatorWidthDMM = 0.002f;
static constexpr float kUrlBarOriginRegionWidthDMM = 0.583f;
static constexpr float kUrlBarOriginContentWidthDMM = 0.543f;
static constexpr float kUrlBarOriginRegionWidthDMM = 0.492f;
static constexpr float kUrlBarOriginContentWidthDMM = 0.452f;
static constexpr float kUrlBarOriginContentOffsetDMM = 0.020f;
static constexpr float kUrlBarFieldSpacingDMM = 0.014f;
static constexpr float kUrlBarOfflineIconTextSpacingDMM = 0.004f;
......@@ -77,6 +78,9 @@ static constexpr float kUrlBarOriginFadeWidth = 0.044f;
static constexpr float kUrlBarOriginMinimumPathWidth = 0.044f;
static constexpr float kUrlBarBackplaneTopPadding = 0.065f;
static constexpr float kUrlBarBackplanePadding = 0.005f;
static constexpr float kUrlBarItemCornerRadiusDMM = 0.006f;
static constexpr float kUrlBarButtonIconScaleFactor =
kUrlBarButtonIconSizeDMM / kUrlBarButtonSizeDMM;
static constexpr float kOverlayPlaneDistance = 2.3f;
......@@ -221,7 +225,6 @@ static constexpr int kOmniboxTransitionMs = 300;
static constexpr float kOmniboxTextFieldIconSizeDMM = 0.05f;
static constexpr float kOmniboxTextFieldIconButtonSizeDMM = 0.064f;
static constexpr float kOmniboxTextFieldIconButtonRadiusDMM = 0.006f;
static constexpr float kOmniboxTextFieldIconButtonHoverOffsetDMM = 0.012f;
static constexpr float kOmniboxTextFieldRightMargin =
((kOmniboxHeightDMM - kOmniboxTextFieldIconButtonSizeDMM) / 2);
......@@ -305,6 +308,14 @@ static constexpr float kRepositionFrameMaxOpacity = 0.6f;
static constexpr float kRepositionFrameHitPlaneTopPadding = 0.5f;
static constexpr float kRepositionFrameTransitionDurationMs = 300;
static constexpr float kOverflowMenuOffset = 0.016f;
static constexpr float kOverflowMenuMinimumWidth = 0.312f;
static constexpr float kOverflowButtonRegionHeight = 0.088f;
static constexpr float kOverflowButtonXOffset = 0.016f;
static constexpr float kOverflowMenuYPadding = 0.012f;
static constexpr float kOverflowMenuItemHeight = 0.080f;
static constexpr float kOverflowMenuItemXPadding = 0.024f;
} // namespace vr
#endif // CHROME_BROWSER_VR_UI_SCENE_CONSTANTS_H_
This diff is collapsed.
......@@ -43,6 +43,7 @@ class UiSceneCreator {
void CreateBackground();
void CreateViewportAwareRoot();
void CreateUrlBar();
void CreateOverflowMenu();
void CreateLoadingIndicator();
void CreateSnackbars();
void CreateOmnibox();
......
......@@ -60,6 +60,8 @@ const std::set<UiElementName> kElementsVisibleInBrowsing = {
kUrlBarSeparator,
kUrlBarOriginRegion,
kUrlBarOriginContent,
kUrlBarOverflowButton,
kUrlBarOverflowButtonIcon,
kController,
kReticle,
kLaser,
......
......@@ -8,11 +8,12 @@ aggregate_vector_icons("vr_vector_icons") {
icon_directory = "."
icons = [
"daydream_controller_home_button.icon",
"daydream_controller_app_button.icon",
"file_download_done.icon",
"more_vert.icon",
"reposition.icon",
"sad_tab.icon",
"daydream_controller_home_button.icon",
"daydream_controller_app_button.icon",
]
}
......
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
CANVAS_DIMENSIONS, 24,
MOVE_TO, 12, 8,
R_CUBIC_TO, 1.1f, 0, 2, -0.9f, 2, -2,
R_CUBIC_TO, 0, -1.1f, -0.9f, -2, -2, -2,
R_CUBIC_TO, -1.1f, 0, -2, 0.9f, -2, 2,
R_CUBIC_TO, 0, 1.1f, 0.9f, 2, 2, 2,
CLOSE,
R_MOVE_TO, 0, 2,
R_CUBIC_TO, -1.1f, 0, -2, 0.9f, -2, 2,
R_CUBIC_TO, 0, 1.1f, 0.9f, 2, 2, 2,
R_CUBIC_TO, 1.1f, 0, 2, -0.9f, 2, -2,
R_CUBIC_TO, 0, -1.1f, -0.9f, -2, -2, -2,
CLOSE,
R_MOVE_TO, 0, 6,
R_CUBIC_TO, -1.1f, 0, -2, 0.9f, -2, 2,
R_CUBIC_TO, 0, 1.1f, 0.9f, 2, 2, 2,
R_CUBIC_TO, 1.1f, 0, 2, -0.9f, 2, -2,
R_CUBIC_TO, 0, -1.1f, -0.9f, -2, -2, -2,
CLOSE
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