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

Unified Diff: ui/views/controls/button/toggle_button.h

Issue 2506133003: [ash-md] Allows ToggleButton to have a border and adds focus rectangle (Closed)
Patch Set: [ash-md] Allows ToggleButton to have a border and adds focus rectangle (comments) Created 4 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
Index: ui/views/controls/button/toggle_button.h
diff --git a/ui/views/controls/button/toggle_button.h b/ui/views/controls/button/toggle_button.h
index eb8efadfbd22aea374cab8b80f86fdc1b46772d3..327220deb1dde95c048d1b72dcfa174cfd9f14a7 100644
--- a/ui/views/controls/button/toggle_button.h
+++ b/ui/views/controls/button/toggle_button.h
@@ -10,6 +10,8 @@
namespace views {
+class Painter;
+
// This view presents a button that has two states: on and off. This is similar
// to a checkbox but has no text and looks more like a two-state horizontal
// slider.
@@ -23,11 +25,21 @@ class VIEWS_EXPORT ToggleButton : public CustomButton {
void SetIsOn(bool is_on, bool animate);
bool is_on() const { return is_on_; }
+ void set_focus_painter(std::unique_ptr<Painter> focus_painter);
+
+ protected:
+ // View:
+ void OnFocus() override;
+ void OnBlur() override;
+
private:
friend class TestToggleButton;
class ThumbView;
- // Calculates the bounding box for the thumb (the circle).
+ // Calculates and returns the bounding box for the track.
+ gfx::RectF GetTrackBounds() const;
+
+ // Calculates and returns the bounding box for the thumb (the circle).
gfx::Rect GetThumbBounds() const;
// Updates position and color of the thumb.
@@ -55,6 +67,7 @@ class VIEWS_EXPORT ToggleButton : public CustomButton {
bool is_on_;
gfx::SlideAnimation slide_animation_;
ThumbView* thumb_view_;
+ std::unique_ptr<Painter> focus_painter_;
DISALLOW_COPY_AND_ASSIGN(ToggleButton);
};

Powered by Google App Engine
This is Rietveld 408576698