00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkCocoaRenderWindowInteractor.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 00014 00015 =========================================================================*/ 00039 #ifndef __vtkCocoaRenderWindowInteractor_h 00040 #define __vtkCocoaRenderWindowInteractor_h 00041 00042 #include "vtkRenderWindowInteractor.h" 00043 00044 00045 #ifdef __cplusplus 00046 extern "C" { 00047 #endif 00048 00049 #ifdef __cplusplus 00050 }; 00051 #endif 00052 00053 00054 00055 class VTK_RENDERING_EXPORT vtkCocoaRenderWindowInteractor : public vtkRenderWindowInteractor { 00056 public: 00058 static vtkCocoaRenderWindowInteractor *New(); 00059 00060 vtkTypeRevisionMacro(vtkCocoaRenderWindowInteractor,vtkRenderWindowInteractor); 00061 void PrintSelf(ostream& os, vtkIndent indent); 00062 00064 virtual void Initialize(); 00065 00067 00074 virtual void Enable(); 00075 virtual void Disable(); 00077 00081 virtual void Start(); 00082 00084 00089 vtkSetMacro(InstallMessageProc,int); 00090 vtkGetMacro(InstallMessageProc,int); 00091 vtkBooleanMacro(InstallMessageProc,int); 00093 00098 void TerminateApp(void); 00099 00101 00102 int CreateTimer(int timertype); 00103 int DestroyTimer(void); 00105 00107 00111 static void SetClassExitMethod(void (*f)(void *), void *arg); 00112 static void SetClassExitMethodArgDelete(void (*f)(void *)); 00114 00117 virtual void ExitCallback(); 00118 00119 // int GetButtonDown(); 00120 // void SetButtonDown(int button); 00121 00122 protected: 00123 vtkCocoaRenderWindowInteractor(); 00124 ~vtkCocoaRenderWindowInteractor(); 00125 00126 void *WindowId; 00127 void *ApplicationId; 00128 int TimerId; 00129 void *OldProc; 00130 int InstallMessageProc; 00131 00132 //BTX 00134 /*! Class variables so an exit method can be defined for this class (used 00135 to set different exit methods for various language bindings, i.e. 00136 tcl, java, Cocoa) */ 00137 static void (*ClassExitMethod)(void *); 00138 static void (*ClassExitMethodArgDelete)(void *); 00139 static void *ClassExitMethodArg; 00140 //ETX 00142 00143 private: 00144 vtkCocoaRenderWindowInteractor(const vtkCocoaRenderWindowInteractor&); // Not implemented. 00145 void operator=(const vtkCocoaRenderWindowInteractor&); // Not implemented. 00146 }; 00147 00148 #endif 00149 00150