Mercurial > hg > orthanc-stone
comparison Framework/Scene2DViewport/ViewportController.cpp @ 1210:644baa70373d broker
removing interactor from the ViewportController members
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 04 Dec 2019 16:13:10 +0100 |
parents | 00e6bff9ea39 |
children | 86a8266b8888 |
comparison
equal
deleted
inserted
replaced
1208:00e6bff9ea39 | 1210:644baa70373d |
---|---|
70 { | 70 { |
71 if (viewport.get() == NULL) | 71 if (viewport.get() == NULL) |
72 { | 72 { |
73 throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer); | 73 throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer); |
74 } | 74 } |
75 | |
76 interactor_.reset(new DefaultViewportInteractor); | |
77 } | 75 } |
78 | 76 |
79 ViewportController::~ViewportController() | 77 ViewportController::~ViewportController() |
80 { | 78 { |
81 } | |
82 | |
83 void ViewportController::SetInteractor(boost::shared_ptr<IViewportInteractor> interactor) | |
84 { | |
85 activeTracker_.reset(); | |
86 interactor_ = interactor; | |
87 } | 79 } |
88 | 80 |
89 void ViewportController::PushCommand(boost::shared_ptr<MeasureCommand> command) | 81 void ViewportController::PushCommand(boost::shared_ptr<MeasureCommand> command) |
90 { | 82 { |
91 boost::shared_ptr<UndoStack> undoStack = undoStackW_.lock(); | 83 boost::shared_ptr<UndoStack> undoStack = undoStackW_.lock(); |
249 { | 241 { |
250 return TEXT_CENTER_DISTANCE_CANVAS_COORD * GetCanvasToSceneFactor(); | 242 return TEXT_CENTER_DISTANCE_CANVAS_COORD * GetCanvasToSceneFactor(); |
251 } | 243 } |
252 | 244 |
253 | 245 |
254 void ViewportController::HandleMousePress(const PointerEvent& event) | 246 void ViewportController::HandleMousePress(IViewportInteractor& interactor, |
247 const PointerEvent& event) | |
255 { | 248 { |
256 if (activeTracker_) | 249 if (activeTracker_) |
257 { | 250 { |
258 // We are dealing with a multi-stage tracker (that is made of several interactions) | 251 // We are dealing with a multi-stage tracker (that is made of several interactions) |
259 activeTracker_->PointerDown(event); | 252 activeTracker_->PointerDown(event); |
274 return; | 267 return; |
275 } | 268 } |
276 } | 269 } |
277 | 270 |
278 // No measure tool, create new tracker from the interactor | 271 // No measure tool, create new tracker from the interactor |
279 if (interactor_) | 272 activeTracker_.reset(interactor.CreateTracker(shared_from_this(), event)); |
280 { | 273 } |
281 activeTracker_.reset(interactor_->CreateTracker(shared_from_this(), event)); | 274 } |
282 } | 275 |
283 else | 276 void ViewportController::HandleMouseMove(const PointerEvent& event) |
277 { | |
278 if (activeTracker_) | |
279 { | |
280 activeTracker_->PointerMove(event); | |
281 } | |
282 } | |
283 | |
284 void ViewportController::HandleMouseRelease(const PointerEvent& event) | |
285 { | |
286 if (activeTracker_) | |
287 { | |
288 activeTracker_->PointerUp(event); | |
289 | |
290 if (!activeTracker_->IsAlive()) | |
284 { | 291 { |
285 activeTracker_.reset(); | 292 activeTracker_.reset(); |
286 } | 293 } |
287 } | 294 } |
288 } | 295 } |
289 | |
290 void ViewportController::HandleMouseMove(const PointerEvent& event) | |
291 { | |
292 if (activeTracker_) | |
293 { | |
294 activeTracker_->PointerMove(event); | |
295 } | |
296 } | |
297 | |
298 void ViewportController::HandleMouseRelease(const PointerEvent& event) | |
299 { | |
300 if (activeTracker_) | |
301 { | |
302 activeTracker_->PointerUp(event); | |
303 | |
304 if (!activeTracker_->IsAlive()) | |
305 { | |
306 activeTracker_.reset(); | |
307 } | |
308 } | |
309 } | |
310 } | 296 } |