00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00046 #ifndef __vtkCommand_h
00047 #define __vtkCommand_h
00048
00049 #include "vtkObjectBase.h"
00050
00051 class vtkObject;
00052
00053
00054 class VTK_COMMON_EXPORT vtkCommand : public vtkObjectBase
00055 {
00056 public:
00058
00061 void UnRegister();
00062 virtual void UnRegister(vtkObjectBase *)
00063 { this->UnRegister(); }
00065
00067
00076 virtual void Execute(vtkObject *caller, unsigned long eventId,
00077 void *callData) = 0;
00079
00081
00083 static const char *GetStringFromEventId(unsigned long event);
00084 static unsigned long GetEventIdFromString(const char *event);
00086
00088
00090 void SetAbortFlag(int f)
00091 { this->AbortFlag = f; }
00092 int GetAbortFlag()
00093 { return this->AbortFlag; }
00094 void AbortFlagOn()
00095 { this->SetAbortFlag(1); }
00096 void AbortFlagOff()
00097 { this->SetAbortFlag(0); }
00099
00100
00102
00106 enum EventIds {
00107 NoEvent = 0,
00108 AnyEvent,
00109 DeleteEvent,
00110 StartEvent,
00111 EndEvent,
00112 ProgressEvent,
00113 PickEvent,
00114 StartPickEvent,
00115 EndPickEvent,
00116 AbortCheckEvent,
00117 ExitEvent,
00118 LeftButtonPressEvent,
00119 LeftButtonReleaseEvent,
00120 MiddleButtonPressEvent,
00121 MiddleButtonReleaseEvent,
00122 RightButtonPressEvent,
00123 RightButtonReleaseEvent,
00124 EnterEvent,
00125 LeaveEvent,
00126 KeyPressEvent,
00127 KeyReleaseEvent,
00128 CharEvent,
00129 ExposeEvent,
00130 ConfigureEvent,
00131 TimerEvent,
00132 MouseMoveEvent,
00133 ResetCameraEvent,
00134 ResetCameraClippingRangeEvent,
00135 ModifiedEvent,
00136 WindowLevelEvent,
00137 StartWindowLevelEvent,
00138 EndWindowLevelEvent,
00139 ResetWindowLevelEvent,
00140 NextDataEvent,
00141 PushDataStartEvent,
00142 SetOutputEvent,
00143 EndOfDataEvent,
00144 ErrorEvent,
00145 WarningEvent,
00146 StartInteractionEvent,
00147 InteractionEvent,
00148 EndInteractionEvent,
00149 EnableEvent,
00150 DisableEvent,
00151 CreateTimerEvent,
00152 DestroyTimerEvent,
00153 PlaceWidgetEvent,
00154 CursorChangedEvent,
00155 ExecuteInformationEvent,
00156 RenderWindowMessageEvent,
00157 UserEvent = 1000
00158 };
00160
00161
00162 protected:
00163 int AbortFlag;
00164 vtkCommand();
00165 virtual ~vtkCommand() {}
00166
00167 friend class vtkSubjectHelper;
00168
00169 vtkCommand(const vtkCommand& c) : vtkObjectBase(c) {}
00170 void operator=(const vtkCommand&) {}
00171
00172 };
00173
00174 #endif
00175