Page MenuHomePhabricator

Return tag observer to be able to remove it later
Closed, ResolvedPublic

Description

The function SliceNavigationController::ConnectGeometrySliceEvent( ) adds an observer. Later it's needed to remove the observer and the tag id is needed.

I put here the code:

template <typename T> 
unsigned long ConnectGeometrySliceEvent(T* receiver, bool connectSendEvent=true)
{
  typedef typename itk::ReceptorMemberCommand<T>::Pointer 
    ReceptorMemberCommandPointer;
  ReceptorMemberCommandPointer eventReceptorCommand = 
    itk::ReceptorMemberCommand<T>::New();
  eventReceptorCommand->SetCallbackFunction(receiver, &T::SetGeometrySlice);
  unsigned long tag = AddObserver(GeometrySliceEvent(NULL,0), eventReceptorCommand);
  if(connectSendEvent)
    ConnectGeometrySendEvent(receiver);

  return tag;
}