VTK
vtkWin32RenderWindowInteractor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkWin32RenderWindowInteractor.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
30 #ifndef vtkWin32RenderWindowInteractor_h
31 #define vtkWin32RenderWindowInteractor_h
32 
33 #include "vtkRenderingOpenGL2Module.h" // For export macro
35 #include "vtkWindows.h" // For windows API.
36 
37 #include "vtkTDxConfigure.h" // defines VTK_USE_TDX
38 #ifdef VTK_USE_TDX
39 class vtkTDxWinDevice;
40 #endif
41 
42 class VTKRENDERINGOPENGL2_EXPORT vtkWin32RenderWindowInteractor : public vtkRenderWindowInteractor
43 {
44 public:
49 
51  void PrintSelf(ostream& os, vtkIndent indent);
52 
56  virtual void Initialize();
57 
59 
68  virtual void Enable();
69  virtual void Disable();
71 
73 
79  vtkSetMacro(InstallMessageProc,int);
80  vtkGetMacro(InstallMessageProc,int);
81  vtkBooleanMacro(InstallMessageProc,int);
83 
89  void TerminateApp(void);
90 
91  friend VTKRENDERINGOPENGL2_EXPORT LRESULT CALLBACK vtkHandleMessage(HWND hwnd,UINT uMsg, WPARAM w, LPARAM l);
92  friend VTKRENDERINGOPENGL2_EXPORT LRESULT CALLBACK vtkHandleMessage2(HWND hwnd,UINT uMsg, WPARAM w, LPARAM l, vtkWin32RenderWindowInteractor *me);
93 
95 
99  virtual int OnMouseMove(HWND wnd, UINT nFlags, int X, int Y);
100  virtual int OnNCMouseMove(HWND wnd, UINT nFlags, int X, int Y);
101  virtual int OnRButtonDown(HWND wnd, UINT nFlags, int X, int Y, int repeat = 0);
102  virtual int OnRButtonUp(HWND wnd, UINT nFlags, int X, int Y);
103  virtual int OnMButtonDown(HWND wnd, UINT nFlags, int X, int Y, int repeat = 0);
104  virtual int OnMButtonUp(HWND wnd, UINT nFlags, int X, int Y);
105  virtual int OnLButtonDown(HWND wnd, UINT nFlags, int X, int Y, int repeat = 0);
106  virtual int OnLButtonUp(HWND wnd, UINT nFlags, int X, int Y);
107  virtual int OnSize(HWND wnd, UINT nType, int X, int Y);
108  virtual int OnTimer(HWND wnd, UINT nIDEvent);
109  virtual int OnKeyDown(HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags);
110  virtual int OnKeyUp(HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags);
111  virtual int OnChar(HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags);
112  virtual int OnMouseWheelForward(HWND wnd, UINT nFlags, int X, int Y);
113  virtual int OnMouseWheelBackward(HWND wnd, UINT nFlags, int X, int Y);
114  virtual int OnFocus(HWND wnd, UINT nFlags);
115  virtual int OnKillFocus(HWND wnd, UINT nFlags);
116  virtual int OnTouch(HWND wnd, UINT wParam, UINT lParam);
118 
120 
126  static void SetClassExitMethod(void (*f)(void *), void *arg);
127  static void SetClassExitMethodArgDelete(void (*f)(void *));
129 
134  virtual void ExitCallback();
135 
136 protected:
139 
140  HWND WindowId;
141  WNDPROC OldProc;
142  int InstallMessageProc;
143  int MouseInWindow;
144  int StartedMessageLoop;
145 
147 
152  static void (*ClassExitMethod)(void *);
153  static void (*ClassExitMethodArgDelete)(void *);
154  static void *ClassExitMethodArg;
156 
158 
162  virtual int InternalCreateTimer(int timerId, int timerType, unsigned long duration);
163  virtual int InternalDestroyTimer(int platformTimerId);
165 
171  virtual void StartEventLoop();
172 
173 #ifdef VTK_USE_TDX
174  vtkTDxWinDevice *Device;
175 #endif
176 
177 private:
179  void operator=(const vtkWin32RenderWindowInteractor&) VTK_DELETE_FUNCTION;
180 };
181 
182 #endif
a simple class to control print indentation
Definition: vtkIndent.h:40
platform-independent render window interaction including picking and frame rate control.
Implementation of vtkTDxDevice on Windows.
implements Win32 specific functions required by vtkRenderWindowInteractor.
void TerminateApp(void)
Win32 specific application terminate, calls ClassExitMethod then calls PostQuitMessage(0) to terminat...
virtual int OnKillFocus(HWND wnd, UINT nFlags)
virtual int OnMouseWheelForward(HWND wnd, UINT nFlags, int X, int Y)
virtual void ExitCallback()
These methods correspond to the the Exit, User and Pick callbacks.
virtual int OnChar(HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags)
virtual int OnMButtonDown(HWND wnd, UINT nFlags, int X, int Y, int repeat=0)
virtual int OnRButtonUp(HWND wnd, UINT nFlags, int X, int Y)
virtual int OnTouch(HWND wnd, UINT wParam, UINT lParam)
virtual int OnMouseMove(HWND wnd, UINT nFlags, int X, int Y)
Various methods that a Win32 window can redirect to this class to be handled.
virtual int InternalDestroyTimer(int platformTimerId)
friend VTKRENDERINGOPENGL2_EXPORT LRESULT CALLBACK vtkHandleMessage2(HWND hwnd, UINT uMsg, WPARAM w, LPARAM l, vtkWin32RenderWindowInteractor *me)
static void SetClassExitMethodArgDelete(void(*f)(void *))
virtual int OnTimer(HWND wnd, UINT nIDEvent)
virtual void StartEventLoop()
This will start up the event loop and never return.
virtual int OnRButtonDown(HWND wnd, UINT nFlags, int X, int Y, int repeat=0)
virtual int OnFocus(HWND wnd, UINT nFlags)
virtual int OnKeyDown(HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags)
virtual int InternalCreateTimer(int timerId, int timerType, unsigned long duration)
Win32-specific internal timer methods.
friend VTKRENDERINGOPENGL2_EXPORT LRESULT CALLBACK vtkHandleMessage(HWND hwnd, UINT uMsg, WPARAM w, LPARAM l)
virtual void Initialize()
Initialize the event handler.
virtual int OnKeyUp(HWND wnd, UINT nChar, UINT nRepCnt, UINT nFlags)
static void SetClassExitMethod(void(*f)(void *), void *arg)
Methods to set the default exit method for the class.
virtual int OnMouseWheelBackward(HWND wnd, UINT nFlags, int X, int Y)
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
static vtkWin32RenderWindowInteractor * New()
Construct object so that light follows camera motion.
virtual int OnLButtonDown(HWND wnd, UINT nFlags, int X, int Y, int repeat=0)
virtual int OnMButtonUp(HWND wnd, UINT nFlags, int X, int Y)
virtual int OnSize(HWND wnd, UINT nType, int X, int Y)
virtual void Enable()
Enable/Disable interactions.
virtual int OnLButtonUp(HWND wnd, UINT nFlags, int X, int Y)
virtual int OnNCMouseMove(HWND wnd, UINT nFlags, int X, int Y)
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.