]> git.mxchange.org Git - simgear.git/blobdiff - simgear/canvas/elements/CanvasGroup.cxx
Canvas: rework style setter system.
[simgear.git] / simgear / canvas / elements / CanvasGroup.cxx
index 8263b079f34c8ef7a7612b28ce5afa56578d6ffd..9bfb8c2f26d3df44be309cc8815c591423dde953 100644 (file)
@@ -46,6 +46,9 @@ namespace canvas
     return el;
   }
 
+  //----------------------------------------------------------------------------
+  ElementFactories Group::_child_factories;
+
   //----------------------------------------------------------------------------
   Group::Group( const CanvasWeakPtr& canvas,
                 const SGPropertyNode_ptr& node,
@@ -53,11 +56,14 @@ namespace canvas
                 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 >;
+    }
   }
 
   //----------------------------------------------------------------------------
@@ -183,7 +189,7 @@ namespace canvas
     if( child->getParent() != _node )
       return;
 
-    ChildFactories::iterator child_factory =
+    ElementFactories::iterator child_factory =
       _child_factories.find( child->getNameString() );
     if( child_factory != _child_factories.end() )
     {