#ifndef ASH_PUBLIC_CPP_ACCESSIBILITY_FOCUS_RING_CONTROLLER_H_
#define ASH_PUBLIC_CPP_ACCESSIBILITY_FOCUS_RING_CONTROLLER_H_
#include <string>
#include <vector>
#include "ash/public/cpp/ash_public_export.h"
#include "base/functional/callback_forward.h"
#include "third_party/skia/include/core/SkColor.h"
namespace gfx {
class Rect;
}
namespace ash {
struct AccessibilityFocusRingInfo;
class ASH_PUBLIC_EXPORT AccessibilityFocusRingController {
public:
static AccessibilityFocusRingController* Get();
AccessibilityFocusRingController(const AccessibilityFocusRingController&) =
delete;
AccessibilityFocusRingController& operator=(
const AccessibilityFocusRingController&) = delete;
virtual void SetFocusRing(
const std::string& focus_ring_id,
std::unique_ptr<AccessibilityFocusRingInfo> focus_ring) = 0;
virtual void HideFocusRing(const std::string& focus_ring_id) = 0;
virtual void SetHighlights(const std::vector<gfx::Rect>& rects_in_screen,
SkColor skcolor) = 0;
virtual void HideHighlights() = 0;
virtual void SetFocusRingObserverForTesting(
base::RepeatingCallback<void()> observer) = 0;
protected:
AccessibilityFocusRingController();
virtual ~AccessibilityFocusRingController();
};
}
#endif