| Index: chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h
|
| diff --git a/chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h b/chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h
|
| index c5f4a0f0cfeebab47d3345749e24d02f171a3cbc..09024b0ee47fd9dbc336dcc79674659650c9c6d6 100644
|
| --- a/chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h
|
| +++ b/chrome/browser/chromeos/ui/accessibility_focus_ring_controller.h
|
| @@ -11,6 +11,7 @@
|
| #include "base/memory/scoped_vector.h"
|
| #include "base/memory/singleton.h"
|
| #include "base/time/time.h"
|
| +#include "chrome/browser/chromeos/ui/accessibility_cursor_ring_layer.h"
|
| #include "chrome/browser/chromeos/ui/accessibility_focus_ring_layer.h"
|
| #include "ui/compositor/compositor_animation_observer.h"
|
| #include "ui/gfx/geometry/rect.h"
|
| @@ -21,8 +22,8 @@ class Compositor;
|
|
|
| namespace chromeos {
|
|
|
| -// AccessibilityFocusRingController manages a custom focus ring (or multiple
|
| -// rings) for accessibility.
|
| +// AccessibilityFocusRingController handles drawing custom rings around
|
| +// the focused object, cursor, and/or caret for accessibility.
|
| class AccessibilityFocusRingController
|
| : public FocusRingLayerDelegate,
|
| public ui::CompositorAnimationObserver {
|
| @@ -34,6 +35,12 @@ class AccessibilityFocusRingController
|
| // coordinates.
|
| void SetFocusRing(const std::vector<gfx::Rect>& rects);
|
|
|
| + // Draw a ring around the mouse cursor.
|
| + void SetCursorRing(const gfx::Point& location);
|
| +
|
| + // Draw a ring around the text caret.
|
| + void SetCaretRing(const gfx::Point& location);
|
| +
|
| protected:
|
| AccessibilityFocusRingController();
|
| ~AccessibilityFocusRingController() override;
|
| @@ -58,6 +65,9 @@ class AccessibilityFocusRingController
|
|
|
| void Update();
|
|
|
| + void AnimateFocusRings(base::TimeTicks timestamp);
|
| + void AnimateCursorRing(base::TimeTicks timestamp);
|
| +
|
| AccessibilityFocusRing RingFromSortedRects(
|
| const std::vector<gfx::Rect>& rects) const;
|
| void SplitIntoParagraphShape(
|
| @@ -66,6 +76,9 @@ class AccessibilityFocusRingController
|
| gfx::Rect* middle,
|
| gfx::Rect* bottom) const;
|
| bool Intersects(const gfx::Rect& r1, const gfx::Rect& r2) const;
|
| + ui::Compositor* CompositorForBounds(const gfx::Rect& bounds);
|
| + void RemoveAnimationObservers();
|
| + void AddAnimationObservers();
|
|
|
| std::vector<gfx::Rect> rects_;
|
| std::vector<AccessibilityFocusRing> previous_rings_;
|
| @@ -74,6 +87,16 @@ class AccessibilityFocusRingController
|
| base::TimeTicks focus_change_time_;
|
| ui::Compositor* compositor_;
|
|
|
| + base::TimeTicks cursor_start_time_;
|
| + base::TimeTicks cursor_change_time_;
|
| + gfx::Point cursor_location_;
|
| + float cursor_opacity_;
|
| + scoped_ptr<AccessibilityCursorRingLayer> cursor_layer_;
|
| + ui::Compositor* cursor_compositor_;
|
| +
|
| + gfx::Point caret_location_;
|
| + scoped_ptr<AccessibilityCursorRingLayer> caret_layer_;
|
| +
|
| friend struct base::DefaultSingletonTraits<AccessibilityFocusRingController>;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(AccessibilityFocusRingController);
|
|
|