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 {