00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00056 #ifndef __vtkQuartzRenderWindowInteractor_h
00057 #define __vtkQuartzRenderWindowInteractor_h
00058
00059 #include <stdlib.h>
00060 #include "vtkRenderWindowInteractor.h"
00061
00062
00063 #ifdef __cplusplus
00064 extern "C" {
00065 #endif
00066
00067
00068
00069
00070
00071
00072
00073
00074 #ifdef __cplusplus
00075 };
00076 #endif
00077
00078
00079
00080 class VTK_RENDERING_EXPORT vtkQuartzRenderWindowInteractor : public vtkRenderWindowInteractor {
00081 public:
00083 static vtkQuartzRenderWindowInteractor *New();
00084
00085 vtkTypeMacro(vtkQuartzRenderWindowInteractor,vtkRenderWindowInteractor);
00086 void PrintSelf(ostream& os, vtkIndent indent);
00087
00089 virtual void Initialize();
00090
00092
00099 virtual void Enable();
00100 virtual void Disable();
00102
00106 virtual void Start();
00107
00109
00114 vtkSetMacro(InstallMessageProc,int);
00115 vtkGetMacro(InstallMessageProc,int);
00116 vtkBooleanMacro(InstallMessageProc,int);
00118
00123 void TerminateApp(void);
00124
00126
00127 int CreateTimer(int timertype);
00128 int DestroyTimer(void);
00130
00131
00133
00134 handled. virtual void OnMouseMove (void *wnd, int nFlags, int X, int
00135 Y); */
00136 virtual void OnRButtonDown(void *wnd, int nFlags, int X, int Y);
00137 virtual void OnRButtonUp (void *wnd, int nFlags, int X, int Y);
00138 virtual void OnMButtonDown(void *wnd, int nFlags, int X, int Y);
00139 virtual void OnMButtonUp (void *wnd, int nFlags, int X, int Y);
00140 virtual void OnLButtonDown(void *wnd, int nFlags, int X, int Y);
00141 virtual void OnLButtonUp (void *wnd, int nFlags, int X, int Y);
00142 virtual void OnSize (void *wnd, int nType, int X, int Y);
00143 virtual void OnTimer (void *wnd, int nIDEvent);
00144 virtual void OnChar (void *wnd, int nChar, int nRepCnt, int nFlags);
00145
00147
00149
00150 only used if no instance level ExitMethod has been defined. It is
00151 provided as a means to control how an interactor is exited given the
00152 various language bindings (tcl, Quartz, etc.). */
00153 static void SetClassExitMethod(void (*f)(void *), void *arg);
00154 static void SetClassExitMethodArgDelete(void (*f)(void *));
00156
00159 virtual void ExitCallback();
00160
00161 int GetButtonDown();
00162 void SetButtonDown(int button);
00163
00164 protected:
00165 vtkQuartzRenderWindowInteractor();
00166 ~vtkQuartzRenderWindowInteractor();
00167
00168 void *WindowId;
00169 void *ApplicationId;
00170 int TimerId;
00171 void *OldProc;
00172 int InstallMessageProc;
00173 int whichButtonDown;
00174
00175
00177
00178 to set different exit methods for various language bindings, i.e.
00179 tcl, java, Quartz) */
00180 static void (*ClassExitMethod)(void *);
00181 static void (*ClassExitMethodArgDelete)(void *);
00182 static void *ClassExitMethodArg;
00183
00185
00186 private:
00187 vtkQuartzRenderWindowInteractor(const vtkQuartzRenderWindowInteractor&);
00188 void operator=(const vtkQuartzRenderWindowInteractor&);
00189 };
00190
00191 #endif
00192
00193