#pragma once #include "Element.hpp" namespace GUIStuff { class PaintCircleMenu : public Element { public: struct Data { double currentRotationAngle = 0.0; double* newRotationAngle = nullptr; Vector4f* selectedColor = nullptr; std::vector palette; }; void update(UpdateInputData& io, const Data& data, const std::function& elemUpdate); virtual void clay_draw(SkCanvas* canvas, UpdateInputData& io, Clay_RenderCommand* command) override; private: void draw_rotate_bar(SkCanvas* canvas, UpdateInputData& io); void draw_palette_bar(SkCanvas* canvas, UpdateInputData& io); Data d; SCollision::AABB bb; SelectionHelper rotateBarSelect; SelectionHelper colorBarSelect; unsigned colorSelectionIndex = 0; }; }