diff Framework/Scene2DViewport/ViewportController.h @ 1214:741201eab130 broker

removing pointer to viewport from ViewportController
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 04 Dec 2019 19:12:08 +0100
parents 86a8266b8888
children 9efa66d8d3f8
line wrap: on
line diff
--- a/Framework/Scene2DViewport/ViewportController.h	Wed Dec 04 17:54:10 2019 +0100
+++ b/Framework/Scene2DViewport/ViewportController.h	Wed Dec 04 19:12:08 2019 +0100
@@ -39,6 +39,7 @@
     }
 
     virtual IFlexiblePointerTracker* CreateTracker(boost::shared_ptr<ViewportController> controller,
+                                                   IViewport& viewport,
                                                    const PointerEvent& event) = 0;
   };
 
@@ -48,6 +49,7 @@
   {
   public:
     virtual IFlexiblePointerTracker* CreateTracker(boost::shared_ptr<ViewportController> controller,
+                                                   IViewport& viewport,
                                                    const PointerEvent& event) ORTHANC_OVERRIDE;
   };
 
@@ -104,8 +106,7 @@
     ORTHANC_STONE_DEFINE_ORIGIN_MESSAGE(__FILE__, __LINE__, \
                                         SceneTransformChanged, ViewportController);
 
-    ViewportController(boost::weak_ptr<UndoStack> undoStackW,
-                       boost::shared_ptr<IViewport> viewport);
+    ViewportController(boost::weak_ptr<UndoStack> undoStackW);
 
     ~ViewportController();
 
@@ -138,7 +139,7 @@
     void SetSceneToCanvasTransform(const AffineTransform2D& transform);
 
     /** Forwarded to the underlying scene, and broadcasted to the observers */
-    void FitContent();
+    void FitContent(IViewport& viewport);
 
     /** Adds a new measure tool */
     void AddMeasureTool(boost::shared_ptr<MeasureTool> measureTool);
@@ -188,14 +189,10 @@
     /** forwarded to the UndoStack */
     bool CanRedo() const;
 
-    IViewport& GetViewport() const
-    {
-      return *viewport_;
-    }
-
 
     // Must be expressed in canvas coordinates
-    void HandleMousePress(IViewportInteractor& interactor,
+    void HandleMousePress(IViewport& viewport,
+                          IViewportInteractor& interactor,
                           const PointerEvent& event);
 
     // Must be expressed in canvas coordinates
@@ -218,9 +215,8 @@
     double GetCanvasToSceneFactor() const;
 
     boost::weak_ptr<UndoStack>                    undoStackW_;  // Global stack, possibly shared by all viewports
-    boost::shared_ptr<IViewport>                  viewport_;
     std::vector<boost::shared_ptr<MeasureTool> >  measureTools_;
-    boost::shared_ptr<IFlexiblePointerTracker>    activeTracker_;  // TODO - Can't this be a "std::auto_ptr"?
+    boost::shared_ptr<IFlexiblePointerTracker>    activeTracker_;  // TODO - Couldn't this be a "std::auto_ptr"?
 
     Scene2D   scene_;