Mercurial > hg > orthanc-stone
comparison Framework/Widgets/LayerWidget.h @ 251:192e6e349e69 am-2
first usage of new message system (in SDL only)
author | am@osimis.io |
---|---|
date | Mon, 02 Jul 2018 18:13:46 +0200 |
parents | 26e3bfe30e66 |
children | c9cf95b49a86 |
comparison
equal
deleted
inserted
replaced
250:5e642859267e | 251:192e6e349e69 |
---|---|
22 #pragma once | 22 #pragma once |
23 | 23 |
24 #include "WorldSceneWidget.h" | 24 #include "WorldSceneWidget.h" |
25 #include "../Layers/ILayerSource.h" | 25 #include "../Layers/ILayerSource.h" |
26 #include "../Toolbox/Extent2D.h" | 26 #include "../Toolbox/Extent2D.h" |
27 #include "../../Framework/Messages/IObserver.h" | |
27 | 28 |
28 #include <map> | 29 #include <map> |
29 | 30 |
30 namespace OrthancStone | 31 namespace OrthancStone |
31 { | 32 { |
32 class LayerWidget : | 33 class LayerWidget : |
33 public WorldSceneWidget, | 34 public WorldSceneWidget, |
34 private ILayerSource::IObserver | 35 public IObserver |
35 { | 36 { |
36 private: | 37 private: |
37 class Scene; | 38 class Scene; |
38 | 39 |
39 typedef std::map<const ILayerSource*, size_t> LayersIndex; | 40 typedef std::map<const ILayerSource*, size_t> LayersIndex; |
51 const ILayerSource& layer) const; | 52 const ILayerSource& layer) const; |
52 | 53 |
53 void GetLayerExtent(Extent2D& extent, | 54 void GetLayerExtent(Extent2D& extent, |
54 ILayerSource& source) const; | 55 ILayerSource& source) const; |
55 | 56 |
56 virtual void NotifyGeometryReady(const ILayerSource& source); | 57 void OnGeometryReady(const ILayerSource& source); |
57 | 58 |
58 virtual void NotifyGeometryError(const ILayerSource& source); | 59 virtual void OnContentChanged(const ILayerSource& source); |
59 | 60 |
60 virtual void NotifyContentChange(const ILayerSource& source); | 61 virtual void OnSliceChanged(const ILayerSource& source, |
61 | |
62 virtual void NotifySliceChange(const ILayerSource& source, | |
63 const Slice& slice); | 62 const Slice& slice); |
64 | 63 |
65 virtual void NotifyLayerReady(std::auto_ptr<ILayerRenderer>& renderer, | 64 virtual void OnLayerReady(std::auto_ptr<ILayerRenderer>& renderer, |
66 const ILayerSource& source, | 65 const ILayerSource& source, |
67 const CoordinateSystem3D& slice, | 66 const CoordinateSystem3D& slice, |
68 bool isError); | 67 bool isError); |
69 | 68 |
69 | |
70 void ResetChangedLayers(); | 70 void ResetChangedLayers(); |
71 | 71 |
72 public: | 72 public: |
73 LayerWidget(MessageBroker& broker); | |
74 | |
75 virtual void HandleMessage(IObservable& from, const IMessage& message); | |
76 | |
73 virtual Extent2D GetSceneExtent(); | 77 virtual Extent2D GetSceneExtent(); |
74 | 78 |
75 protected: | 79 protected: |
76 virtual bool RenderScene(CairoContext& context, | 80 virtual bool RenderScene(CairoContext& context, |
77 const ViewportGeometry& view); | 81 const ViewportGeometry& view); |