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
00062 #ifndef __vtkWin32RenderWindowInteractor_h
00063 #define __vtkWin32RenderWindowInteractor_h
00064
00065 #include <stdlib.h>
00066 #include "vtkRenderWindowInteractor.h"
00067
00068
00069 class VTK_RENDERING_EXPORT vtkWin32RenderWindowInteractor : public vtkRenderWindowInteractor
00070 {
00071 public:
00073 static vtkWin32RenderWindowInteractor *New();
00074
00075 vtkTypeMacro(vtkWin32RenderWindowInteractor,vtkRenderWindowInteractor);
00076 void PrintSelf(ostream& os, vtkIndent indent);
00077
00079 virtual void Initialize();
00080
00082
00089 virtual void Enable();
00090 virtual void Disable();
00092
00096 virtual void Start();
00097
00099
00104 vtkSetMacro(InstallMessageProc,int);
00105 vtkGetMacro(InstallMessageProc,int);
00106 vtkBooleanMacro(InstallMessageProc,int);
00108
00113 void TerminateApp(void);
00114
00116
00117 int CreateTimer(int timertype);
00118 int DestroyTimer(void);
00120
00121
00122 friend VTK_RENDERING_EXPORT LRESULT CALLBACK vtkHandleMessage(HWND hwnd,UINT uMsg, WPARAM w, LPARAM l);
00123 friend VTK_RENDERING_EXPORT LRESULT CALLBACK vtkHandleMessage2(HWND hwnd,UINT uMsg, WPARAM w, LPARAM l, vtkWin32RenderWindowInteractor *me);
00124
00126
00128 virtual void OnMouseMove (HWND wnd, UINT nFlags, int X, int Y);
00129 virtual void OnNCMouseMove(HWND wnd, UINT nFlags, int X, int Y);
00130 virtual void OnRButtonDown(HWND wnd, UINT nFlags, int X, int Y);
00131 virtual void OnRButtonUp (HWND wnd, UINT nFlags, int X, int Y);
00132 virtual void OnMButtonDown(HWND wnd, UINT nFlags, int X, int Y);
00133 virtual void OnMButtonUp (HWND wnd, UINT nFlags, int X, int Y);
00134 virtual void OnLButtonDown(HWND wnd, UINT nFlags, int X, int Y);
00135 virtual void OnLButtonUp (HWND wnd, UINT nFlags, int X, int Y);
00136 virtual void OnSize (HWND wnd, UINT nType, int X, int Y);
00137 virtual void OnTimer (HWND wnd, UINT nIDEvent);
00138 virtual void OnKeyDown (HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags);
00139 virtual void OnKeyUp (HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags);
00140 virtual void OnChar (HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags);
00141
00143
00145
00146 only used if no instance level ExitMethod has been defined. It is
00147 provided as a means to control how an interactor is exited given the
00148 various language bindings (tcl, Win32, etc.). */
00149 static void SetClassExitMethod(void (*f)(void *), void *arg);
00150 static void SetClassExitMethodArgDelete(void (*f)(void *));
00152
00155 virtual void ExitCallback();
00156
00157 protected:
00158 vtkWin32RenderWindowInteractor();
00159 ~vtkWin32RenderWindowInteractor();
00160
00161 HWND WindowId;
00162 UINT TimerId;
00163 WNDPROC OldProc;
00164 int InstallMessageProc;
00165
00166 int MouseInWindow;
00167
00168
00170
00171 to set different exit methods for various language bindings, i.e.
00172 tcl, java, Win32) */
00173 static void (*ClassExitMethod)(void *);
00174 static void (*ClassExitMethodArgDelete)(void *);
00175 static void *ClassExitMethodArg;
00176
00178
00179 private:
00180 vtkWin32RenderWindowInteractor(const vtkWin32RenderWindowInteractor&);
00181 void operator=(const vtkWin32RenderWindowInteractor&);
00182 };
00183
00184 #endif
00185