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

Unified Diff: ui/views/focus_border.cc

Issue 78803002: Fixing focus highlight on high DPI devices for accessibility (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: found message center offset Created 7 years, 1 month 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
« ui/views/focus_border.h ('K') | « ui/views/focus_border.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/views/focus_border.cc
diff --git a/ui/views/focus_border.cc b/ui/views/focus_border.cc
index 68fd430750438c21f6cf2db37107f806965a5979..c0ed6791fec03cc02e011edf834e9acbaf91f4cb 100644
--- a/ui/views/focus_border.cc
+++ b/ui/views/focus_border.cc
@@ -5,11 +5,13 @@
#include "ui/views/focus_border.h"
#include "ui/gfx/canvas.h"
+#include "ui/gfx/insets.h"
#include "ui/gfx/rect.h"
#include "ui/views/view.h"
namespace views {
namespace {
+
class DashedFocusBorder : public FocusBorder {
public:
DashedFocusBorder(
@@ -34,6 +36,32 @@ class DashedFocusBorder : public FocusBorder {
DISALLOW_COPY_AND_ASSIGN(DashedFocusBorder);
};
+
+class SolidFocusBorder : public FocusBorder {
+ public:
+ SolidFocusBorder(
+ SkColor focus_color,
oshima 2013/11/25 19:22:26 arguments can be in single line?
Mr4D (OOO till 08-26) 2013/11/25 19:35:14 Done.
+ const gfx::Insets& insets)
+ : focus_color_(focus_color),
+ insets_(insets) {
oshima 2013/11/25 19:22:26 ditto
Mr4D (OOO till 08-26) 2013/11/25 19:35:14 Done.
+ }
+
+ virtual void Paint(const View& view, gfx::Canvas* canvas) const OVERRIDE {
+ gfx::Rect rect(view.GetLocalBounds());
+ rect.Inset(insets_);
+ canvas->DrawSolidFocusRect(rect, focus_color_);
+ }
+
+ private:
+ // The focus color to use.
+ SkColor focus_color_;
+
+ // The insets to use.
+ gfx::Insets insets_;
+
+ DISALLOW_COPY_AND_ASSIGN(SolidFocusBorder);
+};
+
} // namespace
FocusBorder::~FocusBorder() {
@@ -50,6 +78,12 @@ FocusBorder* FocusBorder::CreateDashedFocusBorder(
return new DashedFocusBorder(left, top, right, bottom);
}
+// static
+FocusBorder* FocusBorder::CreateSolidFocusBorder(
+ SkColor focus_color, const gfx::Insets& insets) {
+ return new SolidFocusBorder(focus_color, insets);
+}
+
FocusBorder::FocusBorder() {
}
« ui/views/focus_border.h ('K') | « ui/views/focus_border.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698