diff --git a/src/Main/fg_props.cxx b/src/Main/fg_props.cxx index 88d535aae..c82aec138 100644 --- a/src/Main/fg_props.cxx +++ b/src/Main/fg_props.cxx @@ -702,6 +702,19 @@ fgHasNode (const char * path) return (fgGetNode(path, false) != 0); } +void +fgAddChangeListener (SGPropertyChangeListener * listener, const char * path) +{ + fgGetNode(path, true)->addChangeListener(listener); +} + +void +fgAddChangeListener (SGPropertyChangeListener * listener, + const char * path, int index) +{ + fgGetNode(path, index, true)->addChangeListener(listener); +} + bool fgGetBool (const char * name, bool defaultValue) { diff --git a/src/Main/fg_props.hxx b/src/Main/fg_props.hxx index 6e62ffe7d..1f9a1f87d 100644 --- a/src/Main/fg_props.hxx +++ b/src/Main/fg_props.hxx @@ -106,6 +106,30 @@ extern SGPropertyNode * fgGetNode (const char * path, extern bool fgHasNode (const char * path); +/** + * Add a listener to a node. + * + * @param listener The listener to add to the node. + * @param path The path of the node, relative to root. + * @param index The index for the last member of the path (overrides + * any given in the string). + */ +extern void fgAddChangeListener (SGPropertyChangeListener * listener, + const char * path); + + +/** + * Add a listener to a node. + * + * @param listener The listener to add to the node. + * @param path The path of the node, relative to root. + * @param index The index for the last member of the path (overrides + * any given in the string). + */ +extern void fgAddChangeListener (SGPropertyChangeListener * listener, + const char * path, int index); + + /** * Get a bool value for a property. *