- return ElementPtr( new T(canvas, node, style, parent) );
+ ElementPtr el( new T(canvas, node, style, parent) );
+ el->setSelf(el);
+ return el;
//----------------------------------------------------------------------------
Group::Group( const CanvasWeakPtr& canvas,
const SGPropertyNode_ptr& node,
//----------------------------------------------------------------------------
Group::Group( const CanvasWeakPtr& canvas,
const SGPropertyNode_ptr& node,
Element* parent ):
Element(canvas, node, parent_style, parent)
{
Element* parent ):
Element(canvas, node, parent_style, parent)
{
- _child_factories["group"] = &createElement<Group>;
- _child_factories["image"] = &createElement<Image>;
- _child_factories["map" ] = &createElement<Map >;
- _child_factories["path" ] = &createElement<Path >;
- _child_factories["text" ] = &createElement<Text >;
+ if( !isInit<Group>() )
+ {
+ _child_factories["group"] = &createElement<Group>;
+ _child_factories["image"] = &createElement<Image>;
+ _child_factories["map" ] = &createElement<Map >;
+ _child_factories["path" ] = &createElement<Path >;
+ _child_factories["text" ] = &createElement<Text >;
+ }
//----------------------------------------------------------------------------
bool Group::setStyle(const SGPropertyNode* style)
{
//----------------------------------------------------------------------------
bool Group::setStyle(const SGPropertyNode* style)
{
_transform->addChild( element->getMatrixTransform() );
_children.push_back( ChildList::value_type(child, element) );
_transform->addChild( element->getMatrixTransform() );
_children.push_back( ChildList::value_type(child, element) );