Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / chromeos / ui / accessibility_focus_ring_layer.h
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_CHROMEOS_UI_ACCESSIBILITY_FOCUS_RING_LAYER_H_
6 #define CHROME_BROWSER_CHROMEOS_UI_ACCESSIBILITY_FOCUS_RING_LAYER_H_
7
8 #include "chrome/browser/chromeos/ui/accessibility_focus_ring.h"
9 #include "chrome/browser/chromeos/ui/focus_ring_layer.h"
10
11 namespace chromeos {
12
13 // A subclass of FocusRingLayer intended for use by ChromeVox; it supports
14 // nonrectangular focus rings in order to highlight groups of elements or
15 // a range of text on a page.
16 class AccessibilityFocusRingLayer : public FocusRingLayer {
17  public:
18   explicit AccessibilityFocusRingLayer(FocusRingLayerDelegate* delegate);
19   virtual ~AccessibilityFocusRingLayer();
20
21   // Create the layer and update its bounds and position in the hierarchy.
22   void Set(const AccessibilityFocusRing& ring);
23
24  private:
25   // ui::LayerDelegate overrides:
26   virtual void OnPaintLayer(gfx::Canvas* canvas) override;
27
28   // The outline of the current focus ring.
29   AccessibilityFocusRing ring_;
30
31   DISALLOW_COPY_AND_ASSIGN(AccessibilityFocusRingLayer);
32 };
33
34 }  // namespace chromeos
35
36 #endif  // CHROME_BROWSER_CHROMEOS_UI_ACCESSIBILITY_FOCUS_RING_LAYER_H_