Changeset 5882 for code/branches/core5/src/libraries/core/BaseObject.cc
- Timestamp:
- Oct 5, 2009, 9:57:05 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/core5/src/libraries/core/BaseObject.cc
r5879 r5882 118 118 119 119 XMLPortObjectTemplate(BaseObject, Template, "templates", addTemplate, getTemplate, xmlelement, mode, Template*); 120 XMLPortObject(BaseObject, BaseObject, "eventlisteners", addEventListener, getEventListener, xmlelement, mode); 120 121 121 122 Element* events = 0; … … 123 124 events = xmlelement.FirstChildElement("events", false); 124 125 else if (mode == XMLPort::SaveObject) 125 ;126 {} 126 127 if (events) 127 128 this->XMLEventPort(*events, mode); … … 137 138 XMLPortEventState(BaseObject, BaseObject, "activity", setActive, xmlelement, mode); 138 139 XMLPortEventState(BaseObject, BaseObject, "visibility", setVisible, xmlelement, mode); 140 XMLPortEventState(BaseObject, BaseObject, "mainstate", setMainState, xmlelement, mode); 139 141 140 142 this->bRegisteredEventStates_ = true; … … 242 244 } 243 245 246 /** 247 @brief Adds an object which listens to the events of this object. 248 */ 249 void BaseObject::addEventListener(BaseObject* listener) 250 { 251 this->eventListenersXML_.insert(listener); 252 listener->addEventSource(this, "mainstate"); 253 } 254 255 /** 256 @brief Returns an event listener with a given index. 257 */ 258 BaseObject* BaseObject::getEventListener(unsigned int index) const 259 { 260 unsigned int i = 0; 261 for (std::set<BaseObject*>::const_iterator it = this->eventListenersXML_.begin(); it != this->eventListenersXML_.end(); ++it) 262 { 263 if (i == index) 264 return *it; 265 ++i; 266 } 267 return 0; 268 } 269 244 270 void BaseObject::addEventState(const std::string& name, EventState* state) 245 271 {
Note: See TracChangeset
for help on using the changeset viewer.