00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkCocoaRenderWindowInteractor.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 =========================================================================*/ 00028 #ifndef __vtkCocoaRenderWindowInteractor_h 00029 #define __vtkCocoaRenderWindowInteractor_h 00030 00031 #include "vtkRenderWindowInteractor.h" 00032 00033 00034 class VTK_RENDERING_EXPORT vtkCocoaRenderWindowInteractor : public vtkRenderWindowInteractor 00035 { 00036 public: 00038 static vtkCocoaRenderWindowInteractor *New(); 00039 00040 vtkTypeRevisionMacro(vtkCocoaRenderWindowInteractor,vtkRenderWindowInteractor); 00041 void PrintSelf(ostream& os, vtkIndent indent); 00042 00044 virtual void Initialize(); 00045 00047 00054 virtual void Enable(); 00055 virtual void Disable(); 00057 00061 virtual void Start(); 00062 00064 00069 vtkSetMacro(InstallMessageProc,int); 00070 vtkGetMacro(InstallMessageProc,int); 00071 vtkBooleanMacro(InstallMessageProc,int); 00073 00078 void TerminateApp(); 00079 00081 00082 int CreateTimer(int timertype); 00083 int DestroyTimer(); 00085 00087 00091 static void SetClassExitMethod(void (*f)(void *), void *arg); 00092 static void SetClassExitMethodArgDelete(void (*f)(void *)); 00094 00097 virtual void ExitCallback(); 00098 00099 // int GetButtonDown(); 00100 // void SetButtonDown(int button); 00101 00102 protected: 00103 vtkCocoaRenderWindowInteractor(); 00104 ~vtkCocoaRenderWindowInteractor(); 00105 00106 int InstallMessageProc; 00107 void* Timer; // really a vtkCocoaTimer* 00108 00109 //BTX 00111 00114 static void (*ClassExitMethod)(void *); 00115 static void (*ClassExitMethodArgDelete)(void *); 00116 static void *ClassExitMethodArg; 00117 //ETX 00119 00120 private: 00121 vtkCocoaRenderWindowInteractor(const vtkCocoaRenderWindowInteractor&); // Not implemented. 00122 void operator=(const vtkCocoaRenderWindowInteractor&); // Not implemented. 00123 }; 00124 00125 #endif