#pragma once #include #include #include #include #include namespace lt::ui { struct ButtonComponent { std::function on_activate; std::function on_hover; }; struct TransformComponent { float x, y; float w, h; }; class System: public app::ISystem { public: System(memory::Ref registry): m_registry(std::move(registry)) { m_registry->each( [](auto id, auto &button, auto &transform) { // trigger `button`'s callbacksbased on input's state... } ); } private: memory::Ref m_registry; input::InputAction button_press_action; }; } // namespace lt::ui