diff OrthancStone/Sources/Viewport/DefaultViewportInteractor.h @ 1561:cf652990abb1

tunable mouse actions
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 20 Aug 2020 17:44:35 +0200
parents a6f339d8e4c2
children e731e62692a9
line wrap: on
line diff
--- a/OrthancStone/Sources/Viewport/DefaultViewportInteractor.h	Thu Aug 20 13:57:52 2020 +0200
+++ b/OrthancStone/Sources/Viewport/DefaultViewportInteractor.h	Thu Aug 20 17:44:35 2020 +0200
@@ -27,13 +27,24 @@
   class DefaultViewportInteractor : public IViewportInteractor
   {
   private:
-    // Index of the layer whose windowing is altered by clicking the
-    // left mouse button
-    int  windowingLayer_;
+    // Index of the layer whose windowing is altered by grayscale windowing action
+    int          windowingLayer_;
+    MouseAction  leftButtonAction_;
+    MouseAction  middleButtonAction_;
+    MouseAction  rightButtonAction_;
+
+    IFlexiblePointerTracker* CreateTrackerInternal(boost::shared_ptr<IViewport> viewport,
+                                                   MouseAction action,
+                                                   const PointerEvent& event,
+                                                   unsigned int viewportWidth,
+                                                   unsigned int viewportHeight);
     
   public:
     DefaultViewportInteractor() :
-      windowingLayer_(0)
+      windowingLayer_(0),
+      leftButtonAction_(MouseAction_GrayscaleWindowing),
+      middleButtonAction_(MouseAction_Pan),
+      rightButtonAction_(MouseAction_Zoom)
     {
     }
 
@@ -46,6 +57,36 @@
     {
       windowingLayer_ = layerIndex;
     }
+
+    MouseAction GetLeftButtonAction() const
+    {
+      return leftButtonAction_;
+    }
+
+    void SetLeftButtonAction(MouseAction action)
+    {
+      leftButtonAction_ = action;
+    }
+
+    MouseAction GetMiddleButtonAction() const
+    {
+      return middleButtonAction_;
+    }
+
+    void SetMiddleButtonAction(MouseAction action)
+    {
+      middleButtonAction_ = action;
+    }
+
+    MouseAction GetRightButtonAction() const
+    {
+      return rightButtonAction_;
+    }
+
+    void SetRightButtonAction(MouseAction action)
+    {
+      rightButtonAction_ = action;
+    }
     
     virtual IFlexiblePointerTracker* CreateTracker(boost::shared_ptr<IViewport> viewport,
                                                    const PointerEvent& event,