VTK  9.1.0
vtkXRenderWindowInteractor.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkXRenderWindowInteractor.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 =========================================================================*/
32 #ifndef vtkXRenderWindowInteractor_h
33 #define vtkXRenderWindowInteractor_h
34 
35 //===========================================================
36 // now we define the C++ class
37 
39 #include "vtkRenderingUIModule.h" // For export macro
40 #include <X11/Xlib.h> // Needed for X types in the public interface
41 
42 class vtkCallbackCommand;
43 class vtkXRenderWindowInteractorInternals;
44 
45 class VTKRENDERINGUI_EXPORT vtkXRenderWindowInteractor : public vtkRenderWindowInteractor
46 {
47 public:
50  void PrintSelf(ostream& os, vtkIndent indent) override;
51 
57  void Initialize() override;
58 
62  void TerminateApp() override;
63 
69  void ProcessEvents() override;
70 
72 
81  void Enable() override;
82  void Disable() override;
84 
89  void UpdateSize(int, int) override;
90 
94  void GetMousePosition(int* x, int* y) override;
95 
96  void DispatchEvent(XEvent*);
97 
98 protected:
101 
106  void UpdateSizeNoXResize(int, int);
107 
108  // Using static here to avoid destroying context when many apps are open:
109  static int NumAppInitialized;
110 
111  Display* DisplayId;
112  Window WindowId;
113  Atom KillAtom;
114  int PositionBeforeStereo[2];
115  vtkXRenderWindowInteractorInternals* Internal;
116 
117  // Drag and drop related
119  Window XdndSource;
129 
131 
135  int InternalCreateTimer(int timerId, int timerType, unsigned long duration) override;
136  int InternalDestroyTimer(int platformTimerId) override;
138 
139  void FireTimers();
140 
146  void StartEventLoop() override;
147 
148 private:
150  void operator=(const vtkXRenderWindowInteractor&) = delete;
151 };
152 
153 #endif
vtkXRenderWindowInteractor::XdndURIListAtom
Atom XdndURIListAtom
Definition: vtkXRenderWindowInteractor.h:121
vtkXRenderWindowInteractor::StartEventLoop
void StartEventLoop() override
This will start up the X event loop and never return.
vtkXRenderWindowInteractor::ProcessEvents
void ProcessEvents() override
Run the event loop and return.
vtkXRenderWindowInteractor::XdndFinishedAtom
Atom XdndFinishedAtom
Definition: vtkXRenderWindowInteractor.h:128
vtkXRenderWindowInteractor::FireTimers
void FireTimers()
vtkXRenderWindowInteractor::XdndFormatAtom
Atom XdndFormatAtom
Definition: vtkXRenderWindowInteractor.h:120
vtkXRenderWindowInteractor::InternalDestroyTimer
int InternalDestroyTimer(int platformTimerId) override
X-specific internal timer methods.
vtkXRenderWindowInteractor::InternalCreateTimer
int InternalCreateTimer(int timerId, int timerType, unsigned long duration) override
X-specific internal timer methods.
vtkXRenderWindowInteractor::New
static vtkXRenderWindowInteractor * New()
vtkXRenderWindowInteractor::~vtkXRenderWindowInteractor
~vtkXRenderWindowInteractor() override
vtkXRenderWindowInteractor::XdndSourceVersion
int XdndSourceVersion
Definition: vtkXRenderWindowInteractor.h:118
vtkXRenderWindowInteractor::XdndActionCopyAtom
Atom XdndActionCopyAtom
Definition: vtkXRenderWindowInteractor.h:126
vtkXRenderWindowInteractor::XdndStatusAtom
Atom XdndStatusAtom
Definition: vtkXRenderWindowInteractor.h:127
vtkXRenderWindowInteractor
an X event driven interface for a RenderWindow
Definition: vtkXRenderWindowInteractor.h:46
vtkXRenderWindowInteractor::vtkXRenderWindowInteractor
vtkXRenderWindowInteractor()
vtkXRenderWindowInteractor::KillAtom
Atom KillAtom
Definition: vtkXRenderWindowInteractor.h:113
vtkXRenderWindowInteractor::UpdateSize
void UpdateSize(int, int) override
Update the Size data member and set the associated RenderWindow's size.
vtkXRenderWindowInteractor::XdndSource
Window XdndSource
Definition: vtkXRenderWindowInteractor.h:119
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkXRenderWindowInteractor::UpdateSizeNoXResize
void UpdateSizeNoXResize(int, int)
Update the Size data member and set the associated RenderWindow's size but do not resize the XWindow.
vtkXRenderWindowInteractor::DisplayId
Display * DisplayId
Definition: vtkXRenderWindowInteractor.h:111
vtkXRenderWindowInteractor::DispatchEvent
void DispatchEvent(XEvent *)
vtkRenderWindowInteractor
platform-independent render window interaction including picking and frame rate control.
Definition: vtkRenderWindowInteractor.h:192
vtkXRenderWindowInteractor::Disable
void Disable() override
Enable/Disable interactions.
vtkXRenderWindowInteractor::Initialize
void Initialize() override
Initializes the event handlers without an XtAppContext.
vtkXRenderWindowInteractor::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkXRenderWindowInteractor::Enable
void Enable() override
Enable/Disable interactions.
vtkXRenderWindowInteractor::Internal
vtkXRenderWindowInteractorInternals * Internal
Definition: vtkXRenderWindowInteractor.h:115
vtkXRenderWindowInteractor::GetMousePosition
void GetMousePosition(int *x, int *y) override
Re-defines virtual function to get mouse position by querying X-server.
vtkCallbackCommand
supports function callbacks
Definition: vtkCallbackCommand.h:154
vtkXRenderWindowInteractor::XdndDropAtom
Atom XdndDropAtom
Definition: vtkXRenderWindowInteractor.h:125
vtkRenderWindowInteractor.h
vtkXRenderWindowInteractor::NumAppInitialized
static int NumAppInitialized
Definition: vtkXRenderWindowInteractor.h:109
vtkXRenderWindowInteractor::XdndPositionAtom
Atom XdndPositionAtom
Definition: vtkXRenderWindowInteractor.h:124
vtkXRenderWindowInteractor::TerminateApp
void TerminateApp() override
Break the event loop on 'q','e' keypress.
vtkXRenderWindowInteractor::XdndEnterAtom
Atom XdndEnterAtom
Definition: vtkXRenderWindowInteractor.h:123
vtkXRenderWindowInteractor::XdndTypeListAtom
Atom XdndTypeListAtom
Definition: vtkXRenderWindowInteractor.h:122
vtkXRenderWindowInteractor::WindowId
Window WindowId
Definition: vtkXRenderWindowInteractor.h:112