879
|
1 #include "Scene2DInteractor.h"
|
|
2
|
881
|
3 #include "../../Framework/Scene2D/PanSceneTracker.h"
|
|
4 #include "../../Framework/Scene2D/ZoomSceneTracker.h"
|
|
5
|
879
|
6
|
|
7 namespace OrthancStone
|
|
8 {
|
|
9
|
|
10 }
|
|
11
|
|
12 using namespace OrthancStone;
|
|
13
|
|
14
|
883
|
15 bool BasicScene2DInteractor::OnMouseEvent(const GuiAdapterMouseEvent& event, const PointerEvent& pointerEvent)
|
879
|
16 {
|
881
|
17 if (currentTracker_.get() != NULL)
|
|
18 {
|
883
|
19 switch (event.type)
|
|
20 {
|
|
21 case GUIADAPTER_EVENT_MOUSEUP:
|
|
22 {
|
|
23 currentTracker_->PointerUp(pointerEvent);
|
|
24 if (!currentTracker_->IsAlive())
|
|
25 {
|
|
26 currentTracker_.reset();
|
|
27 }
|
|
28 };break;
|
|
29 case GUIADAPTER_EVENT_MOUSEMOVE:
|
|
30 {
|
|
31 currentTracker_->PointerMove(pointerEvent);
|
|
32 };break;
|
|
33 }
|
|
34 return true;
|
881
|
35 }
|
|
36 else
|
|
37 {
|
|
38 if (event.button == GUIADAPTER_MOUSEBUTTON_LEFT)
|
|
39 {
|
|
40 }
|
|
41 else if (event.button == GUIADAPTER_MOUSEBUTTON_MIDDLE)
|
|
42 {
|
|
43 currentTracker_.reset(new PanSceneTracker(viewportController_, pointerEvent));
|
|
44 }
|
883
|
45 else if (event.button == GUIADAPTER_MOUSEBUTTON_RIGHT && compositor_.get() != NULL)
|
881
|
46 {
|
883
|
47 currentTracker_.reset(new ZoomSceneTracker(viewportController_, pointerEvent, compositor_->GetHeight()));
|
881
|
48 }
|
883
|
49 return true;
|
881
|
50 }
|
883
|
51 return false;
|
879
|
52 }
|
|
53
|
883
|
54 bool BasicScene2DInteractor::OnKeyboardEvent(const GuiAdapterKeyboardEvent& guiEvent)
|
|
55 {
|
|
56 switch (guiEvent.sym[0])
|
|
57 {
|
|
58 case 's':
|
|
59 {
|
|
60 viewportController_->FitContent(compositor_->GetWidth(), compositor_->GetHeight());
|
|
61 return true;
|
|
62 };
|
|
63 }
|
|
64 return false;
|
|
65 }
|
879
|
66
|
883
|
67 bool BasicScene2DInteractor::OnWheelEvent(const GuiAdapterWheelEvent& guiEvent)
|
|
68 {
|
|
69 return false;
|
|
70 }
|