Key_InputNode.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "InputEvent.hpp"
4 #include "InputNode.hpp"
5 
8 
10 
11 namespace iv
12 {
13 
18 class Key_InputNode : public InputNode, public InputEvent
19 {
20 public:
23 
24  Key_InputNode( Instance * inst, InputId val = InputId() );
26 
27  void status( iv::TableDebugView * view );
28 
29  void input_id( InputId );
30  InputId input_id();
31 
39  void fallthrough_enabled( bool );
40  bool fallthrough_enabled();
41 
42  //------------------
48  void interruptActivation();
49 
50 protected:
51  virtual void input_process( InputRoot * root, Input::DeviceKey key, bool & press, bool & real, bool & offspace ) override;
52  virtual bool input_trigger_process( InputRoot * root, Input::DeviceKey key ) override;
53 
54 private:
56  InputId _input_id;
57 
58  bool _fallthrough;
59  std::optional< Input::DeviceKey > _active;
60 };
61 
62 }