Input subsystem. Converts operating system window messages to input state and events.
More...
|
| Input (Context *context) |
| Construct.
|
|
| ~Input () override |
| Destruct.
|
|
void | Update () |
| Poll for window messages. Called by HandleBeginFrame().
|
|
void | SetToggleFullscreen (bool enable) |
|
void | SetMouseVisible (bool enable, bool suppressEvent=false) |
| Set whether the operating system mouse cursor is visible. When not visible (default), is kept centered to prevent leaving the window. Mouse visibility event can be suppressed– this also recalls any unsuppressed SetMouseVisible which can be returned by ResetMouseVisible().
|
|
void | ResetMouseVisible () |
| Reset last mouse visibility that was not suppressed in SetMouseVisible.
|
|
void | SetMouseGrabbed (bool grab, bool suppressEvent=false) |
| Set whether the mouse is currently being grabbed by an operation.
|
|
void | ResetMouseGrabbed () |
| Reset the mouse grabbed to the last unsuppressed SetMouseGrabbed call.
|
|
void | SetMouseMode (MouseMode mode, bool suppressEvent=false) |
| Set the mouse mode.
|
|
void | ResetMouseMode () |
| Reset the last mouse mode that wasn't suppressed in SetMouseMode.
|
|
SDL_JoystickID | AddScreenJoystick (XMLFile *layoutFile=nullptr, XMLFile *styleFile=nullptr) |
| Add screen joystick.
|
|
bool | RemoveScreenJoystick (SDL_JoystickID id) |
| Remove screen joystick by instance ID.
|
|
void | SetScreenJoystickVisible (SDL_JoystickID id, bool enable) |
|
void | SetScreenKeyboardVisible (bool enable) |
|
void | SetTouchEmulation (bool enable) |
|
void | SetExplicitWindowRect (const IntRect &rect) |
| Set explicit window rectangle in system coordinates explicitly.
|
|
void | ResetExplicitWindowRect () |
| Disable explicit window rectangle.
|
|
bool | RecordGesture () |
| Begin recording a touch gesture. Return true if successful. The E_GESTURERECORDED event (which contains the ID for the new gesture) will be sent when recording finishes.
|
|
bool | SaveGestures (Serializer &dest) |
| Save all in-memory touch gestures. Return true if successful.
|
|
bool | SaveGesture (Serializer &dest, unsigned gestureID) |
| Save a specific in-memory touch gesture to a file. Return true if successful.
|
|
unsigned | LoadGestures (Deserializer &source) |
| Load touch gestures from a file. Return number of loaded gestures, or 0 on failure.
|
|
bool | RemoveGesture (unsigned gestureID) |
| Remove an in-memory gesture by ID. Return true if was found.
|
|
void | RemoveAllGestures () |
| Remove all in-memory gestures.
|
|
void | SetMousePosition (const IntVector2 &position) |
|
void | CenterMousePosition () |
| Center the mouse position.
|
|
bool | GetKeyDown (Key key) const |
|
bool | GetKeyPress (Key key) const |
|
bool | GetScancodeDown (Scancode scancode) const |
|
bool | GetScancodePress (Scancode scancode) const |
|
bool | GetMouseButtonDown (MouseButtonFlags button) const |
|
bool | GetMouseButtonPress (MouseButtonFlags button) const |
|
bool | GetMouseButtonClick (MouseButtonFlags button) const |
| Check if a mouse button was pressed and released without moving within a short duration of time.
|
|
bool | GetQualifierDown (Qualifier qualifier) const |
|
bool | GetQualifierPress (Qualifier qualifier) const |
|
QualifierFlags | GetQualifiers () const |
|
IntVector2 | GetMousePosition () const |
|
Vector2 | GetRelativeMousePosition () const |
| Return relative mouse position in range [0, 1].
|
|
IntVector2 | GetMouseMove () const |
|
int | GetMouseMoveX () const |
|
int | GetMouseMoveY () const |
|
int | GetMouseMoveWheel () const |
|
Vector2 | GetSystemToBackbufferScale () const |
|
IntVector2 | SystemToBackbuffer (const IntVector2 &value) const |
| Convert system position or delta to backbuffer one.
|
|
IntVector2 | BackbufferToSystem (const IntVector2 &value) const |
| Convert backbuffer position or delta to system one.
|
|
unsigned | GetNumTouches () const |
|
TouchState * | GetTouch (unsigned index) const |
|
TouchState * | GetTouchById (int touchId) const |
| Return active finger touch by touch id.
|
|
unsigned | GetNumJoysticks () const |
|
JoystickState * | GetJoystick (SDL_JoystickID id) |
|
JoystickState * | GetJoystickByIndex (unsigned index) |
|
JoystickState * | GetJoystickByName (const ea::string &name) |
| Return joystick state by joystick id, or null if does not exist.
|
|
SDL_JoystickID | FindAccelerometerJoystickId () const |
| Return joystick id that provides readings from accelerometer sensor. Return -1 if accelerometer not found.
|
|
bool | GetToggleFullscreen () const |
|
bool | IsScreenJoystickVisible (SDL_JoystickID id) const |
|
bool | GetScreenKeyboardSupport () const |
|
bool | IsScreenKeyboardVisible () const |
|
bool | GetTouchEmulation () const |
|
bool | IsMouseVisible () const |
|
bool | IsMouseGrabbed () const |
|
bool | IsMouseLocked () const |
|
MouseMode | GetMouseMode () const |
|
bool | HasFocus () |
|
bool | IsMinimized () const |
|
void | SetEnabled (bool enabled) |
| Enable input reporting. When disabled, only E_SDLRAWINPUT event will be sent sent.
|
|
bool | GetEnabled () const |
| Return true if input reporting is enabled.
|
|
|
IntVector2 | GetGlobalWindowPosition () const |
|
IntVector2 | GetGlobalWindowSize () const |
|
IntVector2 | GetBackbufferSize () const |
|
| Object (Context *context) |
| Construct.
|
|
| ~Object () override |
| Destruct. Clean up self from event sender & receiver structures.
|
|
virtual StringHash | GetType () const =0 |
|
virtual const ea::string & | GetTypeName () const =0 |
|
virtual const TypeInfo * | GetTypeInfo () const =0 |
| Return type info.
|
|
virtual bool | IsInstanceOf (StringHash type) const =0 |
| Check whether current instance implements specified type.
|
|
virtual void | OnEvent (Object *sender, StringHash eventType, VariantMap &eventData) |
| Handle event.
|
|
virtual void | SerializeInBlock (Archive &archive) |
| Serialize content from/to archive. May throw ArchiveException.
|
|
template<typename T > |
bool | IsInstanceOf () const |
| Check current instance is type of specified class.
|
|
template<typename T > |
T * | Cast () |
| Cast the object to specified most derived class.
|
|
template<typename T > |
const T * | Cast () const |
| Cast the object to specified most derived class.
|
|
void | SubscribeToEventManual (StringHash eventType, EventHandler *handler) |
| Subscribe to an event that can be sent by any sender.
|
|
void | SubscribeToEventManual (Object *sender, StringHash eventType, EventHandler *handler) |
| Subscribe to a specific sender's event.
|
|
template<class T > |
void | SubscribeToEvent (StringHash eventType, T handler) |
| Subscribe to an event that can be sent by any sender.
|
|
template<class T > |
void | SubscribeToEvent (Object *sender, StringHash eventType, T handler) |
| Subscribe to a specific sender's event.
|
|
void | UnsubscribeFromEvent (StringHash eventType) |
| Unsubscribe from an event.
|
|
void | UnsubscribeFromEvent (Object *sender, StringHash eventType) |
| Unsubscribe from a specific sender's event.
|
|
void | UnsubscribeFromEvents (Object *sender) |
| Unsubscribe from a specific sender's events.
|
|
void | UnsubscribeFromAllEvents () |
| Unsubscribe from all events.
|
|
void | UnsubscribeFromAllEventsExcept (const ea::vector< StringHash > &exceptions) |
| Unsubscribe from all events except those listed.
|
|
void | UnsubscribeFromAllEventsExcept (const ea::vector< Object * > &exceptions) |
| Unsubscribe from all events except those with listed senders.
|
|
void | SendEvent (StringHash eventType) |
| Send event to all subscribers.
|
|
void | SendEvent (StringHash eventType, VariantMap &eventData) |
| Send event with parameters to all subscribers.
|
|
VariantMap & | GetEventDataMap () const |
| Return a preallocated map for event data. Used for optimization to avoid constant re-allocation of event data maps.
|
|
template<typename... Args> |
void | SendEvent (StringHash eventType, const Args &... args) |
| Send event with variadic parameter pairs to all subscribers. The parameters are (paramID, paramValue) pairs.
|
|
Context * | GetContext () const |
| Return execution context.
|
|
const Variant & | GetGlobalVar (StringHash key) const |
|
const VariantMap & | GetGlobalVars () const |
|
void | SetGlobalVar (StringHash key, const Variant &value) |
|
Object * | GetSubsystem (StringHash type) const |
| Return subsystem by type.
|
|
Object * | GetEventSender () const |
| Return active event sender. Null outside event handling.
|
|
EventHandler * | GetEventHandler () const |
| Return active event handler. Null outside event handling.
|
|
bool | HasSubscribedToEvent (StringHash eventType) const |
| Return whether has subscribed to an event without specific sender.
|
|
bool | HasSubscribedToEvent (Object *sender, StringHash eventType) const |
| Return whether has subscribed to a specific sender's event.
|
|
bool | HasEventHandlers () const |
| Return whether has subscribed to any event.
|
|
template<class T > |
T * | GetSubsystem () const |
| Template version of returning a subsystem.
|
|
const ea::string & | GetCategory () const |
|
void | SendEvent (StringHash eventType, const VariantMap &eventData) |
| Send event with parameters to all subscribers.
|
|
void | SetBlockEvents (bool block) |
| Block object from sending and receiving events.
|
|
bool | GetBlockEvents () const |
| Return sending and receiving events blocking status.
|
|
| RefCounted () |
| Construct. Allocate the reference count structure and set an initial self weak reference.
|
|
virtual | ~RefCounted () |
| Destruct. Mark as expired and also delete the reference count structure if no outside weak references exist.
|
|
| RefCounted (const RefCounted &rhs)=delete |
| Prevent copy construction.
|
|
RefCounted & | operator= (const RefCounted &rhs)=delete |
| Prevent assignment.
|
|
int | AddRef () |
|
int | ReleaseRef () |
|
int | Refs () const |
|
int | WeakRefs () const |
|
RefCount * | RefCountPtr () const |
| Return pointer to the reference count structure.
|
|
bool | HasScriptObject () const |
| Return true if script runtime object wrapping this native object exists.
|
|
bool | IsScriptStrongRef () const |
| Return true if script reference is strong.
|
|
|
| URHO3D_OBJECT (Input, Object) |
|
void | Initialize () |
| Initialize when screen mode initially set.
|
|
SDL_JoystickID | OpenJoystick (unsigned index) |
| Open a joystick and return its ID. Return -1 if no joystick.
|
|
void | ResetJoysticks () |
| Setup internal joystick structures.
|
|
void | GainFocus () |
| Prepare input state for application gaining input focus.
|
|
void | LoseFocus () |
| Prepare input state for application losing input focus.
|
|
void | ResetState () |
| Clear input state.
|
|
void | ResetTouches () |
| Clear touch states and send touch end events.
|
|
void | ResetInputAccumulation () |
| Reset input accumulation.
|
|
unsigned | GetTouchIndexFromID (int touchID) |
| Get the index of a touch based on the touch ID.
|
|
unsigned | PopTouchIndex () |
| Used internally to return and remove the next available touch index.
|
|
void | PushTouchIndex (int touchID) |
| Push a touch index back into the list of available when finished with it.
|
|
void | SendInputFocusEvent () |
| Send an input focus or window minimization change event.
|
|
void | SetMouseButton (MouseButton button, bool newState, int clicks) |
| Handle a mouse button change.
|
|
void | SetKey (Key key, Scancode scancode, bool newState) |
| Handle a key change.
|
|
void | SetMouseWheel (int delta) |
| Handle mouse wheel change.
|
|
void | SuppressNextMouseMove () |
| Suppress next mouse movement.
|
|
void | UnsuppressMouseMove () |
| Unsuppress mouse movement.
|
|
void | HandleScreenMode (StringHash eventType, VariantMap &eventData) |
| Handle screen mode event.
|
|
void | HandleBeginFrame (StringHash eventType, VariantMap &eventData) |
| Handle frame start event.
|
|
void | HandleScreenJoystickTouch (StringHash eventType, VariantMap &eventData) |
| Handle touch events from the controls of screen joystick(s).
|
|
void | HandleSDLEvent (void *sdlEvent) |
| Handle SDL event.
|
|
void | OnSDLRawInput (SDL_Event &evt, bool &consumed) |
| Send SDLRawInput event.
|
|
void | SetMouseModeRelative (SDL_bool enable) |
| Set SDL mouse mode relative.
|
|
void | SetMouseModeAbsolute (SDL_bool enable) |
| Set SDL mouse mode absolute.
|
|
|
WeakPtr< Graphics > | graphics_ |
| Graphics subsystem.
|
|
ea::hash_set< int > | keyDown_ |
| Key down state.
|
|
ea::hash_set< int > | keyPress_ |
| Key pressed state.
|
|
ea::hash_set< int > | scancodeDown_ |
| Key down state by scancode.
|
|
ea::hash_set< int > | scancodePress_ |
| Key pressed state by scancode.
|
|
ea::unordered_map< int, TouchState > | touches_ |
| Active finger touches.
|
|
ea::list< int > | availableTouchIDs_ |
| List that maps between event touch IDs and normalised touch IDs.
|
|
ea::unordered_map< int, int > | touchIDMap_ |
| Mapping of touch indices.
|
|
ea::string | textInput_ |
| String for text input.
|
|
ea::unordered_map< SDL_JoystickID, JoystickState > | joysticks_ |
| Opened joysticks.
|
|
MouseButtonFlags | mouseButtonDown_ |
| Mouse buttons' down state.
|
|
MouseButtonFlags | mouseButtonPress_ |
| Mouse buttons' pressed state.
|
|
MouseButtonFlags | mouseButtonClick_ |
| Mouse buttons' clicked state.
|
|
IntVector2 | mousePressPosition_ |
| Position when last mouse button was pressed.
|
|
Timer | mousePressTimer_ |
| Time since last mouse press.
|
|
IntVector2 | lastMousePosition_ |
| Last mouse position for calculating movement.
|
|
IntVector2 | lastVisibleMousePosition_ |
| Last mouse position before being set to not visible.
|
|
IntVector2 | mouseMove_ |
| Mouse movement since last frame.
|
|
int | mouseMoveWheel_ |
| Mouse wheel movement since last frame.
|
|
Vector2 | systemToBackbufferScale_ |
| Input coordinate scaling. Non-unity when window and backbuffer have different sizes (e.g. Retina display).
|
|
unsigned | windowID_ |
| SDL window ID.
|
|
bool | toggleFullscreen_ |
| Fullscreen toggle flag.
|
|
bool | mouseVisible_ |
| Operating system mouse cursor visible flag.
|
|
bool | lastMouseVisible_ |
| The last operating system mouse cursor visible flag set by end use call to SetMouseVisible.
|
|
bool | mouseGrabbed_ |
| Flag to indicate the mouse is being grabbed by an operation. Subsystems like UI that uses mouse should temporarily ignore the mouse hover or click events.
|
|
bool | lastMouseGrabbed_ |
| The last mouse grabbed set by SetMouseGrabbed.
|
|
MouseMode | mouseMode_ |
| Determines the mode of mouse behaviour.
|
|
MouseMode | lastMouseMode_ |
| The last mouse mode set by SetMouseMode.
|
|
bool | sdlMouseRelative_ |
| Flag to determine whether SDL mouse relative was used.
|
|
bool | touchEmulation_ |
| Touch emulation mode flag.
|
|
bool | inputFocus_ |
| Input focus flag.
|
|
bool | minimized_ |
| Minimized flag.
|
|
bool | focusedThisFrame_ |
| Gained focus on this frame flag.
|
|
bool | suppressNextMouseMove_ |
| Next mouse move suppress flag.
|
|
bool | mouseMoveScaled_ |
| Whether mouse move is accumulated in backbuffer scale or not (when using events directly).
|
|
bool | initialized_ |
| Initialized flag.
|
|
bool | enabled_ = true |
| Flag indicating that input subsystem is reporting events.
|
|
ea::optional< IntRect > | explicitWindowRect_ |
| Explicitly specified window rectangle.
|
|
Input subsystem. Converts operating system window messages to input state and events.