| Index: ui/views/focus_border.cc
|
| diff --git a/ui/views/focus_border.cc b/ui/views/focus_border.cc
|
| index 68fd430750438c21f6cf2db37107f806965a5979..3ff28c3e38cb18221f7d6ede103da4c99857bbe9 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,29 @@ class DashedFocusBorder : public FocusBorder {
|
|
|
| DISALLOW_COPY_AND_ASSIGN(DashedFocusBorder);
|
| };
|
| +
|
| +class SolidFocusBorder : public FocusBorder {
|
| + public:
|
| + SolidFocusBorder(SkColor focus_color, const gfx::Insets& insets)
|
| + : focus_color_(focus_color), insets_(insets) {
|
| + }
|
| +
|
| + 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 +75,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() {
|
| }
|
|
|
|
|