Get Canvas/PropertyBasedElement by name

This commit is contained in:
Thomas Geymayer
2012-11-18 16:27:05 +01:00
parent 2aed93a576
commit 904d714d6d
5 changed files with 40 additions and 0 deletions
+16
View File
@@ -18,6 +18,8 @@
#include "PropertyBasedMgr.hxx"
#include <boost/foreach.hpp>
#include <stdexcept>
#include <string>
@@ -65,6 +67,20 @@ namespace simgear
return _elements[index];
}
//----------------------------------------------------------------------------
PropertyBasedElementPtr
PropertyBasedMgr::getElement(const std::string& name) const
{
if( name.empty() )
return PropertyBasedElementPtr();
BOOST_FOREACH(PropertyBasedElementPtr el, _elements)
if( el->getProps()->getStringValue("name") == name )
return el;
return PropertyBasedElementPtr();
}
//----------------------------------------------------------------------------
const SGPropertyNode* PropertyBasedMgr::getPropertyRoot() const
{
+7
View File
@@ -53,6 +53,13 @@ namespace simgear
*/
PropertyBasedElementPtr getElement(size_t index) const;
/**
* Get an existing PropertyBasedElement by its name
*
* @param name Name (value of child node "name" will be matched)
*/
PropertyBasedElementPtr getElement(const std::string& name) const;
virtual const SGPropertyNode* getPropertyRoot() const;
protected: