diff --git a/src/UiCallbackListener.h b/src/UiCallbackListener.h new file mode 100644 index 0000000..2832f35 --- /dev/null +++ b/src/UiCallbackListener.h @@ -0,0 +1,22 @@ +#pragma once +#include +#include +#include +#include + +class UiCallbackListener : public Rml::EventListener { +public: + using Callback = std::function; + explicit UiCallbackListener(Callback callback) : callback(std::move(callback)) {} + + void ProcessEvent(Rml::Event& event) override { + if (callback) callback(event); + } + + void OnDetach(Rml::Element* /*element*/) override { + delete this; + } + +private: + Callback callback; +}; \ No newline at end of file