Mercurial > hg > orthanc-stone
comparison Samples/Qt/Scene2DInteractor.cpp @ 918:d6c029d15aaa
Merged am-dev into default
author | Alain Mazy <am@osimis.io> |
---|---|
date | Fri, 19 Jul 2019 15:15:13 +0200 |
parents | 56e4e9281076 |
children |
comparison
equal
deleted
inserted
replaced
914:4d1f57773b5b | 918:d6c029d15aaa |
---|---|
1 #include "Scene2DInteractor.h" | |
2 | |
3 #include "../../Framework/Scene2D/PanSceneTracker.h" | |
4 #include "../../Framework/Scene2D/ZoomSceneTracker.h" | |
5 #include "../../Framework/Scene2D/RotateSceneTracker.h" | |
6 | |
7 | |
8 namespace OrthancStone | |
9 { | |
10 | |
11 } | |
12 | |
13 using namespace OrthancStone; | |
14 | |
15 | |
16 bool BasicScene2DInteractor::OnMouseEvent(const GuiAdapterMouseEvent& event, const PointerEvent& pointerEvent) | |
17 { | |
18 if (currentTracker_.get() != NULL) | |
19 { | |
20 switch (event.type) | |
21 { | |
22 case GUIADAPTER_EVENT_MOUSEUP: | |
23 { | |
24 currentTracker_->PointerUp(pointerEvent); | |
25 if (!currentTracker_->IsAlive()) | |
26 { | |
27 currentTracker_.reset(); | |
28 } | |
29 };break; | |
30 case GUIADAPTER_EVENT_MOUSEMOVE: | |
31 { | |
32 currentTracker_->PointerMove(pointerEvent); | |
33 };break; | |
34 } | |
35 return true; | |
36 } | |
37 else | |
38 { | |
39 if (event.button == GUIADAPTER_MOUSEBUTTON_LEFT) | |
40 { | |
41 currentTracker_.reset(new RotateSceneTracker(viewportController_, pointerEvent)); | |
42 } | |
43 else if (event.button == GUIADAPTER_MOUSEBUTTON_MIDDLE) | |
44 { | |
45 currentTracker_.reset(new PanSceneTracker(viewportController_, pointerEvent)); | |
46 } | |
47 else if (event.button == GUIADAPTER_MOUSEBUTTON_RIGHT && compositor_.get() != NULL) | |
48 { | |
49 currentTracker_.reset(new ZoomSceneTracker(viewportController_, pointerEvent, compositor_->GetHeight())); | |
50 } | |
51 return true; | |
52 } | |
53 return false; | |
54 } | |
55 | |
56 bool BasicScene2DInteractor::OnKeyboardEvent(const GuiAdapterKeyboardEvent& guiEvent) | |
57 { | |
58 switch (guiEvent.sym[0]) | |
59 { | |
60 case 's': | |
61 { | |
62 viewportController_->FitContent(compositor_->GetWidth(), compositor_->GetHeight()); | |
63 return true; | |
64 }; | |
65 } | |
66 return false; | |
67 } | |
68 | |
69 bool BasicScene2DInteractor::OnWheelEvent(const GuiAdapterWheelEvent& guiEvent) | |
70 { | |
71 return false; | |
72 } |