Mercurial > hg > orthanc-stone
diff Framework/Widgets/LayerWidget.cpp @ 267:89d02de83c03 am-2
added declaretion of messages handled/emitted
author | am@osimis.io |
---|---|
date | Wed, 22 Aug 2018 14:59:20 +0200 |
parents | c9cf95b49a86 |
children | 5bd4161bf11b |
line wrap: on
line diff
--- a/Framework/Widgets/LayerWidget.cpp Tue Aug 21 18:14:22 2018 +0200 +++ b/Framework/Widgets/LayerWidget.cpp Wed Aug 22 14:59:20 2018 +0200 @@ -361,8 +361,18 @@ LayerWidget::LayerWidget(MessageBroker& broker) : IObserver(broker), + IObservable(broker), started_(false) { + DeclareHandledMessage(MessageType_LayerSource_GeometryReady); + DeclareHandledMessage(MessageType_LayerSource_ContentChanged); + DeclareHandledMessage(MessageType_LayerSource_LayerReady); + DeclareHandledMessage(MessageType_LayerSource_SliceChanged); + DeclareHandledMessage(MessageType_LayerSource_GeometryError); + + DeclareEmittableMessage(MessageType_Widget_GeometryChanged); + DeclareEmittableMessage(MessageType_Widget_ContentChanged); + SetBackgroundCleared(true); } @@ -483,19 +493,19 @@ void LayerWidget::HandleMessage(const IObservable& from, const IMessage& message) { switch (message.GetType()) { - case MessageType_GeometryReady: + case MessageType_LayerSource_GeometryReady: OnGeometryReady(dynamic_cast<const ILayerSource&>(from)); break; - case MessageType_GeometryError: + case MessageType_LayerSource_GeometryError: LOG(ERROR) << "Cannot get geometry"; break; - case MessageType_ContentChanged: + case MessageType_LayerSource_ContentChanged: OnContentChanged(dynamic_cast<const ILayerSource&>(from)); break; - case MessageType_SliceChanged: + case MessageType_LayerSource_SliceChanged: OnSliceChanged(dynamic_cast<const ILayerSource&>(from), dynamic_cast<const ILayerSource::SliceChangedMessage&>(message).slice_); break; - case MessageType_LayerReady: + case MessageType_LayerSource_LayerReady: { const ILayerSource::LayerReadyMessage& layerReadyMessage = dynamic_cast<const ILayerSource::LayerReadyMessage&>(message); OnLayerReady(layerReadyMessage.layer_, @@ -518,6 +528,7 @@ changedLayers_[i] = true; //layers_[i]->ScheduleLayerCreation(slice_); } + EmitMessage(IMessage(MessageType_Widget_GeometryChanged)); } void LayerWidget::InvalidateAllLayers()