VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkCallbackCommand.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 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