lxgui
Loading...
Searching...
No Matches
gui_event_emitter.hpp
1#ifndef LXGUI_GUI_EVENT_EMITTER_HPP
2#define LXGUI_GUI_EVENT_EMITTER_HPP
3
4#include "lxgui/gui_event_data.hpp"
5#include "lxgui/lxgui.hpp"
6#include "lxgui/utils_signal.hpp"
7
8#include <string>
9#include <unordered_map>
10
11namespace lxgui::gui {
12
15
18
21
24public:
26 event_emitter() = default;
27
28 // Non-copiable, non-movable
29 event_emitter(const event_emitter&) = delete;
33
46 register_event(const std::string& event_name, event_handler_function callback);
47
53 void fire_event(const std::string& event_name, event_data data = event_data{});
54
55private:
56 std::unordered_map<std::string, event_signal> registered_event_list_;
57};
58
59} // namespace lxgui::gui
60
61#endif
Stores a variable number of arguments for an event.
Generates events and keep tracks of registered callbacks.
void fire_event(const std::string &event_name, event_data data=event_data{})
Emmit a new event.
utils::connection register_event(const std::string &event_name, event_handler_function callback)
Registers a callback to an event.
event_emitter & operator=(const event_emitter &)=delete
event_emitter()=default
Default constructor.
event_emitter(const event_emitter &)=delete
event_emitter & operator=(event_emitter &&)=delete
event_emitter(event_emitter &&)=delete
Object representing the connection between a slot and a signal.
Generic class for observing and triggering events.
std::function< T > function_type
Type of the callable function stored in a slot. Can use any function/delegate type here,...
void(const event_data &) event_handler_signature
Signature of event handler.
event_signal::function_type event_handler_function
C++ function type for UI script handlers.