comparison 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
comparison
equal deleted inserted replaced
1306:fef1ec42a7db 1307:8a28a9bf8876
37 public: 37 public:
38 virtual ~IViewportInteractor() 38 virtual ~IViewportInteractor()
39 { 39 {
40 } 40 }
41 41
42 virtual IFlexiblePointerTracker* CreateTracker(boost::shared_ptr<ViewportController> controller, 42 virtual IFlexiblePointerTracker* CreateTracker(IViewport& viewport,
43 const PointerEvent& event, 43 const PointerEvent& event,
44 unsigned int viewportWidth, 44 unsigned int viewportWidth,
45 unsigned int viewportHeight) = 0; 45 unsigned int viewportHeight) = 0;
46 }; 46 };
47 47
48 48
49 // TODO - Move this to another file 49 // TODO - Move this to another file
50 class DefaultViewportInteractor : public IViewportInteractor 50 class DefaultViewportInteractor : public IViewportInteractor
51 { 51 {
52 public: 52 public:
53 virtual IFlexiblePointerTracker* CreateTracker(boost::shared_ptr<ViewportController> controller, 53 virtual IFlexiblePointerTracker* CreateTracker(IViewport& viewport,
54 const PointerEvent& event, 54 const PointerEvent& event,
55 unsigned int viewportWidth, 55 unsigned int viewportWidth,
56 unsigned int viewportHeight) ORTHANC_OVERRIDE; 56 unsigned int viewportHeight) ORTHANC_OVERRIDE;
57 }; 57 };
58 58
107 { 107 {
108 public: 108 public:
109 ORTHANC_STONE_DEFINE_ORIGIN_MESSAGE(__FILE__, __LINE__, \ 109 ORTHANC_STONE_DEFINE_ORIGIN_MESSAGE(__FILE__, __LINE__, \
110 SceneTransformChanged, ViewportController); 110 SceneTransformChanged, ViewportController);
111 111
112 ViewportController(); 112 ViewportController(IViewport& viewport);
113 113
114 ViewportController(const Scene2D& scene /* will be cloned */); 114 ViewportController(IViewport& viewport, const Scene2D& scene /* will be cloned */);
115 115
116 ViewportController(boost::weak_ptr<UndoStack> undoStackW); 116 ViewportController(IViewport& viewport, boost::weak_ptr<UndoStack> undoStackW);
117 117
118 ~ViewportController(); 118 ~ViewportController();
119 119
120 /** 120 /**
121 This method returns the list of measure tools containing the supplied point 121 This method returns the list of measure tools containing the supplied point
227 } 227 }
228 228
229 private: 229 private:
230 double GetCanvasToSceneFactor() const; 230 double GetCanvasToSceneFactor() const;
231 231
232 IViewport& viewport_;
232 boost::weak_ptr<UndoStack> undoStackW_; // Global stack, possibly shared by all viewports 233 boost::weak_ptr<UndoStack> undoStackW_; // Global stack, possibly shared by all viewports
233 std::vector<boost::shared_ptr<MeasureTool> > measureTools_; 234 std::vector<boost::shared_ptr<MeasureTool> > measureTools_;
234 boost::shared_ptr<IFlexiblePointerTracker> activeTracker_; // TODO - Couldn't this be a "std::auto_ptr"? 235 boost::shared_ptr<IFlexiblePointerTracker> activeTracker_; // TODO - Couldn't this be a "std::auto_ptr"?
235 236
236 std::auto_ptr<Scene2D> scene_; 237 std::auto_ptr<Scene2D> scene_;