# HG changeset patch # User Sebastien Jodogne # Date 1539798176 -7200 # Node ID 08683537a227648b2d00994d232127f9f4abda06 # Parent 50e5ec1bdd462dcdc95238a93d4c457d6bc060ac possibility to turn off default mouse events in WorldSceneWidget diff -r 50e5ec1bdd46 -r 08683537a227 Framework/Widgets/WorldSceneWidget.cpp --- a/Framework/Widgets/WorldSceneWidget.cpp Wed Oct 17 19:38:39 2018 +0200 +++ b/Framework/Widgets/WorldSceneWidget.cpp Wed Oct 17 19:42:56 2018 +0200 @@ -161,18 +161,23 @@ { return new SceneMouseTracker(view_, tracker.release()); } - - //TODO: allow Interactor to create Pan & Zoom - switch (button) + else if (hasDefaultMouseEvents_) { - case MouseButton_Middle: - return new SceneMouseTracker(view_, new PanMouseTracker(*this, x, y)); + switch (button) + { + case MouseButton_Middle: + return new SceneMouseTracker(view_, new PanMouseTracker(*this, x, y)); + + case MouseButton_Right: + return new SceneMouseTracker(view_, new ZoomMouseTracker(*this, x, y)); - case MouseButton_Right: - return new SceneMouseTracker(view_, new ZoomMouseTracker(*this, x, y)); - - default: - return NULL; + default: + return NULL; + } + } + else + { + return NULL; } } diff -r 50e5ec1bdd46 -r 08683537a227 Framework/Widgets/WorldSceneWidget.h --- a/Framework/Widgets/WorldSceneWidget.h Wed Oct 17 19:38:39 2018 +0200 +++ b/Framework/Widgets/WorldSceneWidget.h Wed Oct 17 19:42:56 2018 +0200 @@ -36,6 +36,7 @@ ViewportGeometry view_; IWorldSceneInteractor* interactor_; + bool hasDefaultMouseEvents_; protected: virtual Extent2D GetSceneExtent() = 0; @@ -56,8 +57,19 @@ public: WorldSceneWidget(const std::string& name) : CairoWidget(name), - interactor_(NULL) + interactor_(NULL), + hasDefaultMouseEvents_(true) + { + } + + void SetDefaultMouseEvents(bool value) { + hasDefaultMouseEvents_ = value; + } + + bool HasDefaultMouseEvents() const + { + return hasDefaultMouseEvents_; } void SetInteractor(IWorldSceneInteractor& interactor);