lxgui
Loading...
Searching...
No Matches
gui_event_receiver.hpp
1#ifndef LXGUI_GUI_EVENT_RECEIVER_HPP
2#define LXGUI_GUI_EVENT_RECEIVER_HPP
3
4#include "lxgui/gui_event_emitter.hpp"
5#include "lxgui/lxgui.hpp"
6
7#include <string>
8#include <vector>
9
10namespace lxgui::gui {
11
12class event_emitter;
13
20public:
25 explicit event_receiver(event_emitter& emitter);
26
27 // Non-copiable, non-movable
32
38 void register_event(const std::string& event_name, event_handler_function callback);
39
44 void unregister_event(const std::string& event_name);
45
46private:
47 struct event_connection {
48 std::string name;
49 utils::scoped_connection connection;
50 };
51
52 event_emitter& event_emitter_;
53 std::vector<event_connection> registered_events_;
54};
55
56} // namespace lxgui::gui
57
58#endif
Generates events and keep tracks of registered callbacks.
Utility object to store and manage connections to event signals.
void register_event(const std::string &event_name, event_handler_function callback)
Enables reaction to an event.
event_receiver & operator=(const event_receiver &)=delete
event_receiver(event_receiver &&)=delete
event_receiver & operator=(event_receiver &&)=delete
event_receiver(const event_receiver &)=delete
void unregister_event(const std::string &event_name)
Disables reaction to an event.
A connection that automatically disconnects when going out of scope.
event_signal::function_type event_handler_function
C++ function type for UI script handlers.