Mercurial > hg > orthanc-stone
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_; |