#pragma once #include "Element.hpp" namespace GUIStuff { class CheckBox : public Element { public: CheckBox(GUIManager& gui); virtual void clay_draw(SkCanvas* canvas, UpdateInputData& io, Clay_RenderCommand* command, bool skiaAA) override; virtual bool input_mouse_button_callback(const InputManager::MouseButtonCallbackArgs& button, bool mouseHovering) override; virtual bool input_mouse_motion_callback(const InputManager::MouseMotionCallbackArgs& motion, bool mouseHovering) override; void layout(const Clay_ElementId& id, const std::function& isTicked, const std::function& onClick); private: static constexpr float CHECKBOX_ANIMATION_TIME = 0.3; bool isHovering = false; float hoverAnimation2 = 0.0; std::function isTicked; std::function onClick; }; }