#pragma once
#include "Color.h"
#include "Theme.h"
namespace WebCore {
class Path;
class ThemeAdwaita : public Theme {
public:
static Color focusColor();
static void paintFocus(GraphicsContext&, const FloatRect&, int offset);
static void paintFocus(GraphicsContext&, const Path&, const Color&);
static void paintFocus(GraphicsContext&, const Vector<FloatRect>&, const Color&);
enum class ArrowDirection { Up, Down };
static void paintArrow(GraphicsContext&, ArrowDirection);
virtual Color activeSelectionForegroundColor() const;
virtual Color activeSelectionBackgroundColor() const;
virtual Color inactiveSelectionForegroundColor() const;
virtual Color inactiveSelectionBackgroundColor() const;
virtual void platformColorsDidChange() { };
private:
LengthSize controlSize(ControlPart, const FontCascade&, const LengthSize&, float) const final;
LengthSize minimumControlSize(ControlPart, const FontCascade&, const LengthSize&, float) const final;
LengthBox controlBorder(ControlPart, const FontCascade&, const LengthBox&, float) const final;
void paint(ControlPart, ControlStates&, GraphicsContext&, const FloatRect&, float, ScrollView*, float, float, bool, bool) final;
void paintCheckbox(ControlStates&, GraphicsContext&, const FloatRect&, float);
void paintRadio(ControlStates&, GraphicsContext&, const FloatRect&, float);
void paintButton(ControlStates&, GraphicsContext&, const FloatRect&, float);
void paintSpinButton(ControlStates&, GraphicsContext&, const FloatRect&, float);
};
}