Rendering/vtkXRenderWindowInteractor.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00038 #ifndef __vtkXRenderWindowInteractor_h
00039 #define __vtkXRenderWindowInteractor_h
00040
00041
00042
00043
00044 #include "vtkRenderWindowInteractor.h"
00045 #include <X11/StringDefs.h>
00046 #include <X11/Intrinsic.h>
00047
00048 class vtkCallbackCommand;
00049
00050
00051
00052 void vtkXRenderWindowInteractorCallback(Widget,XtPointer, XEvent *,Boolean *);
00053 void vtkXRenderWindowInteractorTimer(XtPointer,XtIntervalId *);
00054
00055
00056 class VTK_RENDERING_EXPORT vtkXRenderWindowInteractor : public vtkRenderWindowInteractor
00057 {
00058 public:
00059 static vtkXRenderWindowInteractor *New();
00060 vtkTypeRevisionMacro(vtkXRenderWindowInteractor,vtkRenderWindowInteractor);
00061 void PrintSelf(ostream& os, vtkIndent indent);
00062
00066 virtual void Initialize();
00067
00069 void TerminateApp(void) { exit(0); }
00070
00072
00075 vtkSetMacro(BreakLoopFlag, int);
00076 vtkGetMacro(BreakLoopFlag, int);
00077 vtkBooleanMacro(BreakLoopFlag, int);
00079
00081
00082 int CreateTimer(int timertype);
00083 int DestroyTimer(void);
00085
00087
00089 virtual void Initialize(XtAppContext app);
00090 vtkGetMacro( App, XtAppContext );
00092
00094
00101 virtual void Enable();
00102 virtual void Disable();
00104
00108 virtual void Start();
00109
00111
00125 virtual void SetWidget(Widget);
00126 Widget GetWidget() {return this->Top;};
00128
00130
00154 virtual void SetTopLevelShell(Widget);
00155 Widget GetTopLevelShell() {return this->TopLevelShell;};
00157
00160 virtual void GetMousePosition(int *x, int *y);
00161
00163
00164 friend void vtkXRenderWindowInteractorCallback(Widget,XtPointer,
00165 XEvent *,Boolean *);
00166 friend void vtkXRenderWindowInteractorTimer(XtPointer,XtIntervalId *);
00168
00169 protected:
00170 vtkXRenderWindowInteractor();
00171 ~vtkXRenderWindowInteractor();
00172
00173 Display *DisplayId;
00174 Window WindowId;
00175 Widget Top;
00176 int OwnTop;
00177 XtAppContext App;
00178 int PositionBeforeStereo[2];
00179 Widget TopLevelShell;
00180
00181 int BreakLoopFlag;
00182 XtIntervalId AddTimeOut(XtAppContext app_context, unsigned long interval,
00183 XtTimerCallbackProc proc, XtPointer client_data) ;
00184 void Timer(XtPointer client_data, XtIntervalId *id);
00185 void Callback(Widget w, XtPointer client_data, XEvent *event, Boolean *ctd);
00186
00187 vtkCallbackCommand* BreakXtLoopCallback;
00188 static void BreakXtLoop(vtkObject*, unsigned long, void*, void*);
00189 private:
00190 vtkXRenderWindowInteractor(const vtkXRenderWindowInteractor&);
00191 void operator=(const vtkXRenderWindowInteractor&);
00192 };
00193
00194 #endif
00195
00196
00197