00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00192 #ifndef __vtkCommand_h
00193 #define __vtkCommand_h
00194
00195 #include "vtkObjectBase.h"
00196
00197 class vtkObject;
00198
00199
00200 class VTK_COMMON_EXPORT vtkCommand : public vtkObjectBase
00201 {
00202 public:
00204
00207 void UnRegister();
00208 virtual void UnRegister(vtkObjectBase *)
00209 { this->UnRegister(); }
00211
00213
00222 virtual void Execute(vtkObject *caller, unsigned long eventId,
00223 void *callData) = 0;
00225
00227
00229 static const char *GetStringFromEventId(unsigned long event);
00230 static unsigned long GetEventIdFromString(const char *event);
00232
00234
00236 void SetAbortFlag(int f)
00237 { this->AbortFlag = f; }
00238 int GetAbortFlag()
00239 { return this->AbortFlag; }
00240 void AbortFlagOn()
00241 { this->SetAbortFlag(1); }
00242 void AbortFlagOff()
00243 { this->SetAbortFlag(0); }
00245
00247
00251 void SetPassiveObserver(int f)
00252 { this->PassiveObserver = f; }
00253 int GetPassiveObserver()
00254 { return this->PassiveObserver; }
00255 void PassiveObserverOn()
00256 { this->SetPassiveObserver(1); }
00257 void PassiveObserverOff()
00258 { this->SetPassiveObserver(0); }
00260
00261
00263
00267 enum EventIds {
00268 NoEvent = 0,
00269 AnyEvent,
00270 DeleteEvent,
00271 StartEvent,
00272 EndEvent,
00273 RenderEvent,
00274 ProgressEvent,
00275 PickEvent,
00276 StartPickEvent,
00277 EndPickEvent,
00278 AbortCheckEvent,
00279 ExitEvent,
00280 LeftButtonPressEvent,
00281 LeftButtonReleaseEvent,
00282 MiddleButtonPressEvent,
00283 MiddleButtonReleaseEvent,
00284 RightButtonPressEvent,
00285 RightButtonReleaseEvent,
00286 EnterEvent,
00287 LeaveEvent,
00288 KeyPressEvent,
00289 KeyReleaseEvent,
00290 CharEvent,
00291 ExposeEvent,
00292 ConfigureEvent,
00293 TimerEvent,
00294 MouseMoveEvent,
00295 MouseWheelForwardEvent,
00296 MouseWheelBackwardEvent,
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 ViewProgressEvent,
00343 UpdateDataEvent,
00344 CurrentChangedEvent,
00345 UserEvent = 1000
00346 };
00348
00349
00350 protected:
00351 int AbortFlag;
00352 int PassiveObserver;
00353
00354 vtkCommand();
00355 virtual ~vtkCommand() {}
00356
00357 friend class vtkSubjectHelper;
00358
00359 vtkCommand(const vtkCommand& c) : vtkObjectBase(c) {}
00360 void operator=(const vtkCommand&) {}
00361
00362 };
00363
00364 #endif
00365