Chromium Code Reviews| 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() { |
| } |