00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00035 #ifndef __vtkWin32RenderWindowInteractor_h
00036 #define __vtkWin32RenderWindowInteractor_h
00037
00038 #include "vtkRenderWindowInteractor.h"
00039
00040 class VTK_RENDERING_EXPORT vtkWin32RenderWindowInteractor : public vtkRenderWindowInteractor
00041 {
00042 public:
00044 static vtkWin32RenderWindowInteractor *New();
00045
00046 vtkTypeRevisionMacro(vtkWin32RenderWindowInteractor,vtkRenderWindowInteractor);
00047 void PrintSelf(ostream& os, vtkIndent indent);
00048
00050 virtual void Initialize();
00051
00053
00060 virtual void Enable();
00061 virtual void Disable();
00063
00067 virtual void Start();
00068
00070
00075 vtkSetMacro(InstallMessageProc,int);
00076 vtkGetMacro(InstallMessageProc,int);
00077 vtkBooleanMacro(InstallMessageProc,int);
00079
00084 void TerminateApp(void);
00085
00087
00088 int CreateTimer(int timertype);
00089 int DestroyTimer(void);
00091
00092
00093 friend VTK_RENDERING_EXPORT LRESULT CALLBACK vtkHandleMessage(HWND hwnd,UINT uMsg, WPARAM w, LPARAM l);
00094 friend VTK_RENDERING_EXPORT LRESULT CALLBACK vtkHandleMessage2(HWND hwnd,UINT uMsg, WPARAM w, LPARAM l, vtkWin32RenderWindowInteractor *me);
00095
00097
00099 virtual void OnMouseMove (HWND wnd, UINT nFlags, int X, int Y);
00100 virtual void OnNCMouseMove(HWND wnd, UINT nFlags, int X, int Y);
00101 virtual void OnRButtonDown(HWND wnd, UINT nFlags, int X, int Y);
00102 virtual void OnRButtonUp (HWND wnd, UINT nFlags, int X, int Y);
00103 virtual void OnMButtonDown(HWND wnd, UINT nFlags, int X, int Y);
00104 virtual void OnMButtonUp (HWND wnd, UINT nFlags, int X, int Y);
00105 virtual void OnLButtonDown(HWND wnd, UINT nFlags, int X, int Y);
00106 virtual void OnLButtonUp (HWND wnd, UINT nFlags, int X, int Y);
00107 virtual void OnSize (HWND wnd, UINT nType, int X, int Y);
00108 virtual void OnTimer (HWND wnd, UINT nIDEvent);
00109 virtual void OnKeyDown (HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags);
00110 virtual void OnKeyUp (HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags);
00111 virtual void OnChar (HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags);
00112
00114
00116
00120 static void SetClassExitMethod(void (*f)(void *), void *arg);
00121 static void SetClassExitMethodArgDelete(void (*f)(void *));
00123
00126 virtual void ExitCallback();
00127
00128 protected:
00129 vtkWin32RenderWindowInteractor();
00130 ~vtkWin32RenderWindowInteractor();
00131
00132 HWND WindowId;
00133 UINT TimerId;
00134 WNDPROC OldProc;
00135 int InstallMessageProc;
00136
00137 int MouseInWindow;
00138
00139
00141
00144 static void (*ClassExitMethod)(void *);
00145 static void (*ClassExitMethodArgDelete)(void *);
00146 static void *ClassExitMethodArg;
00147
00149
00150 private:
00151 vtkWin32RenderWindowInteractor(const vtkWin32RenderWindowInteractor&);
00152 void operator=(const vtkWin32RenderWindowInteractor&);
00153 };
00154
00155 #endif
00156