Mercurial > hg > orthanc-stone
comparison Samples/Qt/Scene2DInteractor.cpp @ 883:30268a0cafca am-dev
basic scene Qt sample working
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Tue, 09 Jul 2019 14:34:56 +0200 |
parents | a8cd3755db21 |
children | 56e4e9281076 |
comparison
equal
deleted
inserted
replaced
882:31319fe867b9 | 883:30268a0cafca |
---|---|
10 } | 10 } |
11 | 11 |
12 using namespace OrthancStone; | 12 using namespace OrthancStone; |
13 | 13 |
14 | 14 |
15 void BasicScene2DInteractor::OnMouseEvent(const GuiAdapterMouseEvent& event, const PointerEvent& pointerEvent) | 15 bool BasicScene2DInteractor::OnMouseEvent(const GuiAdapterMouseEvent& event, const PointerEvent& pointerEvent) |
16 { | 16 { |
17 if (currentTracker_.get() != NULL) | 17 if (currentTracker_.get() != NULL) |
18 { | 18 { |
19 currentTracker_->PointerMove(pointerEvent); | 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; | |
20 } | 35 } |
21 else | 36 else |
22 { | 37 { |
23 if (event.button == GUIADAPTER_MOUSEBUTTON_LEFT) | 38 if (event.button == GUIADAPTER_MOUSEBUTTON_LEFT) |
24 { | 39 { |
25 } | 40 } |
26 else if (event.button == GUIADAPTER_MOUSEBUTTON_MIDDLE) | 41 else if (event.button == GUIADAPTER_MOUSEBUTTON_MIDDLE) |
27 { | 42 { |
28 currentTracker_.reset(new PanSceneTracker(viewportController_, pointerEvent)); | 43 currentTracker_.reset(new PanSceneTracker(viewportController_, pointerEvent)); |
29 } | 44 } |
30 else if (event.button == GUIADAPTER_MOUSEBUTTON_RIGHT) | 45 else if (event.button == GUIADAPTER_MOUSEBUTTON_RIGHT && compositor_.get() != NULL) |
31 { | 46 { |
32 // TODO: need a pointer to compositor currentTracker_.reset(new ZoomSceneTracker(viewportController_, pointerEvent, viewportController_->)); | 47 currentTracker_.reset(new ZoomSceneTracker(viewportController_, pointerEvent, compositor_->GetHeight())); |
33 } | 48 } |
49 return true; | |
34 } | 50 } |
35 | 51 return false; |
36 } | 52 } |
37 | 53 |
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 } | |
38 | 66 |
67 bool BasicScene2DInteractor::OnWheelEvent(const GuiAdapterWheelEvent& guiEvent) | |
68 { | |
69 return false; | |
70 } |