#pragma once #include "node.h" #include "node_button_custom.h" #include "node_image.h" #include "node_stroke_preview.h" #include "brush.h" class NodeButtonBrush : public NodeButtonCustom { public: int m_brushID; bool m_selected = false; std::string high_path; uint16_t high_id; NodeImage* img; virtual Node* clone_instantiate() const override; virtual void init() override; void set_icon(const char* path); virtual void draw() override; }; class NodePanelBrush : public Node { std::vector m_brushes; NodeButtonBrush* m_current = nullptr; Node* m_container; public: std::function on_brush_changed; virtual Node* clone_instantiate() const override; virtual void init() override; void handle_click(Node* target); std::vector FindAllBrushes(const std::string& folder); uint16_t get_texture_id(int index) const; int get_brush_id(int index) const; void select_brush(int brush_id); }; // ----------------------------------------------------------------------- class NodeBrushPresetItem : public NodeButtonCustom { public: int m_brushID; ui::Brush m_brush; std::string high_path; uint16_t high_id; bool m_selected = false; NodeStrokePreview* m_preview; NodeImage* m_thumb; virtual Node* clone_instantiate() const override; virtual void init() override; virtual void draw() override; }; class NodePanelBrushPreset : public Node { std::vector m_brushes; NodeButtonBrush* m_current = nullptr; Node* m_container; public: std::function on_brush_changed; virtual Node* clone_instantiate() const override; virtual void init() override; void handle_click(Node* target); std::vector FindAllBrushes(const std::string& folder); uint16_t get_texture_id(int index) const; ui::Brush get_brush(int index) const; int get_brush_id(int index) const; void select_brush(int brush_id); };