Mercurial > hg > orthanc-stone
diff 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 |
line wrap: on
line diff
--- a/Framework/Widgets/LayerWidget.h Mon Jul 02 16:36:17 2018 +0200 +++ b/Framework/Widgets/LayerWidget.h Mon Jul 02 18:13:46 2018 +0200 @@ -24,6 +24,7 @@ #include "WorldSceneWidget.h" #include "../Layers/ILayerSource.h" #include "../Toolbox/Extent2D.h" +#include "../../Framework/Messages/IObserver.h" #include <map> @@ -31,7 +32,7 @@ { class LayerWidget : public WorldSceneWidget, - private ILayerSource::IObserver + public IObserver { private: class Scene; @@ -53,23 +54,26 @@ void GetLayerExtent(Extent2D& extent, ILayerSource& source) const; - virtual void NotifyGeometryReady(const ILayerSource& source); - - virtual void NotifyGeometryError(const ILayerSource& source); + void OnGeometryReady(const ILayerSource& source); - virtual void NotifyContentChange(const ILayerSource& source); + virtual void OnContentChanged(const ILayerSource& source); - virtual void NotifySliceChange(const ILayerSource& source, + virtual void OnSliceChanged(const ILayerSource& source, const Slice& slice); - virtual void NotifyLayerReady(std::auto_ptr<ILayerRenderer>& renderer, + virtual void OnLayerReady(std::auto_ptr<ILayerRenderer>& renderer, const ILayerSource& source, const CoordinateSystem3D& slice, bool isError); + void ResetChangedLayers(); public: + LayerWidget(MessageBroker& broker); + + virtual void HandleMessage(IObservable& from, const IMessage& message); + virtual Extent2D GetSceneExtent(); protected: