diff 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
line wrap: on
line diff
--- a/Samples/Qt/Scene2DInteractor.cpp	Tue Jul 09 11:46:43 2019 +0200
+++ b/Samples/Qt/Scene2DInteractor.cpp	Tue Jul 09 14:34:56 2019 +0200
@@ -12,11 +12,26 @@
 using namespace OrthancStone;
 
 
-void BasicScene2DInteractor::OnMouseEvent(const GuiAdapterMouseEvent& event, const PointerEvent& pointerEvent)
+bool BasicScene2DInteractor::OnMouseEvent(const GuiAdapterMouseEvent& event, const PointerEvent& pointerEvent)
 {
   if (currentTracker_.get() != NULL)
   {
-    currentTracker_->PointerMove(pointerEvent);
+    switch (event.type)
+    {
+    case GUIADAPTER_EVENT_MOUSEUP:
+    {
+      currentTracker_->PointerUp(pointerEvent);
+      if (!currentTracker_->IsAlive())
+      {
+        currentTracker_.reset();
+      }
+    };break;
+    case GUIADAPTER_EVENT_MOUSEMOVE:
+    {
+      currentTracker_->PointerMove(pointerEvent);
+    };break;
+    }
+    return true;
   }
   else
   {
@@ -27,12 +42,29 @@
     {
       currentTracker_.reset(new PanSceneTracker(viewportController_, pointerEvent));
     }
-    else if (event.button == GUIADAPTER_MOUSEBUTTON_RIGHT)
+    else if (event.button == GUIADAPTER_MOUSEBUTTON_RIGHT && compositor_.get() != NULL)
     {
-     // TODO: need a pointer to compositor currentTracker_.reset(new ZoomSceneTracker(viewportController_, pointerEvent, viewportController_->));
+      currentTracker_.reset(new ZoomSceneTracker(viewportController_, pointerEvent, compositor_->GetHeight()));
     }
+    return true;
   }
-
+  return false;
 }
 
+bool BasicScene2DInteractor::OnKeyboardEvent(const GuiAdapterKeyboardEvent& guiEvent)
+{
+  switch (guiEvent.sym[0])
+  {
+  case 's':
+  {
+    viewportController_->FitContent(compositor_->GetWidth(), compositor_->GetHeight());
+    return true;
+  };
+  }
+  return false;
+}
 
+bool BasicScene2DInteractor::OnWheelEvent(const GuiAdapterWheelEvent& guiEvent)
+{
+  return false;
+}