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