#pragma once #include "component.h" #include #include "raylib.h" #include "transform.h" namespace ant::components::ui { struct panel_component : public ant::core::component { panel_component() {} panel_component( int layer = 0, Color color = BLUE, ant::core::Vec2<> size = {100,100}, ant::core::Vec2<> scale = {1,1} ); std::string name() override {return "panel_component";} void initialize() override; void render() override; void update(std::chrono::duration) override; ant::core::Vec2<> scale(); private: ant::core::Vec2<> m_size; ant::core::Vec2<> m_scale; int m_layer; //< This is ignored if a parent panel is found, panels bleed up to one layer below their current layer Color m_color; std::weak_ptr m_parent_panel = std::shared_ptr(nullptr); }; }