diff Framework/Scene2DViewport/ViewportController.h @ 1307:8a28a9bf8876 broker

ViewportController now gets a ref to its parent viewport for proper lock usage
author Benjamin Golinvaux <bgo@osimis.io>
date Wed, 04 Mar 2020 10:07:37 +0100
parents 7ec8fea061b9
children adf234ecaa00
line wrap: on
line diff
--- a/Framework/Scene2DViewport/ViewportController.h	Wed Mar 04 10:07:14 2020 +0100
+++ b/Framework/Scene2DViewport/ViewportController.h	Wed Mar 04 10:07:37 2020 +0100
@@ -39,7 +39,7 @@
     {
     }
 
-    virtual IFlexiblePointerTracker* CreateTracker(boost::shared_ptr<ViewportController> controller,
+    virtual IFlexiblePointerTracker* CreateTracker(IViewport& viewport,
                                                    const PointerEvent& event,
                                                    unsigned int viewportWidth,
                                                    unsigned int viewportHeight) = 0;
@@ -50,7 +50,7 @@
   class DefaultViewportInteractor : public IViewportInteractor
   {
   public:
-    virtual IFlexiblePointerTracker* CreateTracker(boost::shared_ptr<ViewportController> controller,
+    virtual IFlexiblePointerTracker* CreateTracker(IViewport& viewport,
                                                    const PointerEvent& event,
                                                    unsigned int viewportWidth,
                                                    unsigned int viewportHeight) ORTHANC_OVERRIDE;
@@ -109,11 +109,11 @@
     ORTHANC_STONE_DEFINE_ORIGIN_MESSAGE(__FILE__, __LINE__, \
                                         SceneTransformChanged, ViewportController);
 
-    ViewportController();
+    ViewportController(IViewport& viewport);
 
-    ViewportController(const Scene2D& scene /* will be cloned */);
+    ViewportController(IViewport& viewport, const Scene2D& scene /* will be cloned */);
 
-    ViewportController(boost::weak_ptr<UndoStack> undoStackW);
+    ViewportController(IViewport& viewport, boost::weak_ptr<UndoStack> undoStackW);
 
     ~ViewportController();
 
@@ -229,6 +229,7 @@
   private:
     double GetCanvasToSceneFactor() const;
 
+    IViewport&                                    viewport_;
     boost::weak_ptr<UndoStack>                    undoStackW_;  // Global stack, possibly shared by all viewports
     std::vector<boost::shared_ptr<MeasureTool> >  measureTools_;
     boost::shared_ptr<IFlexiblePointerTracker>    activeTracker_;  // TODO - Couldn't this be a "std::auto_ptr"?