#pragma once #include "components.hpp" #include "events.hpp" #include #include "textures.hpp" namespace guecs { Clickable make_action(DinkyECS::World& target, Events::GUI event); Clickable make_action(DinkyECS::World& target, Events::GUI event, std::any data); struct GrabSource { DinkyECS::Entity world_entity; std::function commit; std::shared_ptr sprite = nullptr; DinkyECS::Entity grab(); void setSprite(guecs::UI& gui, DinkyECS::Entity gui_id); void move(sf::Vector2i pos); }; struct DropTarget { std::function commit; }; }