1 #ifndef LXGUI_GUI_EVENT_DATA_HPP
2 #define LXGUI_GUI_EVENT_DATA_HPP
4 #include "lxgui/gui_exception.hpp"
5 #include "lxgui/lxgui.hpp"
6 #include "lxgui/utils_variant.hpp"
8 #include <initializer_list>
20 event_data(std::initializer_list<utils::variant> data);
34 arg_list_.push_back(std::forward<T>(value));
43 if (index >= arg_list_.size())
45 return arg_list_[index];
54 if (index >= arg_list_.size())
56 return arg_list_[index];
65 const T&
get(std::size_t index)
const {
66 return utils::get<T>(this->
get(index));
75 T&
get(std::size_t index) {
76 return utils::get<T>(this->
get(index));
84 return arg_list_.size();
88 std::vector<utils::variant> arg_list_;
Stores a variable number of arguments for an event.
const utils::variant & get(std::size_t index) const
Returns a parameter of this event.
event_data & operator=(event_data &&)=default
T & get(std::size_t index)
Returns a parameter of this event.
event_data & operator=(const event_data &)=default
event_data(event_data &&)=default
utils::variant & get(std::size_t index)
Returns a parameter of this event.
const T & get(std::size_t index) const
Returns a parameter of this event.
event_data(const event_data &)=default
std::size_t get_param_count() const
Returns the number of parameters.
event_data()=default
Default constructor.
void add(T &&value)
Adds a parameter to this event.
Exception to be thrown by GUI code.
std::variant< empty, bool, std::int64_t, std::int32_t, std::int16_t, std::int8_t, std::uint64_t, std::uint32_t, std::uint16_t, std::uint8_t, double, float, std::string > variant
Type-erased value for passing arguments to events.