Mercurial > hg > orthanc-stone
comparison Samples/Sdl/FusionMprSdl.cpp @ 858:e3c56d4f863f
GuiAdapter : mouse event routing in SDL + split the undo stack from the
ViewportController for multi-canvas apps + adapted the samples to this change
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Mon, 24 Jun 2019 10:31:04 +0200 |
parents | 266e2b0b9abc |
children | 31319fe867b9 77c96ba899f9 |
comparison
equal
deleted
inserted
replaced
855:41d22389a7d2 | 858:e3c56d4f863f |
---|---|
29 #include "../../Framework/Scene2D/OpenGLCompositor.h" | 29 #include "../../Framework/Scene2D/OpenGLCompositor.h" |
30 #include "../../Framework/Scene2D/PanSceneTracker.h" | 30 #include "../../Framework/Scene2D/PanSceneTracker.h" |
31 #include "../../Framework/Scene2D/ZoomSceneTracker.h" | 31 #include "../../Framework/Scene2D/ZoomSceneTracker.h" |
32 #include "../../Framework/Scene2D/RotateSceneTracker.h" | 32 #include "../../Framework/Scene2D/RotateSceneTracker.h" |
33 | 33 |
34 #include "../../Framework/Scene2DViewport/UndoStack.h" | |
34 #include "../../Framework/Scene2DViewport/CreateLineMeasureTracker.h" | 35 #include "../../Framework/Scene2DViewport/CreateLineMeasureTracker.h" |
35 #include "../../Framework/Scene2DViewport/CreateAngleMeasureTracker.h" | 36 #include "../../Framework/Scene2DViewport/CreateAngleMeasureTracker.h" |
36 #include "../../Framework/Scene2DViewport/IFlexiblePointerTracker.h" | 37 #include "../../Framework/Scene2DViewport/IFlexiblePointerTracker.h" |
37 #include "../../Framework/Scene2DViewport/MeasureTool.h" | 38 #include "../../Framework/Scene2DViewport/MeasureTool.h" |
38 #include "../../Framework/Scene2DViewport/PredeclaredTypes.h" | 39 #include "../../Framework/Scene2DViewport/PredeclaredTypes.h" |
405 : IObserver(broker) | 406 : IObserver(broker) |
406 , broker_(broker) | 407 , broker_(broker) |
407 , oracleObservable_(broker) | 408 , oracleObservable_(broker) |
408 , oracle_(*this) | 409 , oracle_(*this) |
409 , currentTool_(FusionMprGuiTool_Rotate) | 410 , currentTool_(FusionMprGuiTool_Rotate) |
411 , undoStack_(new UndoStack) | |
410 { | 412 { |
411 //oracleObservable.RegisterObserverCallback | 413 //oracleObservable.RegisterObserverCallback |
412 //(new Callable | 414 //(new Callable |
413 // <FusionMprSdlApp, SleepOracleCommand::TimeoutMessage>(*this, &FusionMprSdlApp::Handle)); | 415 // <FusionMprSdlApp, SleepOracleCommand::TimeoutMessage>(*this, &FusionMprSdlApp::Handle)); |
414 | 416 |
423 oracleObservable_.RegisterObserverCallback | 425 oracleObservable_.RegisterObserverCallback |
424 (new Callable | 426 (new Callable |
425 <FusionMprSdlApp, OracleCommandExceptionMessage>(*this, &FusionMprSdlApp::Handle)); | 427 <FusionMprSdlApp, OracleCommandExceptionMessage>(*this, &FusionMprSdlApp::Handle)); |
426 | 428 |
427 controller_ = boost::shared_ptr<ViewportController>( | 429 controller_ = boost::shared_ptr<ViewportController>( |
428 new ViewportController(broker_)); | 430 new ViewportController(undoStack_, broker_)); |
429 | 431 |
430 controller_->RegisterObserverCallback( | 432 controller_->RegisterObserverCallback( |
431 new Callable<FusionMprSdlApp, ViewportController::SceneTransformChanged> | 433 new Callable<FusionMprSdlApp, ViewportController::SceneTransformChanged> |
432 (*this, &FusionMprSdlApp::OnSceneTransformChanged)); | 434 (*this, &FusionMprSdlApp::OnSceneTransformChanged)); |
433 | 435 |