]> git.mxchange.org Git - simgear.git/blobdiff - simgear/canvas/CanvasEventManager.hxx
canvas::Layout: support for contents margins.
[simgear.git] / simgear / canvas / CanvasEventManager.hxx
index 8ea44d9a5e1ae309ce8436e68b0eae78c4877644..5e3738c8a6a7287f159ced968e7a58fd20e07ffc 100644 (file)
@@ -33,8 +33,14 @@ namespace canvas
 
     // Used as storage by EventManager during event propagation
     mutable osg::Vec2f  local_pos;
+
+    EventTarget( Element* el,
+                 const osg::Vec2f pos = osg::Vec2f() ):
+      element(el),
+      local_pos(pos)
+    {}
   };
-  typedef std::deque<EventTarget> EventPropagationPath;
+
   inline bool operator==(const EventTarget& t1, const EventTarget& t2)
   {
     return t1.element.lock() == t2.element.lock();
@@ -48,6 +54,9 @@ namespace canvas
       bool handleEvent( const MouseEventPtr& event,
                         const EventPropagationPath& path );
 
+      bool propagateEvent( const EventPtr& event,
+                           const EventPropagationPath& path );
+
     protected:
       struct StampedPropagationPath
       {
@@ -89,9 +98,6 @@ namespace canvas
       bool handleMove( const MouseEventPtr& event,
                        const EventPropagationPath& path );
 
-      bool propagateEvent( const EventPtr& event,
-                           const EventPropagationPath& path );
-
       /**
        * Check if two click events (either mousedown/up or two consecutive
        * clicks) are inside a maximum distance to still create a click or