*/
virtual ~SGBinding ();
+
+ /**
+ * clear internal state of the binding back to empty. This is useful
+ * if you don't want the 'remove on delete' behaviour of the
+ * destructor.
+ */
+ void clear();
+
/**
* Get the command name.
*/
void fire (double setting) const;
-
+ /**
+ * Fire a binding with a number of additional parameters
+ *
+ * The children of params will be merged with the fixed arguments.
+ */
+ void fire (SGPropertyNode* params) const;
+
private:
+ void innerFire() const;
// just to be safe.
SGBinding (const SGBinding &binding);
* fire every binding in a list, in sequence
*/
-void fireBindingList(const SGBindingList& aBindings);
+void fireBindingList(const SGBindingList& aBindings, SGPropertyNode* params = NULL);
/**
* fire every binding in a list with a setting value
*/
SGBindingList readBindingList(const simgear::PropertyList& aNodes, SGPropertyNode* aRoot);
+/**
+ * call clear() on every binding in a list
+ */
+void clearBindingList(const SGBindingList& aBindings);
+
#endif