00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00065 #ifndef __vtkCommand_h
00066 #define __vtkCommand_h
00067
00068 #include "vtkObjectBase.h"
00069
00070 class vtkObject;
00071
00072
00073 class VTK_COMMON_EXPORT vtkCommand : public vtkObjectBase
00074 {
00075 public:
00077
00080 void UnRegister();
00081 virtual void UnRegister(vtkObjectBase *)
00082 { this->UnRegister(); }
00084
00086
00095 virtual void Execute(vtkObject *caller, unsigned long eventId,
00096 void *callData) = 0;
00098
00100
00102 static const char *GetStringFromEventId(unsigned long event);
00103 static unsigned long GetEventIdFromString(const char *event);
00105
00107
00109 void SetAbortFlag(int f)
00110 { if(this->AbortFlag) *this->AbortFlag = f; }
00111 int GetAbortFlag()
00112 { return (this->AbortFlag) ? *this->AbortFlag: 0; }
00113 void AbortFlagOn()
00114 { this->SetAbortFlag(1); }
00115 void AbortFlagOff()
00116 { this->SetAbortFlag(0); }
00118
00119
00121
00122 -- vtkCommand::UserEvent + int to specify their own event ids. If
00123 this list is adjusted, be sure to adjust vtkCommandEventStrings in
00124 vtkCommand.cxx to match. */
00125 enum EventIds {
00126 NoEvent = 0,
00127 AnyEvent,
00128 DeleteEvent,
00129 StartEvent,
00130 EndEvent,
00131 ProgressEvent,
00132 PickEvent,
00133 StartPickEvent,
00134 EndPickEvent,
00135 AbortCheckEvent,
00136 ExitEvent,
00137 LeftButtonPressEvent,
00138 LeftButtonReleaseEvent,
00139 MiddleButtonPressEvent,
00140 MiddleButtonReleaseEvent,
00141 RightButtonPressEvent,
00142 RightButtonReleaseEvent,
00143 EnterEvent,
00144 LeaveEvent,
00145 KeyPressEvent,
00146 KeyReleaseEvent,
00147 CharEvent,
00148 ExposeEvent,
00149 ConfigureEvent,
00150 TimerEvent,
00151 MouseMoveEvent,
00152 ResetCameraEvent,
00153 ResetCameraClippingRangeEvent,
00154 ModifiedEvent,
00155 WindowLevelEvent,
00156 StartWindowLevelEvent,
00157 EndWindowLevelEvent,
00158 ResetWindowLevelEvent,
00159 NextDataEvent,
00160 PushDataStartEvent,
00161 SetOutputEvent,
00162 EndOfDataEvent,
00163 ErrorEvent,
00164 WarningEvent,
00165 StartInteractionEvent,
00166 InteractionEvent,
00167 EndInteractionEvent,
00168 EnableEvent,
00169 DisableEvent,
00170 CreateTimerEvent,
00171 DestroyTimerEvent,
00172 PlaceWidgetEvent,
00173 CursorChangedEvent,
00174 ExecuteInformationEvent,
00175 RenderWindowMessageEvent,
00176 UserEvent = 1000
00177 };
00179
00180
00181 protected:
00182 int* AbortFlag;
00183 vtkCommand();
00184 virtual ~vtkCommand() {}
00185
00186
00187 void SetAbortFlagPointer(int* f)
00188 { this->AbortFlag = f; }
00189
00190 friend class vtkSubjectHelper;
00191
00192 vtkCommand(const vtkCommand& c) : vtkObjectBase(c) {}
00193 void operator=(const vtkCommand&) {}
00194
00195 };
00196
00197 #endif
00198