Mercurial > hg > orthanc-stone
comparison Framework/Widgets/WorldSceneWidget.h @ 53:c2dc924f1a63 wasm
removing threading out of the framework
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 27 Apr 2017 16:57:49 +0200 |
parents | 25befef48c35 |
children | 01aa453d4d5b |
comparison
equal
deleted
inserted
replaced
52:37e504582af6 | 53:c2dc924f1a63 |
---|---|
22 #pragma once | 22 #pragma once |
23 | 23 |
24 #include "CairoWidget.h" | 24 #include "CairoWidget.h" |
25 #include "IWorldSceneInteractor.h" | 25 #include "IWorldSceneInteractor.h" |
26 | 26 |
27 #include "../Toolbox/SharedValue.h" | |
28 #include "../Toolbox/ViewportGeometry.h" | 27 #include "../Toolbox/ViewportGeometry.h" |
29 | 28 |
30 namespace OrthancStone | 29 namespace OrthancStone |
31 { | 30 { |
32 class WorldSceneWidget : public CairoWidget | 31 class WorldSceneWidget : public CairoWidget |
33 { | 32 { |
34 public: | 33 public: |
35 // Must be thread-safe | |
36 class IWorldObserver : public boost::noncopyable | 34 class IWorldObserver : public boost::noncopyable |
37 { | 35 { |
38 public: | 36 public: |
39 virtual ~IWorldObserver() | 37 virtual ~IWorldObserver() |
40 { | 38 { |
55 class PanMouseTracker; | 53 class PanMouseTracker; |
56 class ZoomMouseTracker; | 54 class ZoomMouseTracker; |
57 | 55 |
58 typedef ObserversRegistry<WorldSceneWidget, IWorldObserver> Observers; | 56 typedef ObserversRegistry<WorldSceneWidget, IWorldObserver> Observers; |
59 | 57 |
60 SharedValue<ViewportGeometry> view_; | 58 ViewportGeometry view_; |
61 Observers observers_; | 59 Observers observers_; |
62 IWorldSceneInteractor* interactor_; | 60 IWorldSceneInteractor* interactor_; |
63 | 61 |
64 | 62 |
65 protected: | 63 protected: |
66 virtual bool RenderScene(CairoContext& context, | 64 virtual bool RenderScene(CairoContext& context, |
67 const ViewportGeometry& view) = 0; | 65 const ViewportGeometry& view) = 0; |
70 | 68 |
71 virtual void RenderMouseOverCairo(CairoContext& context, | 69 virtual void RenderMouseOverCairo(CairoContext& context, |
72 int x, | 70 int x, |
73 int y); | 71 int y); |
74 | 72 |
75 void SetSceneExtent(SharedValue<ViewportGeometry>::Locker& locker); | 73 void SetSceneExtent(ViewportGeometry& geometry); |
76 | 74 |
77 public: | 75 public: |
78 WorldSceneWidget() : | 76 WorldSceneWidget() : |
79 interactor_(NULL) | 77 interactor_(NULL) |
80 { | 78 { |