Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages
Rendering/vtkXRenderWindowInteractor.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00055 #ifndef __vtkXRenderWindowInteractor_h
00056 #define __vtkXRenderWindowInteractor_h
00057
00058
00059
00060
00061 #include "vtkRenderWindowInteractor.h"
00062 #include <X11/StringDefs.h>
00063 #include <X11/Intrinsic.h>
00064
00065 class vtkCallbackCommand;
00066
00067 class VTK_RENDERING_EXPORT vtkXRenderWindowInteractor : public vtkRenderWindowInteractor
00068 {
00069 public:
00070 static vtkXRenderWindowInteractor *New();
00071 vtkTypeRevisionMacro(vtkXRenderWindowInteractor,vtkRenderWindowInteractor);
00072 void PrintSelf(ostream& os, vtkIndent indent);
00073
00077 virtual void Initialize();
00078
00080 void TerminateApp(void) { exit(0); }
00081
00083
00086 vtkSetMacro(BreakLoopFlag, int);
00087 vtkGetMacro(BreakLoopFlag, int);
00088 vtkBooleanMacro(BreakLoopFlag, int);
00090
00092
00093 int CreateTimer(int timertype);
00094 int DestroyTimer(void);
00096
00098
00100 virtual void Initialize(XtAppContext app);
00101 vtkGetMacro( App, XtAppContext );
00103
00105
00112 virtual void Enable();
00113 virtual void Disable();
00115
00119 virtual void Start();
00120
00122
00136 virtual void SetWidget(Widget);
00137 Widget GetWidget() {return this->Top;};
00139
00141
00165 virtual void SetTopLevelShell(Widget);
00166 Widget GetTopLevelShell() {return this->TopLevelShell;};
00168
00171 virtual void GetMousePosition(int *x, int *y);
00172
00174
00175 friend void vtkXRenderWindowInteractorCallback(Widget,XtPointer,
00176 XEvent *,Boolean *);
00177 friend void vtkXRenderWindowInteractorTimer(XtPointer,XtIntervalId *);
00179
00180 protected:
00181 vtkXRenderWindowInteractor();
00182 ~vtkXRenderWindowInteractor();
00183
00184 Display *DisplayId;
00185 Window WindowId;
00186 Widget Top;
00187 int OwnTop;
00188 XtAppContext App;
00189 int PositionBeforeStereo[2];
00190 Widget TopLevelShell;
00191
00192 int BreakLoopFlag;
00193 XtIntervalId AddTimeOut(XtAppContext app_context, unsigned long interval,
00194 XtTimerCallbackProc proc, XtPointer client_data) ;
00195 void Timer(XtPointer client_data, XtIntervalId *id);
00196 void Callback(Widget w, XtPointer client_data, XEvent *event, Boolean *ctd);
00197
00198 vtkCallbackCommand* BreakXtLoopCallback;
00199 static void BreakXtLoop(vtkObject*, unsigned long, void*, void*);
00200 private:
00201 vtkXRenderWindowInteractor(const vtkXRenderWindowInteractor&);
00202 void operator=(const vtkXRenderWindowInteractor&);
00203 };
00204
00205 #endif
00206
00207
00208