Canvas: base Elements/Canvas on SGWeakReferenced.
This commit is contained in:
@@ -65,10 +65,4 @@ namespace simgear
|
||||
return _node;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void PropertyBasedElement::setSelf(const PropertyBasedElementPtr& self)
|
||||
{
|
||||
_self = self;
|
||||
}
|
||||
|
||||
} // namespace simgear
|
||||
|
||||
@@ -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_ */
|
||||
|
||||
@@ -140,7 +140,6 @@ namespace simgear
|
||||
}
|
||||
|
||||
PropertyBasedElementPtr el = _element_factory(child);
|
||||
el->setSelf( el );
|
||||
_elements[index] = el;
|
||||
elementCreated( el );
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
#include "PropertyBasedElement.hxx"
|
||||
#include <simgear/structure/subsystem_mgr.hxx>
|
||||
|
||||
#include <boost/shared_ptr.hpp>
|
||||
#include <boost/function.hpp>
|
||||
#include <vector>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user