#ifndef ASH_ACCESSIBILITY_UI_FOCUS_RING_LAYER_H_
#define ASH_ACCESSIBILITY_UI_FOCUS_RING_LAYER_H_
#include "ash/accessibility/ui/accessibility_layer.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/compositor/compositor_animation_observer.h"
#include "ui/compositor/layer_delegate.h"
#include "ui/gfx/geometry/rect.h"
namespace ash {
class FocusRingLayer : public AccessibilityLayer {
public:
explicit FocusRingLayer(AccessibilityLayerDelegate* delegate);
FocusRingLayer(const FocusRingLayer&) = delete;
FocusRingLayer& operator=(const FocusRingLayer&) = delete;
~FocusRingLayer() override;
int GetInset() const override;
void SetColor(SkColor color);
void ResetColor();
protected:
bool has_custom_color() { return custom_color_.has_value(); }
SkColor custom_color() { return *custom_color_; }
private:
void OnPaintLayer(const ui::PaintContext& context) override;
absl::optional<SkColor> custom_color_;
};
}
#endif