00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkMimxErrorCallback.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 =========================================================================*/ 00015 // .NAME vtkMimxErrorCallback - supports legacy function callbacks for VTK 00016 // .SECTION Description 00017 // vtkMimxErrorCallback is a callback that supports the legacy callback 00018 // methods found in VTK. For example, the legacy method 00019 // vtkProcessObject::SetStartMethod() is actually invoked using the 00020 // command/observer design pattern of VTK, and the vtkMimxErrorCallback 00021 // is used to provide the legacy functionality. The callback function should 00022 // have the form void func(void *clientdata), where clientdata is special data 00023 // that should is associated with this instance of vtkCallbackCommand. 00024 // 00025 // .SECTION Caveats 00026 // This is legacy glue. Please do not use; it will be eventually eliminated. 00027 00028 // .SECTION See Also 00029 // vtkCommand vtkCallbackCommand 00030 00031 #ifndef __vtkMimxErrorCallback_h 00032 #define __vtkMimxErrorCallback_h 00033 00034 #include "vtkCommand.h" 00035 #include "vtkKWApplication.h" 00036 #include "vtkMimxCommonWin32Header.h" 00037 00038 class vtkKWMessageDialog; 00039 00040 // the old style void fund(void *) callbacks 00041 class VTK_MIMXCOMMON_EXPORT vtkMimxErrorCallback : public vtkCommand 00042 { 00043 public: 00044 static vtkMimxErrorCallback *New() 00045 {return new vtkMimxErrorCallback;}; 00046 00047 // Description: 00048 // Satisfy the superclass API for callbacks. 00049 void Execute(vtkObject *invoker, unsigned long eid, void *calldata); 00050 00051 // Description: 00052 // Methods to set and get client and callback information. 00053 void SetClientData(void *cd) 00054 {this->ClientData = cd;}; 00055 void SetCallback(void (*f)(void *clientdata)) 00056 {this->Callback = f;}; 00057 void SetClientDataDeleteCallback(void (*f)(void *)) 00058 {this->ClientDataDeleteCallback = f;}; 00059 00060 void *ClientData; 00061 void (*Callback)(void *); 00062 void (*ClientDataDeleteCallback)(void *); 00063 00064 void SetKWApplication(vtkKWApplication *App) 00065 { 00066 this->KWApplication = App; 00067 } 00068 00069 vtkKWApplication* GetKWApplication() 00070 { 00071 return this->KWApplication; 00072 } 00073 00074 vtkIdType GetState() 00075 { 00076 return this->State; 00077 } 00078 void SetState(vtkIdType currentState) 00079 { 00080 this->State = currentState; 00081 } 00082 void ErrorMessage(const char*); 00083 protected: 00084 vtkMimxErrorCallback(); 00085 ~vtkMimxErrorCallback(); 00086 vtkKWApplication *KWApplication; 00087 vtkKWMessageDialog *KWMessageDialog; 00088 vtkIdType State; 00089 }; 00090 00091 00092 #endif /* __vtkMimxErrorCallback_h */ 00093
1.6.1