]> git.mxchange.org Git - flightgear.git/blobdiff - src/Canvas/elements/group.hxx
Canvas: Support z-index inside Groups/Maps
[flightgear.git] / src / Canvas / elements / group.hxx
index d13bb255cea1e9de1a0c92e7f9c084210305c805..17d4f8910ae3ace397dae3aa68b9cc56d37084dc 100644 (file)
@@ -21,7 +21,8 @@
 
 #include "element.hxx"
 #include <boost/shared_ptr.hpp>
-#include <vector>
+#include <list>
+#include <map>
 
 namespace canvas
 {
@@ -32,16 +33,27 @@ namespace canvas
     public Element
   {
     public:
-      Group(SGPropertyNode_ptr node);
+      typedef std::list< std::pair< const SGPropertyNode*,
+                                    ElementPtr
+                                  >
+                       > ChildList;
+
+      Group(SGPropertyNode_ptr node, const Style& parent_style = Style());
       virtual ~Group();
 
       virtual void update(double dt);
 
     protected:
-      std::vector<ElementPtr> _children;
+
+      ChildList _children;
+
+      virtual bool handleLocalMouseEvent(const canvas::MouseEvent& event);
 
       virtual void childAdded(SGPropertyNode * child);
       virtual void childRemoved(SGPropertyNode * child);
+      virtual void childChanged(SGPropertyNode * child);
+
+      void handleZIndexChanged(SGPropertyNode* node, int z_index);
   };
 
 }  // namespace canvas