- fgTie("/devices/status/keyboard", getModifiers);
- fgTie("/devices/status/keyboard/shift", getModShift);
- fgTie("/devices/status/keyboard/ctrl", getModCtrl);
- fgTie("/devices/status/keyboard/alt", getModAlt);
- fgTie("/devices/status/keyboard/meta", getModMeta);
- fgTie("/devices/status/keyboard/super", getModSuper);
- fgTie("/devices/status/keyboard/hyper", getModHyper);
-
- _key_event->tie("key", SGRawValuePointer<int>(&_key_code));
- _key_event->tie("pressed", SGRawValuePointer<bool>(&_key_pressed));
- _key_event->tie("modifier", SGRawValuePointer<int>(&_key_modifiers));
- _key_event->tie("modifier/shift", SGRawValuePointer<bool>(&_key_shift));
- _key_event->tie("modifier/ctrl", SGRawValuePointer<bool>(&_key_ctrl));
- _key_event->tie("modifier/alt", SGRawValuePointer<bool>(&_key_alt));
- _key_event->tie("modifier/meta", SGRawValuePointer<bool>(&_key_meta));
- _key_event->tie("modifier/super", SGRawValuePointer<bool>(&_key_super));
- _key_event->tie("modifier/hyper", SGRawValuePointer<bool>(&_key_hyper));
+ _tiedProperties.setRoot(fgGetNode("/devices/status", true));
+ _tiedProperties.Tie("keyboard", getModifiers);
+ _tiedProperties.Tie("keyboard/shift", getModShift);
+ _tiedProperties.Tie("keyboard/ctrl", getModCtrl);
+ _tiedProperties.Tie("keyboard/alt", getModAlt);
+ _tiedProperties.Tie("keyboard/meta", getModMeta);
+ _tiedProperties.Tie("keyboard/super", getModSuper);
+ _tiedProperties.Tie("keyboard/hyper", getModHyper);
+
+ _tiedProperties.Tie(_key_event->getNode("key", true), SGRawValuePointer<int>(&_key_code));
+ _tiedProperties.Tie(_key_event->getNode("pressed", true), SGRawValuePointer<bool>(&_key_pressed));
+ _tiedProperties.Tie(_key_event->getNode("modifier", true), SGRawValuePointer<int>(&_key_modifiers));
+ _tiedProperties.Tie(_key_event->getNode("modifier/shift", true), SGRawValuePointer<bool>(&_key_shift));
+ _tiedProperties.Tie(_key_event->getNode("modifier/ctrl", true), SGRawValuePointer<bool>(&_key_ctrl));
+ _tiedProperties.Tie(_key_event->getNode("modifier/alt", true), SGRawValuePointer<bool>(&_key_alt));
+ _tiedProperties.Tie(_key_event->getNode("modifier/meta", true), SGRawValuePointer<bool>(&_key_meta));
+ _tiedProperties.Tie(_key_event->getNode("modifier/super", true), SGRawValuePointer<bool>(&_key_super));
+ _tiedProperties.Tie(_key_event->getNode("modifier/hyper", true), SGRawValuePointer<bool>(&_key_hyper));