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