]> git.mxchange.org Git - simgear.git/blobdiff - simgear/canvas/CanvasMgr.cxx
Fix VS2010 lack of fminf
[simgear.git] / simgear / canvas / CanvasMgr.cxx
index ff39bd8e841dd628e23e9dbe2d7e45708631dab1..1e0bb693c7df5cd5d2dd2ffa8dfd36585310dbd2 100644 (file)
@@ -18,6 +18,7 @@
 
 #include "CanvasMgr.hxx"
 #include "Canvas.hxx"
+#include "CanvasEventManager.hxx"
 
 #include <boost/bind.hpp>
 
@@ -35,29 +36,34 @@ namespace canvas
   }
 
   //----------------------------------------------------------------------------
-  CanvasMgr::CanvasMgr( SGPropertyNode_ptr node,
-                        SystemAdapterPtr system_adapter ):
-    PropertyBasedMgr(node, "texture", &canvasFactory),
-    _system_adapter(system_adapter)
+  CanvasMgr::CanvasMgr(SGPropertyNode_ptr node):
+    PropertyBasedMgr(node, "texture", &canvasFactory)
   {
 
   }
 
+  //----------------------------------------------------------------------------
+  CanvasPtr CanvasMgr::createCanvas(const std::string& name)
+  {
+    return static_cast<Canvas*>( createElement(name).get() );
+  }
+
   //----------------------------------------------------------------------------
   CanvasPtr CanvasMgr::getCanvas(size_t index) const
   {
-    if(    index >= _elements.size()
-        || !_elements[index] )
-      return CanvasPtr();
+    return static_cast<Canvas*>( getElement(index).get() );
+  }
 
-    return boost::static_pointer_cast<Canvas>(_elements[index]);
+  //----------------------------------------------------------------------------
+  CanvasPtr CanvasMgr::getCanvas(const std::string& name) const
+  {
+    return static_cast<Canvas*>( getElement(name).get() );
   }
 
   //----------------------------------------------------------------------------
   void CanvasMgr::elementCreated(PropertyBasedElementPtr element)
   {
-    CanvasPtr canvas = boost::static_pointer_cast<Canvas>(element);
-    canvas->setSystemAdapter(_system_adapter);
+    CanvasPtr canvas = static_cast<Canvas*>(element.get());
     canvas->setCanvasMgr(this);
   }