ladybird/Userland/Libraries/LibWeb/Painting/CheckBoxPaintable.h
MacDue cfc9966654 LibWeb: Add scaleable checkboxes (with theme/accent-color support)
This reworks checkboxes to use a tiny 16x16 SDF for the tick icon along
with an antialiased background/border.

The checkbox now works well at any scale, shows the various checkbox
state (enabled, disabled, being pressed), and supports using the colors
from the active system theme and/or the accent-color property.
2023-03-23 08:27:51 +00:00

30 lines
655 B
C++

/*
* Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <LibWeb/Layout/CheckBox.h>
#include <LibWeb/Painting/LabelablePaintable.h>
namespace Web::Painting {
class CheckBoxPaintable final : public LabelablePaintable {
JS_CELL(CheckBoxPaintable, LabelablePaintable);
public:
static JS::NonnullGCPtr<CheckBoxPaintable> create(Layout::CheckBox const&);
Layout::CheckBox const& layout_box() const;
Layout::CheckBox& layout_box();
virtual void paint(PaintContext&, PaintPhase) const override;
private:
CheckBoxPaintable(Layout::CheckBox const&);
};
}