Canvas: base Elements/Canvas on SGWeakReferenced.

This commit is contained in:
Thomas Geymayer
2014-05-06 18:10:42 +02:00
parent 9642f6d946
commit efbec8b367
14 changed files with 62 additions and 93 deletions
-6
View File
@@ -65,10 +65,4 @@ namespace simgear
return _node;
}
//----------------------------------------------------------------------------
void PropertyBasedElement::setSelf(const PropertyBasedElementPtr& self)
{
_self = self;
}
} // namespace simgear
+10 -10
View File
@@ -20,24 +20,19 @@
#define SG_PROPERTY_BASED_ELEMENT_HXX_
#include <simgear/props/props.hxx>
#include <simgear/structure/SGWeakReferenced.hxx>
#include <boost/call_traits.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/weak_ptr.hpp>
namespace simgear
{
class PropertyBasedElement;
typedef boost::shared_ptr<PropertyBasedElement> PropertyBasedElementPtr;
typedef boost::weak_ptr<PropertyBasedElement> PropertyBasedElementWeakPtr;
/**
* Base class for a property controlled element
*/
class PropertyBasedElement:
public SGPropertyChangeListener
public SGPropertyChangeListener,
public SGWeakReferenced
{
public:
PropertyBasedElement(SGPropertyNode* node);
@@ -80,15 +75,20 @@ namespace simgear
return getValue<T>(child);
}
virtual void setSelf(const PropertyBasedElementPtr& self);
// Unshadow what we have just hidden...
using SGWeakReferenced::get;
virtual void onDestroy() {};
protected:
SGPropertyNode_ptr _node;
PropertyBasedElementWeakPtr _self;
};
typedef SGSharedPtr<PropertyBasedElement> PropertyBasedElementPtr;
typedef SGWeakPtr<PropertyBasedElement> PropertyBasedElementWeakPtr;
} // namespace simgear
#endif /* SG_PROPERTY_BASED_ELEMENT_HXX_ */
-1
View File
@@ -140,7 +140,6 @@ namespace simgear
}
PropertyBasedElementPtr el = _element_factory(child);
el->setSelf( el );
_elements[index] = el;
elementCreated( el );
}
-1
View File
@@ -22,7 +22,6 @@
#include "PropertyBasedElement.hxx"
#include <simgear/structure/subsystem_mgr.hxx>
#include <boost/shared_ptr.hpp>
#include <boost/function.hpp>
#include <vector>