24 #include <SDL2/SDL_keycode.h> 25 #include <SDL2/SDL_mouse.h> 28 #include "../Exception.h" 32 #if defined(_WIN32) && defined(HR_ENGINE_SHARED) 34 # define MR_DllDeclare __declspec( dllexport ) 36 # define MR_DllDeclare __declspec( dllimport ) 39 # define MR_DllDeclare 45 namespace TextControl {
70 pos(x, y), btn(btn) { }
79 constexpr
Scroll(
double x,
double y,
double dx,
double dy) noexcept :
80 pos(x, y), motion(dx, dy) { }
96 template<
typename InputIterator>
97 bool operator()(InputIterator first, InputIterator last)
const 99 while (first != last) {
100 if (*first)
return true;
124 boost::signals2::signal<bool(const Mouse::Click&), CancelCombiner>;
128 boost::signals2::signal<bool(const Mouse::Scroll&), CancelCombiner>;
130 template<
class T,
class Val>
133 std::ostringstream oss;
134 oss <<
"PerformAction<" <<
typeid(T).name() <<
", " <<
135 typeid(Val).name() <<
'>';
158 inline void PerformAction<stringSignal_t, const std::string &>(
165 inline void PerformAction<textControlSignal_t, TextControl::key_t>(
179 inline void PerformAction<mouseClickSignal_t, const Mouse::Click&>(
186 inline void PerformAction<mouseScrollSignal_t, const Mouse::Scroll&>(
203 template<
class T,
class Val =
int>
210 Action(
const std::string &name,
int listOrder) :
211 SUPER(name, listOrder), primaryTrigger(0) { }
215 PerformAction<T, Val>(signal, value);
224 boost::signals2::connection
Connect(U &&del) {
225 return signal.connect(std::forward<U>(del));
T & GetSignal()
Definition: Action.h:244
virtual ~Action()
Definition: Action.h:212
boost::signals2::signal< void(const std::string &)> stringSignal_t
Signals which have a single string payload.
Definition: Action.h:114
void PerformAction(const T &, Val)
Definition: Action.h:131
Mouse click events.
Definition: Action.h:67
void PerformAction< voidSignal_t, int >(const voidSignal_t &signal, int value)
Definition: Action.h:140
boost::signals2::signal< void(TextControl::key_t)> textControlSignal_t
Signals for text input control.
Definition: Action.h:117
button_t btn
Definition: Action.h:73
Abstract base class which allows us a simple reference to arbitrary functors of type ControlActionImp...
Definition: ControlAction.h:50
void PerformAction< valueSignal_t, int >(const valueSignal_t &signal, int value)
Definition: Action.h:151
Action(const std::string &name, int listOrder)
Definition: Action.h:210
void PerformAction< vec2Signal_t, const Vec2 & >(const vec2Signal_t &signal, const Vec2 &vec)
Definition: Action.h:172
T signal
Definition: Action.h:248
Vec2 pos
Definition: Action.h:72
boost::signals2::signal< void(const Vec2 &)> vec2Signal_t
Signals which have a Vec2 payload.
Definition: Action.h:120
boost::signals2::signal< void(int)> valueSignal_t
Signals which have a single (action-dependent) payload.
Definition: Action.h:111
Combiner that allows slots to cancel the remaining slots by returning true.
Definition: Action.h:92
bool operator()(InputIterator first, InputIterator last) const
Definition: Action.h:97
bool result_type
Definition: Action.h:94
void SetPrimaryTrigger(int hash)
Set the hash of the key or button assigned to this action.
Definition: Action.h:242
virtual void operator()(Val value)
Definition: Action.h:214
Exception indicating an unimplemented bit of code has been hit.
Definition: Exception.h:65
Definition: Announcement.h:24
int primaryTrigger
Definition: Action.h:247
boost::signals2::signal< void()> voidSignal_t
Signals which are self-contained (no payload).
Definition: Action.h:108
key_t
Keycodes used for text input control.
Definition: Action.h:48
boost::signals2::connection Connect(U &&del)
Connect a slot to the signal.
Definition: Action.h:224
Actions are effectively signals that can be triggered by both the InputEventController and other thin...
Definition: Action.h:204
boost::signals2::signal< bool(const Mouse::Click &), CancelCombiner > mouseClickSignal_t
Signals for mouse clicks.
Definition: Action.h:124
button_t
Mouse buttons.
Definition: Action.h:58
boost::signals2::signal< bool(const Mouse::Scroll &), CancelCombiner > mouseScrollSignal_t
Signals for mouse scrolling.
Definition: Action.h:128
constexpr Click(double x, double y, button_t btn) noexcept
Definition: Action.h:69
int GetPrimaryTrigger() const
Retrieve the hash of the key or button assigned to this action by the InputEventController.
Definition: Action.h:234
Action()
Definition: Action.h:209