#include <Key_InputNode.hpp>

Public Member Functions

 Key_InputNode (Instance *inst, InputId val=InputId())
 
 ~Key_InputNode ()
 
void status (iv::TableDebugView *view)
 
void input_id (InputId)
 
InputId input_id ()
 
void fallthrough_enabled (bool)
 
bool fallthrough_enabled ()
 
void interruptActivation ()
 
Instanceinstance () const
 
- Public Member Functions inherited from iv::InputNode
 InputNode (Instance *inst)
 
 ~InputNode ()
 
Instanceinstance () const
 
void status (iv::TableDebugView *view)
 
void inputEnabled (bool)
 
bool inputEnabled ()
 
void quiet (bool)
 
bool quiet () const
 
void input_deactivate ()
 
void input_treeRefresh ()
 
void input_setParent (InputNode *)
 
InputNodeinput_getParent ()
 
virtual InputRootinput_getRoot ()
 
virtual void input_eachChild (std::function< void(InputNode *) > const &)
 
virtual void input_childDisconnect (InputNode *)
 
bool input_trigger_visit (InputRoot *root, Input::DeviceKey key)
 
bool input_visit (InputRoot *root, Input::DeviceKey key, bool &press, bool &real, bool &offspace)
 
- Public Member Functions inherited from iv::InputEvent
 InputEvent (Instance *inst)
 
 ~InputEvent ()
 
Instanceinstance () const
 
void status (iv::TableDebugView *view)
 

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< Activatorattr_activation
 
PrivValAttr< bool > attr_hot
 
PrivField< Activatorfield_press
 
PrivField< Activatorfield_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()

iv::Key_InputNode::Key_InputNode ( Instance inst,
InputId  val = InputId() 
)

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()

void iv::Key_InputNode::input_process ( InputRoot root,
Input::DeviceKey  key,
bool &  press,
bool &  real,
bool &  offspace 
)
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()

bool iv::Key_InputNode::input_trigger_process ( InputRoot root,
Input::DeviceKey  key 
)
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: