Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1934)

Unified Diff: chrome/browser/android/vr_shell/textures/url_bar_texture.cc

Issue 2885433003: VR: Implement Omnibox input targeting. (Closed)
Patch Set: Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/android/vr_shell/textures/url_bar_texture.cc
diff --git a/chrome/browser/android/vr_shell/textures/url_bar_texture.cc b/chrome/browser/android/vr_shell/textures/url_bar_texture.cc
index 57ca3d2f6b89ef975e5d51d8dbf2b2e039e9f98f..856a90831cd32bc8dec2108c5503b4266f399393 100644
--- a/chrome/browser/android/vr_shell/textures/url_bar_texture.cc
+++ b/chrome/browser/android/vr_shell/textures/url_bar_texture.cc
@@ -10,7 +10,9 @@
#include "ui/gfx/canvas.h"
#include "ui/gfx/font.h"
#include "ui/gfx/font_list.h"
+#include "ui/gfx/geometry/point_f.h"
#include "ui/gfx/geometry/rect.h"
+#include "ui/gfx/geometry/rect_f.h"
#include "ui/gfx/paint_vector_icon.h"
#include "ui/gfx/render_text.h"
#include "ui/gfx/vector_icon_types.h"
@@ -20,8 +22,9 @@ namespace vr_shell {
namespace {
-static constexpr SkColor kBackground = 0xCCAAAAAA;
-static constexpr SkColor kBackgroundHover = 0xCCDDDDDD;
+static constexpr SkColor kBackground = 0xCCD6D6D6;
cjgrant 2017/05/16 14:07:23 Where is this one from?
mthiesse 2017/05/16 18:11:02 I pulled it out of my a- There wasn't any in the
+static constexpr SkColor kBackgroundHover = 0xCCE1E1E1;
cjgrant 2017/05/16 14:07:23 Should we drop the 0xCC?
mthiesse 2017/05/16 18:11:01 Spec maaaaybe suggests using 0x66. so I'll switch
+static constexpr SkColor kBackgroundDown = 0xCCECECEC;
static constexpr SkColor kForeground = 0xCC444444;
static constexpr SkColor kSeparatorColor =
SkColorSetARGBMacro(256 * 0.2, 0, 0, 0);
@@ -36,6 +39,7 @@ static constexpr float kSecurityFieldWidth = 0.06;
static constexpr float kSecurityIconHeight = 0.03;
static constexpr float kUrlRightMargin = 0.02;
static constexpr float kSeparatorWidth = 0.002;
+static constexpr float kBackHitTargetSize = 0.128;
using security_state::SecurityLevel;
@@ -77,6 +81,28 @@ float UrlBarTexture::ToPixels(float meters) const {
return meters * size_.width() / kWidth;
}
+bool UrlBarTexture::HitsBackButton(const gfx::PointF& position) const {
+ float margin = (kBackHitTargetSize - kBackButtonWidth) / 2;
+ gfx::RectF rect(-margin, -margin, kBackHitTargetSize, kBackHitTargetSize);
+ rect.Scale(1.0f / (kWidth - kBackButtonWidth), 1.0f / kBackButtonWidth);
+ return rect.Contains(position);
+}
+
+bool UrlBarTexture::HitsURLBar(const gfx::PointF& position) const {
+ gfx::RectF rect(0, 0, 1, 1);
+ return rect.Contains(position) && !HitsRightTransparentRegion(position);
+}
+
+bool UrlBarTexture::HitsRightTransparentRegion(
+ const gfx::PointF& position) const {
+ float rounded_radius = kHeight / kWidth / 2;
cjgrant 2017/05/16 14:07:23 This is fine if it works, but alternatively, would
mthiesse 2017/05/16 18:11:01 Yeah, looks clearer when you convert everything to
cjgrant 2017/05/16 18:22:21 Acknowledged.
+ if (position.x() < 1.0f - rounded_radius)
+ return false;
+ float x = (position.x() - (1.0f - rounded_radius)) / rounded_radius / 2 + 0.5;
+ gfx::Vector2dF diff = gfx::PointF(x, position.y()) - gfx::PointF(0.5, 0.5);
+ return diff.LengthSquared() > 0.25;
+}
+
void UrlBarTexture::Draw(SkCanvas* canvas, const gfx::Size& texture_size) {
size_.set_height(texture_size.height());
size_.set_width(texture_size.width());
@@ -93,9 +119,11 @@ void UrlBarTexture::Draw(SkCanvas* canvas, const gfx::Size& texture_size) {
SkVector rounded_corner = {kHeight / 2, kHeight / 2};
SkVector left_corners[4] = {rounded_corner, {0, 0}, {0, 0}, rounded_corner};
round_rect.setRectRadii({0, 0, kHeight, kHeight}, left_corners);
+ SkColor color =
+ (GetDrawFlags() & FLAG_BACK_HOVER) ? kBackgroundHover : kBackground;
+ color = (GetDrawFlags() & FLAG_BACK_DOWN) ? kBackgroundDown : color;
SkPaint paint;
- paint.setColor((GetDrawFlags() & FLAG_HOVER) ? kBackgroundHover
- : kBackground);
+ paint.setColor(color);
canvas->drawRRect(round_rect, paint);
// URL area.

Powered by Google App Engine
This is Rietveld 408576698