00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00043 #ifndef __vtkCallbackCommand_h
00044 #define __vtkCallbackCommand_h
00045
00046 #include "vtkCommand.h"
00047
00048 class VTK_COMMON_EXPORT vtkCallbackCommand : public vtkCommand
00049 {
00050 public:
00051 vtkTypeMacro(vtkCallbackCommand,vtkCommand);
00052
00053 static vtkCallbackCommand *New()
00054 {return new vtkCallbackCommand;};
00055
00060 virtual void Execute(vtkObject *caller, unsigned long eid, void *callData);
00061
00063
00065 virtual void SetClientData(void *cd)
00066 { this->ClientData = cd; }
00067 virtual void* GetClientData()
00068 { return this->ClientData; }
00069 virtual void SetCallback(void (*f)(vtkObject *caller, unsigned long eid,
00070 void *clientdata, void *calldata))
00071 { this->Callback = f; }
00072 virtual void SetClientDataDeleteCallback(void (*f)(void *))
00073 { this->ClientDataDeleteCallback = f; }
00075
00077
00080 void SetAbortFlagOnExecute(int f)
00081 { this->AbortFlagOnExecute = f; }
00082 int GetAbortFlagOnExecute()
00083 { return this->AbortFlagOnExecute; }
00084 void AbortFlagOnExecuteOn()
00085 { this->SetAbortFlagOnExecute(1); }
00086 void AbortFlagOnExecuteOff()
00087 { this->SetAbortFlagOnExecute(0); }
00089
00090 void (*Callback)(vtkObject *, unsigned long, void *, void *);
00091 void (*ClientDataDeleteCallback)(void *);
00092
00093 protected:
00094
00095 int AbortFlagOnExecute;
00096 void *ClientData;
00097
00098 vtkCallbackCommand();
00099 ~vtkCallbackCommand();
00100 };
00101
00102 #endif
00103