00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00190 #ifndef __vtkCommand_h
00191 #define __vtkCommand_h
00192
00193 #include "vtkObjectBase.h"
00194
00195 class vtkObject;
00196
00197
00198 class VTK_COMMON_EXPORT vtkCommand : public vtkObjectBase
00199 {
00200 public:
00202
00205 void UnRegister();
00206 virtual void UnRegister(vtkObjectBase *)
00207 { this->UnRegister(); }
00209
00211
00220 virtual void Execute(vtkObject *caller, unsigned long eventId,
00221 void *callData) = 0;
00223
00225
00227 static const char *GetStringFromEventId(unsigned long event);
00228 static unsigned long GetEventIdFromString(const char *event);
00230
00232
00234 void SetAbortFlag(int f)
00235 { this->AbortFlag = f; }
00236 int GetAbortFlag()
00237 { return this->AbortFlag; }
00238 void AbortFlagOn()
00239 { this->SetAbortFlag(1); }
00240 void AbortFlagOff()
00241 { this->SetAbortFlag(0); }
00243
00245
00249 void SetPassiveObserver(int f)
00250 { this->PassiveObserver = f; }
00251 int GetPassiveObserver()
00252 { return this->PassiveObserver; }
00253 void PassiveObserverOn()
00254 { this->SetPassiveObserver(1); }
00255 void PassiveObserverOff()
00256 { this->SetPassiveObserver(0); }
00258
00259
00261
00265 enum EventIds {
00266 NoEvent = 0,
00267 AnyEvent,
00268 DeleteEvent,
00269 StartEvent,
00270 EndEvent,
00271 RenderEvent,
00272 ProgressEvent,
00273 PickEvent,
00274 StartPickEvent,
00275 EndPickEvent,
00276 AbortCheckEvent,
00277 ExitEvent,
00278 LeftButtonPressEvent,
00279 LeftButtonReleaseEvent,
00280 MiddleButtonPressEvent,
00281 MiddleButtonReleaseEvent,
00282 RightButtonPressEvent,
00283 RightButtonReleaseEvent,
00284 EnterEvent,
00285 LeaveEvent,
00286 KeyPressEvent,
00287 KeyReleaseEvent,
00288 CharEvent,
00289 ExposeEvent,
00290 ConfigureEvent,
00291 TimerEvent,
00292 MouseMoveEvent,
00293 MouseWheelForwardEvent,
00294 MouseWheelBackwardEvent,
00295 ActiveCameraEvent,
00296 CreateCameraEvent,
00297 ResetCameraEvent,
00298 ResetCameraClippingRangeEvent,
00299 ModifiedEvent,
00300 WindowLevelEvent,
00301 StartWindowLevelEvent,
00302 EndWindowLevelEvent,
00303 ResetWindowLevelEvent,
00304 SetOutputEvent,
00305 ErrorEvent,
00306 WarningEvent,
00307 StartInteractionEvent,
00308 InteractionEvent,
00309 EndInteractionEvent,
00310 EnableEvent,
00311 DisableEvent,
00312 CreateTimerEvent,
00313 DestroyTimerEvent,
00314 PlacePointEvent,
00315 PlaceWidgetEvent,
00316 CursorChangedEvent,
00317 ExecuteInformationEvent,
00318 RenderWindowMessageEvent,
00319 WrongTagEvent,
00320 StartAnimationCueEvent,
00321 AnimationCueTickEvent,
00322 EndAnimationCueEvent,
00323 VolumeMapperRenderEndEvent,
00324 VolumeMapperRenderProgressEvent,
00325 VolumeMapperRenderStartEvent,
00326 VolumeMapperComputeGradientsEndEvent,
00327 VolumeMapperComputeGradientsProgressEvent,
00328 VolumeMapperComputeGradientsStartEvent,
00329 WidgetModifiedEvent,
00330 WidgetValueChangedEvent,
00331 WidgetActivateEvent,
00332 ConnectionCreatedEvent,
00333 ConnectionClosedEvent,
00334 DomainModifiedEvent,
00335 PropertyModifiedEvent,
00336 UpdateEvent,
00337 RegisterEvent,
00338 UnRegisterEvent,
00339 UpdateInformationEvent,
00340 SelectionChangedEvent,
00341 UpdatePropertyEvent,
00342 UserEvent = 1000
00343 };
00345
00346
00347 protected:
00348 int AbortFlag;
00349 int PassiveObserver;
00350
00351 vtkCommand();
00352 virtual ~vtkCommand() {}
00353
00354 friend class vtkSubjectHelper;
00355
00356 vtkCommand(const vtkCommand& c) : vtkObjectBase(c) {}
00357 void operator=(const vtkCommand&) {}
00358
00359 };
00360
00361 #endif
00362