diff options
Diffstat (limited to 'ui')
-rw-r--r-- | ui/views/controls/slider.cc | 12 | ||||
-rw-r--r-- | ui/views/controls/slider.h | 6 |
2 files changed, 17 insertions, 1 deletions
diff --git a/ui/views/controls/slider.cc b/ui/views/controls/slider.cc index 218c13e..c41fc22 100644 --- a/ui/views/controls/slider.cc +++ b/ui/views/controls/slider.cc @@ -30,7 +30,8 @@ Slider::Slider(SliderListener* listener, Orientation orientation) value_(0.f), keyboard_increment_(0.1f), animating_value_(0.f), - value_is_valid_(false) { + value_is_valid_(false), + focus_border_color_(0) { EnableCanvasFlippingForRTLUI(true); set_focusable(true); } @@ -214,4 +215,13 @@ void Slider::GetAccessibleState(ui::AccessibleViewState* state) { base::StringPrintf("%d%%", (int)(value_ * 100 + 0.5))); } +void Slider::OnPaintFocusBorder(gfx::Canvas* canvas) { + if (!focus_border_color_) { + View::OnPaintFocusBorder(canvas); + } else if (HasFocus() && (focusable() || IsAccessibilityFocusable())) { + canvas->DrawRect(gfx::Rect(1, 1, width() - 3, height() - 3), + focus_border_color_); + } +} + } // namespace views diff --git a/ui/views/controls/slider.h b/ui/views/controls/slider.h index b053f42..7434c8f 100644 --- a/ui/views/controls/slider.h +++ b/ui/views/controls/slider.h @@ -10,6 +10,8 @@ #include "ui/views/view.h" #include "ui/views/views_export.h" +typedef unsigned int SkColor; + namespace ui { class SlideAnimation; } @@ -58,6 +60,8 @@ class VIEWS_EXPORT Slider : public View, void SetAccessibleName(const string16& name); + void set_focus_border_color(SkColor color) { focus_border_color_ = color; } + private: void SetValueInternal(float value, SliderChangeReason reason); @@ -74,6 +78,7 @@ class VIEWS_EXPORT Slider : public View, const views::GestureEvent& event) OVERRIDE; virtual bool OnKeyPressed(const views::KeyEvent& event) OVERRIDE; virtual void GetAccessibleState(ui::AccessibleViewState* state) OVERRIDE; + virtual void OnPaintFocusBorder(gfx::Canvas* canvas) OVERRIDE; // ui::AnimationDelegate overrides: virtual void AnimationProgressed(const ui::Animation* animation) OVERRIDE; @@ -88,6 +93,7 @@ class VIEWS_EXPORT Slider : public View, float animating_value_; bool value_is_valid_; string16 accessible_name_; + SkColor focus_border_color_; DISALLOW_COPY_AND_ASSIGN(Slider); }; |