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 __vtkWin32RenderWindowInteractor_h
00057 #define __vtkWin32RenderWindowInteractor_h
00058
00059 #include <stdlib.h>
00060 #include "vtkRenderWindowInteractor.h"
00061
00062 class VTK_EXPORT vtkWin32RenderWindowInteractor : public vtkRenderWindowInteractor {
00063 public:
00065 static vtkWin32RenderWindowInteractor *New();
00066
00067 vtkTypeMacro(vtkWin32RenderWindowInteractor,vtkRenderWindowInteractor);
00068 void PrintSelf(ostream& os, vtkIndent indent);
00069
00071 virtual void Initialize();
00072
00080 virtual void Enable();
00081 virtual void Disable();
00082
00086 virtual void Start();
00087
00093 vtkSetMacro(InstallMessageProc,int);
00094 vtkGetMacro(InstallMessageProc,int);
00095 vtkBooleanMacro(InstallMessageProc,int);
00096
00101 void TerminateApp(void);
00102
00104 int CreateTimer(int timertype);
00105 int DestroyTimer(void);
00106
00107
00108 friend VTK_EXPORT LRESULT CALLBACK vtkHandleMessage(HWND hwnd,UINT uMsg, WPARAM w, LPARAM l);
00109 friend VTK_EXPORT LRESULT CALLBACK vtkHandleMessage2(HWND hwnd,UINT uMsg, WPARAM w, LPARAM l, vtkWin32RenderWindowInteractor *me);
00110
00113 virtual void OnMouseMove (HWND wnd, UINT nFlags, int X, int Y);
00114 virtual void OnNCMouseMove(HWND wnd, UINT nFlags, int X, int Y);
00115 virtual void OnRButtonDown(HWND wnd, UINT nFlags, int X, int Y);
00116 virtual void OnRButtonUp (HWND wnd, UINT nFlags, int X, int Y);
00117 virtual void OnMButtonDown(HWND wnd, UINT nFlags, int X, int Y);
00118 virtual void OnMButtonUp (HWND wnd, UINT nFlags, int X, int Y);
00119 virtual void OnLButtonDown(HWND wnd, UINT nFlags, int X, int Y);
00120 virtual void OnLButtonUp (HWND wnd, UINT nFlags, int X, int Y);
00121 virtual void OnSize (HWND wnd, UINT nType, int X, int Y);
00122 virtual void OnTimer (HWND wnd, UINT nIDEvent);
00123 virtual void OnKeyDown (HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags);
00124 virtual void OnKeyUp (HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags);
00125 virtual void OnChar (HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags);
00126
00127
00132 static void SetClassExitMethod(void (*f)(void *), void *arg);
00133 static void SetClassExitMethodArgDelete(void (*f)(void *));
00134
00137 virtual void ExitCallback();
00138
00139 protected:
00140 vtkWin32RenderWindowInteractor();
00141 ~vtkWin32RenderWindowInteractor();
00142 vtkWin32RenderWindowInteractor(const vtkWin32RenderWindowInteractor&) {};
00143 void operator=(const vtkWin32RenderWindowInteractor&) {};
00144
00145 HWND WindowId;
00146 UINT TimerId;
00147 WNDPROC OldProc;
00148 int InstallMessageProc;
00149
00150 int MouseInWindow;
00151
00152
00156 static void (*ClassExitMethod)(void *);
00157 static void (*ClassExitMethodArgDelete)(void *);
00158 static void *ClassExitMethodArg;
00159
00160 };
00161
00162 #endif
00163