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
00039
00062 #ifndef __vtkXRenderWindowInteractor_h
00063 #define __vtkXRenderWindowInteractor_h
00064
00065
00066
00067
00068 #include "vtkRenderWindowInteractor.h"
00069 #include <X11/StringDefs.h>
00070 #include <X11/Intrinsic.h>
00071
00072 class VTK_EXPORT vtkXRenderWindowInteractor : public vtkRenderWindowInteractor
00073 {
00074 public:
00075 static vtkXRenderWindowInteractor *New();
00076 vtkTypeMacro(vtkXRenderWindowInteractor,vtkRenderWindowInteractor);
00077 void PrintSelf(ostream& os, vtkIndent indent);
00078
00082 virtual void Initialize();
00083
00085 void TerminateApp(void) { exit(0); }
00086
00090 vtkSetMacro(BreakLoopFlag, int);
00091 vtkGetMacro(BreakLoopFlag, int);
00092 vtkBooleanMacro(BreakLoopFlag, int);
00093
00095 int CreateTimer(int timertype);
00096 int DestroyTimer(void);
00097
00100 virtual void Initialize(XtAppContext app);
00101 vtkGetMacro( App, XtAppContext );
00102
00110 virtual void Enable();
00111 virtual void Disable();
00112
00116 virtual void Start();
00117
00132 virtual void SetWidget(Widget);
00133 Widget GetWidget() {return this->top;};
00134
00159 virtual void SetTopLevelShell(Widget);
00160 Widget GetTopLevelShell() {return this->TopLevelShell;};
00161
00164 virtual void GetMousePosition(int *x, int *y);
00165
00167 friend void vtkXRenderWindowInteractorCallback(Widget,XtPointer,
00168 XEvent *,Boolean *);
00169 friend void vtkXRenderWindowInteractorTimer(XtPointer,XtIntervalId *);
00170
00171 protected:
00172 vtkXRenderWindowInteractor();
00173 ~vtkXRenderWindowInteractor();
00174 vtkXRenderWindowInteractor(const vtkXRenderWindowInteractor&) {};
00175 void operator=(const vtkXRenderWindowInteractor&) {};
00176
00177 Display *DisplayId;
00178 Window WindowId;
00179 Widget top;
00180 Widget oldTop;
00181 XtAppContext App;
00182 int PositionBeforeStereo[2];
00183 Widget TopLevelShell;
00184
00185 int BreakLoopFlag;
00186 XtIntervalId AddTimeOut(XtAppContext app_context, unsigned long interval,
00187 XtTimerCallbackProc proc, XtPointer client_data) ;
00188 void Timer(XtPointer client_data, XtIntervalId *id);
00189 void Callback(Widget w, XtPointer client_data, XEvent *event, Boolean *ctd);
00190
00191
00192 };
00193
00194 #endif
00195
00196
00197