+ struct NodeData {
+ NodeData() : listener(0) {}
+ ~NodeData() {
+ if (listener)
+ node->removeChangeListener(listener);
+ }
+ void setListener(SGPropertyChangeListener *l) {
+ node->addChangeListener(listener = l);
+ }
+ SGPropertyNode_ptr node;
+ SGPropertyChangeListener *listener;
+ char **text;
+ };
+