Rose
Callbacks.h
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include <functional>
12 #include <SDL.h>
13 #include "Types.h"
14 
15 namespace rose {
16 
21  enum class ButtonDisplayState {
22  Inactive,
23  Active,
26  };
27 
28  enum class ButtonStateChange {
29  Pushed,
30  Off,
31  On,
32  };
33 
37  using EventCallback = std::function<bool()>;
38 
43  using ScrollCallback = std::function<bool(Position<int> deltaPos)>;
44 
51  using ButtonCallback = std::function<bool(bool pressed, uint button, uint clicks)>;
52 
60  using MouseMotionCallback = std::function<bool(bool pressed, uint state, Position<int> mousePosition,
61  Position<int> relativePosition)>;
62 
69  using ButtonDisplayCallback = std::function<void(ButtonDisplayState buttonDisplayState)>;
70 
75  using ButtonStateChangeCallback = std::function<void(ButtonStateChange buttonStateChange)>;
76 
82  using ButtonCommandCallback = std::function<void(ButtonStateChange buttonStateChange, uint commandId)>;
83 
90  using KeyboardShortcutCallback = std::function<void(uint32_t shortcutCode, bool state, uint repeat)>;
91 
96  using TextInputCallback = std::function<void(const std::string& text)>;
97 
102  using KeyboardFocusCallback = std::function<void(bool hasFocus)>;
103 
104  using KeyboardEventCallback = std::function<void(const SDL_KeyboardEvent &keyboardEvent)>;
105 
106 }
Push button has been pushed.
ButtonStateChange
Definition: Callbacks.h:28
std::function< void(ButtonStateChange buttonStateChange, uint commandId)> ButtonCommandCallback
Button command callback.
Definition: Callbacks.h:82
Toggle button changed to off.
std::function< bool(bool pressed, uint state, Position< int > mousePosition, Position< int > relativePosition)> MouseMotionCallback
Mouse motion callback.
Definition: Callbacks.h:61
std::function< void(ButtonStateChange buttonStateChange)> ButtonStateChangeCallback
Button state change callback.
Definition: Callbacks.h:75
std::function< bool()> EventCallback
Basic event callback with no argumetns.
Definition: Callbacks.h:37
std::function< bool(Position< int > deltaPos)> ScrollCallback
Mouse scroll wheel callback.
Definition: Callbacks.h:43
std::function< bool(bool pressed, uint button, uint clicks)> ButtonCallback
Mouse button callback.
Definition: Callbacks.h:51
std::function< void(bool hasFocus)> KeyboardFocusCallback
Keyboard focus callback.
Definition: Callbacks.h:102
ButtonDisplayState
The visible state a button is in.
Definition: Callbacks.h:21
User pressed the button in the Active state.
std::function< void(ButtonDisplayState buttonDisplayState)> ButtonDisplayCallback
Button display state callback.
Definition: Callbacks.h:69
User pressed the button in the Inactive state.
std::function< void(uint32_t shortcutCode, bool state, uint repeat)> KeyboardShortcutCallback
Keyboard shortcut callback.
Definition: Callbacks.h:90
std::function< void(const std::string &text)> TextInputCallback
Text input callback.
Definition: Callbacks.h:96
Button is active (pushed, toggled on, etc).
ToDo: There is an issue that the initial scroll interaction is lost if the click/press lands on a Wid...
Definition: CelestialOverlay.cpp:13
Toggle button changed to on.
Button is inactive (not pushed, toggled off, etc).