00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00051 #ifndef __vtkCommand_h
00052 #define __vtkCommand_h
00053
00054 #include "vtkWin32Header.h"
00055
00056 class vtkObject;
00057
00058
00059 class VTK_EXPORT vtkCommand
00060 {
00061 public:
00062 vtkCommand() {};
00063 virtual ~vtkCommand() {};
00064 static vtkCommand *New();
00065 void Delete() {delete this;};
00066
00067 virtual void Execute(vtkObject *caller, unsigned long, void *callData) = 0;
00068 static const char *GetStringFromEventId(unsigned long event);
00069 static unsigned long GetEventIdFromString(const char *event);
00070
00071
00072
00073
00074
00075
00076
00077 enum EventIds {
00078 NoEvent = 0,
00079 AnyEvent,
00080 DeleteEvent,
00081 StartEvent,
00082 EndEvent,
00083 ProgressEvent,
00084 PickEvent,
00085 StartPickEvent,
00086 EndPickEvent,
00087 AbortCheckEvent,
00088 ExitEvent,
00089 LeftButtonPressEvent,
00090 LeftButtonReleaseEvent,
00091 MiddleButtonPressEvent,
00092 MiddleButtonReleaseEvent,
00093 RightButtonPressEvent,
00094 RightButtonReleaseEvent,
00095 EnterEvent,
00096 LeaveEvent,
00097 KeyPressEvent,
00098 KeyReleaseEvent,
00099 CharEvent,
00100 ConfigureEvent,
00101 TimerEvent,
00102 MouseMoveEvent,
00103 ResetCameraEvent,
00104 ResetCameraClippingRangeEvent,
00105 UserEvent = 1000
00106 };
00107
00108 };
00109
00110
00111
00112
00113
00114
00115 class VTK_EXPORT vtkCallbackCommand : public vtkCommand
00116 {
00117 public:
00118 vtkCallbackCommand();
00119 ~vtkCallbackCommand();
00120 static vtkCallbackCommand *New()
00121 {return new vtkCallbackCommand;};
00122
00123 void SetClientData(void *cd)
00124 {this->ClientData = cd;};
00125 void SetCallback(void (*f)(vtkObject *, unsigned long, void *, void *))
00126 {this->Callback = f;};
00127 void SetClientDataDeleteCallback(void (*f)(void *))
00128 {this->ClientDataDeleteCallback = f;};
00129
00130 void Execute(vtkObject *caller, unsigned long event, void *callData);
00131
00132 void *ClientData;
00133 void (*Callback)(vtkObject *, unsigned long, void *, void *);
00134 void (*ClientDataDeleteCallback)(void *);
00135 };
00136
00137
00138
00139 class VTK_EXPORT vtkOldStyleCallbackCommand : public vtkCommand
00140 {
00141 public:
00142 vtkOldStyleCallbackCommand();
00143 ~vtkOldStyleCallbackCommand();
00144 static vtkOldStyleCallbackCommand *New()
00145 {return new vtkOldStyleCallbackCommand;};
00146
00147 void SetClientData(void *cd)
00148 {this->ClientData = cd;};
00149 void SetCallback(void (*f)(void *))
00150 {this->Callback = f;};
00151 void SetClientDataDeleteCallback(void (*f)(void *))
00152 {this->ClientDataDeleteCallback = f;};
00153
00154 void Execute(vtkObject *,unsigned long, void *);
00155
00156 void *ClientData;
00157 void (*Callback)(void *);
00158 void (*ClientDataDeleteCallback)(void *);
00159 };
00160
00161
00162
00163
00164 #endif
00165