#include <Key_InputNode.hpp>
Public Attributes | |
ClientMarker | cm |
Public Attributes inherited from iv::InputNode | |
ClientMarker | cm |
Public Attributes inherited from iv::InputEvent | |
ClientMarker | cm |
PrivValAttr< bool > | attr_eventEnabled |
PrivValAttr< Activator > | attr_activation |
PrivValAttr< bool > | attr_hot |
PrivField< Activator > | field_press |
PrivField< Activator > | field_release |
PrivField< SumAgg< int > > | field_duration |
Protected Member Functions | |
virtual void | input_process (InputRoot *root, Input::DeviceKey key, bool &press, bool &real, bool &offspace) override |
virtual bool | input_trigger_process (InputRoot *root, Input::DeviceKey key) override |
Protected Member Functions inherited from iv::InputEvent | |
void | ie_start_duration () |
void | ie_stop_duration () |
void | ie_trigger () |
void | ie_start_activation () |
void | ie_stop_activation (bool real) |
Protected Member Functions inherited from iv::PrivValAttr_Owner | |
template<class T > | |
void | Attribute_Set (PrivValAttr_I< T > *, T const &) |
template<class T > | |
void | Attribute_SetMode (PrivValAttr_I< T > *, Attribute::ValueMode) |
virtual void | PrivValAttr_Modified (Attribute *) |
Detailed Description
Implementation of input_on_pressed and input_on_released methods is maybe not fully polished. I am not sure how it should behave in all corner cases so lets just keep it simple for now (it is probably sufficient implementation) and tweak it if any problems arise.
Definition at line 18 of file Key_InputNode.hpp.
Constructor & Destructor Documentation
◆ Key_InputNode()
Definition at line 7 of file Key_InputNode.cpp.
◆ ~Key_InputNode()
iv::Key_InputNode::~Key_InputNode | ( | ) |
Definition at line 22 of file Key_InputNode.cpp.
Member Function Documentation
◆ status()
void iv::Key_InputNode::status | ( | iv::TableDebugView * | view | ) |
Definition at line 26 of file Key_InputNode.cpp.
◆ input_id() [1/2]
void iv::Key_InputNode::input_id | ( | InputId | val | ) |
Definition at line 36 of file Key_InputNode.cpp.
◆ input_id() [2/2]
InputId iv::Key_InputNode::input_id | ( | ) |
Definition at line 42 of file Key_InputNode.cpp.
◆ fallthrough_enabled() [1/2]
void iv::Key_InputNode::fallthrough_enabled | ( | bool | val | ) |
Defaults to false. If this is true, the event will only accept one key at time. So if two or more keys are pressed for the same InputId simultaneously, only one will be accepted by this event and the rest will fall through to events that are below this one in InputNode hierarchy. This does not have much use in KeyInputEvent, it is kept here to be consistent with behavior of Position_InputNode.
Definition at line 47 of file Key_InputNode.cpp.
◆ fallthrough_enabled() [2/2]
bool iv::Key_InputNode::fallthrough_enabled | ( | ) |
Definition at line 53 of file Key_InputNode.cpp.
◆ interruptActivation()
void iv::Key_InputNode::interruptActivation | ( | ) |
Activation manually interrupted from game code. Should work the same as non-real release. Called when InputEvent implementor changes meaning, so that field_release is not triggered if the event was pressed when the meaning of the InputEvent was different.
Definition at line 136 of file Key_InputNode.cpp.
◆ input_process()
|
overrideprotectedvirtual |
This should behave just like a set - group of keys is accepted, all others are not accepted. When this changes, request_refresh() on root should be called to apply the change. Returns true if we should continue to following nodes.
Reimplemented from iv::InputNode.
Definition at line 68 of file Key_InputNode.cpp.
◆ input_trigger_process()
|
overrideprotectedvirtual |
Returns true if we should continue to following nodes.
Reimplemented from iv::InputNode.
Definition at line 58 of file Key_InputNode.cpp.
◆ instance()
Instance * iv::InputEvent::instance |
Definition at line 31 of file InputEvent.cpp.
Member Data Documentation
◆ cm
ClientMarker iv::Key_InputNode::cm |
Definition at line 22 of file Key_InputNode.hpp.
The documentation for this class was generated from the following files:
- ivorium_systems/InputSystem/Key_InputNode.hpp
- ivorium_systems/InputSystem/Key_InputNode.cpp