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);