12 #ifndef ROOT_TVirtualPad
13 #define ROOT_TVirtualPad
46 class TVirtualViewer3D;
47 class TVirtualPadPainter;
49 class TVirtualPad :
public TObject,
public TAttLine,
public TAttFill,
50 public TAttPad,
public TQObject {
55 virtual void *GetSender() {
return this; }
59 TVirtualPad(
const char *name,
const char *title, Double_t xlow,
60 Double_t ylow, Double_t xup, Double_t yup,
61 Color_t color=19, Short_t bordersize=4, Short_t bordermode=1);
62 virtual ~TVirtualPad();
63 virtual void AbsCoordinates(Bool_t set) = 0;
64 virtual Double_t AbsPixeltoX(Int_t px) = 0;
65 virtual Double_t AbsPixeltoY(Int_t py) = 0;
66 virtual void AddExec(
const char *name,
const char *command) = 0;
67 virtual TLegend *BuildLegend(Double_t x1=0.3, Double_t y1=0.21, Double_t x2=0.3, Double_t y2=0.21,
const char *title=
"", Option_t *option =
"") = 0;
68 virtual TVirtualPad* cd(Int_t subpadnumber=0) = 0;
69 virtual void Clear(Option_t *option=
"") = 0;
70 virtual Int_t Clip(Double_t *x, Double_t *y, Double_t xclipl, Double_t yclipb, Double_t xclipr, Double_t yclipt) = 0;
71 virtual void Close(Option_t *option=
"") = 0;
72 virtual void CopyPixmap() = 0;
73 virtual void CopyPixmaps() = 0;
74 virtual void DeleteExec(
const char *name) = 0;
75 virtual void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) = 0;
76 virtual void Draw(Option_t *option=
"") = 0;
77 virtual void DrawClassObject(
const TObject *obj, Option_t *option=
"") = 0;
78 virtual TH1F *DrawFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax,
const char *title=
"") = 0;
79 virtual void ExecuteEventAxis(Int_t event, Int_t px, Int_t py, TAxis *axis) = 0;
80 virtual void UnZoomed() { Emit(
"UnZoomed()"); }
81 virtual Short_t GetBorderMode()
const = 0;
82 virtual Short_t GetBorderSize()
const = 0;
83 virtual Int_t GetCanvasID()
const = 0;
84 virtual TCanvasImp *GetCanvasImp()
const = 0;
85 virtual TCanvas *GetCanvas()
const = 0;
86 virtual TVirtualPad *GetVirtCanvas()
const = 0;
87 virtual Int_t GetEvent()
const = 0;
88 virtual Int_t GetEventX()
const = 0;
89 virtual Int_t GetEventY()
const = 0;
90 virtual TFrame *GetFrame() = 0;
91 virtual Color_t GetHighLightColor()
const = 0;
92 virtual Int_t GetNumber()
const = 0;
93 virtual void GetRange(Double_t &x1, Double_t &y1, Double_t &x2, Double_t &y2) = 0;
94 virtual void GetRangeAxis(Double_t &xmin, Double_t &ymin, Double_t &xmax, Double_t &ymax) = 0;
95 virtual void GetPadPar(Double_t &xlow, Double_t &ylow, Double_t &xup, Double_t &yup) = 0;
96 virtual Double_t GetXlowNDC()
const = 0;
97 virtual Double_t GetYlowNDC()
const = 0;
98 virtual Double_t GetWNDC()
const = 0;
99 virtual Double_t GetHNDC()
const = 0;
100 virtual UInt_t GetWw()
const = 0;
101 virtual UInt_t GetWh()
const = 0;
102 virtual Double_t GetAbsXlowNDC()
const = 0;
103 virtual Double_t GetAbsYlowNDC()
const = 0;
104 virtual Double_t GetAbsWNDC()
const = 0;
105 virtual Double_t GetAbsHNDC()
const = 0;
106 virtual Double_t GetAspectRatio()
const = 0;
107 virtual Double_t GetPhi()
const = 0;
108 virtual Double_t GetTheta()
const = 0;
109 virtual Double_t GetUxmin()
const = 0;
110 virtual Double_t GetUymin()
const = 0;
111 virtual Double_t GetUxmax()
const = 0;
112 virtual Double_t GetUymax()
const = 0;
113 virtual Bool_t GetGridx()
const = 0;
114 virtual Bool_t GetGridy()
const = 0;
115 virtual Int_t GetTickx()
const = 0;
116 virtual Int_t GetTicky()
const = 0;
117 virtual Double_t GetX1()
const = 0;
118 virtual Double_t GetX2()
const = 0;
119 virtual Double_t GetY1()
const = 0;
120 virtual Double_t GetY2()
const = 0;
121 virtual TList *GetListOfPrimitives()
const = 0;
122 virtual TList *GetListOfExecs()
const = 0;
123 virtual TObject *GetPrimitive(
const char *name)
const = 0;
124 virtual TObject *GetSelected()
const = 0;
125 virtual TVirtualPad *GetPad(Int_t subpadnumber)
const = 0;
126 virtual TObject *GetPadPointer()
const = 0;
127 virtual TVirtualPad *GetPadSave()
const = 0;
128 virtual TVirtualPad *GetSelectedPad()
const = 0;
129 virtual TView *GetView()
const = 0;
130 virtual Int_t GetLogx()
const = 0;
131 virtual Int_t GetLogy()
const = 0;
132 virtual Int_t GetLogz()
const = 0;
133 virtual TVirtualPad *GetMother()
const = 0;
134 virtual const char *GetName()
const = 0;
135 virtual const char *GetTitle()
const = 0;
136 virtual Int_t GetPadPaint()
const = 0;
137 virtual Int_t GetPixmapID()
const = 0;
138 virtual TObject *GetView3D()
const = 0;
139 virtual Bool_t HasCrosshair()
const = 0;
140 virtual void HighLight(Color_t col=kRed, Bool_t set=kTRUE) = 0;
141 virtual Bool_t HasFixedAspectRatio()
const = 0;
142 virtual Bool_t IsBatch()
const = 0;
143 Bool_t IsBeingResized()
const {
return fResizing; }
144 virtual Bool_t IsEditable()
const = 0;
145 virtual Bool_t IsModified()
const = 0;
146 virtual Bool_t IsRetained()
const = 0;
147 virtual Bool_t IsVertical()
const = 0;
148 virtual void ls(Option_t *option=
"")
const = 0;
149 virtual void Modified(Bool_t flag=1) = 0;
150 virtual Bool_t OpaqueMoving()
const = 0;
151 virtual Bool_t OpaqueResizing()
const = 0;
152 virtual Double_t PadtoX(Double_t x)
const = 0;
153 virtual Double_t PadtoY(Double_t y)
const = 0;
154 virtual void Paint(Option_t *option=
"") = 0;
155 virtual void PaintBorderPS(Double_t xl,Double_t yl,Double_t xt,Double_t yt,Int_t bmode,Int_t bsize,Int_t dark,Int_t light) = 0;
156 virtual void PaintBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Option_t *option=
"") = 0;
157 virtual void PaintFillArea(Int_t n, Float_t *x, Float_t *y, Option_t *option=
"") = 0;
158 virtual void PaintFillArea(Int_t n, Double_t *x, Double_t *y, Option_t *option=
"") = 0;
159 virtual void PaintFillAreaNDC(Int_t n, Double_t *x, Double_t *y, Option_t *option=
"") = 0;
160 virtual void PaintPadFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax) = 0;
161 virtual void PaintLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2) = 0;
162 virtual void PaintLineNDC(Double_t u1, Double_t v1,Double_t u2, Double_t v2) = 0;
163 virtual void PaintLine3D(Float_t *p1, Float_t *p2) = 0;
164 virtual void PaintLine3D(Double_t *p1, Double_t *p2) = 0;
165 virtual void PaintPolyLine(Int_t n, Float_t *x, Float_t *y, Option_t *option=
"") = 0;
166 virtual void PaintPolyLine(Int_t n, Double_t *x, Double_t *y, Option_t *option=
"") = 0;
167 virtual void PaintPolyLine3D(Int_t n, Double_t *p) = 0;
168 virtual void PaintPolyLineNDC(Int_t n, Double_t *x, Double_t *y, Option_t *option=
"") = 0;
169 virtual void PaintPolyMarker(Int_t n, Float_t *x, Float_t *y, Option_t *option=
"") = 0;
170 virtual void PaintPolyMarker(Int_t n, Double_t *x, Double_t *y, Option_t *option=
"") = 0;
171 virtual void PaintModified() = 0;
172 virtual void PaintText(Double_t x, Double_t y,
const char *text) = 0;
173 virtual void PaintText(Double_t x, Double_t y,
const wchar_t *text) = 0;
174 virtual void PaintTextNDC(Double_t u, Double_t v,
const char *text) = 0;
175 virtual void PaintTextNDC(Double_t u, Double_t v,
const wchar_t *text) = 0;
176 virtual Double_t PixeltoX(Int_t px) = 0;
177 virtual Double_t PixeltoY(Int_t py) = 0;
178 virtual void Pop() = 0;
179 virtual void Print(
const char *filename=
"")
const = 0;
180 virtual void Print(
const char *filename, Option_t *option) = 0;
181 virtual void Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2) = 0;
182 virtual void RangeAxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax) = 0;
183 virtual void RecursiveRemove(TObject *obj) = 0;
184 virtual void RedrawAxis(Option_t *option=
"") = 0;
185 virtual void ResetView3D(TObject *view=0) = 0;
186 virtual void ResizePad(Option_t *option=
"") = 0;
187 virtual void SaveAs(
const char *filename=
"",Option_t *option=
"")
const = 0;
188 virtual void SetBatch(Bool_t batch=kTRUE) = 0;
189 virtual void SetBorderMode(Short_t bordermode) = 0;
190 virtual void SetBorderSize(Short_t bordersize) = 0;
191 virtual void SetCanvas(TCanvas *c) = 0;
192 virtual void SetCanvasSize(UInt_t ww, UInt_t wh) = 0;
193 virtual void SetCrosshair(Int_t crhair=1) = 0;
194 virtual void SetCursor(ECursor cursor) = 0;
195 virtual void SetDoubleBuffer(Int_t mode=1) = 0;
196 virtual void SetEditable(Bool_t mode=kTRUE) = 0;
197 virtual void SetFixedAspectRatio(Bool_t fixed = kTRUE) = 0;
198 virtual void SetGrid(Int_t valuex = 1, Int_t valuey = 1) = 0;
199 virtual void SetGridx(Int_t value = 1) = 0;
200 virtual void SetGridy(Int_t value = 1) = 0;
201 virtual void SetLogx(Int_t value = 1) = 0;
202 virtual void SetLogy(Int_t value = 1) = 0;
203 virtual void SetLogz(Int_t value = 1) = 0;
204 virtual void SetPad(
const char *name,
const char *title,
205 Double_t xlow, Double_t ylow, Double_t xup,
206 Double_t yup, Color_t color=35,
207 Short_t bordersize=5, Short_t bordermode=-1) = 0;
208 virtual void SetPad(Double_t xlow, Double_t ylow, Double_t xup, Double_t yup) = 0;
209 virtual void SetAttFillPS(Color_t color, Style_t style) = 0;
210 virtual void SetAttLinePS(Color_t color, Style_t style, Width_t lwidth) = 0;
211 virtual void SetAttMarkerPS(Color_t color, Style_t style, Size_t msize) = 0;
212 virtual void SetAttTextPS(Int_t align, Float_t angle, Color_t color, Style_t font, Float_t tsize) = 0;
213 virtual void SetName(
const char *name) = 0;
214 virtual void SetSelected(TObject *obj) = 0;
215 virtual void SetTicks(Int_t valuex = 1, Int_t valuey = 1) = 0;
216 virtual void SetTickx(Int_t value = 1) = 0;
217 virtual void SetTicky(Int_t value = 1) = 0;
218 virtual void SetTitle(
const char *title=
"") = 0;
219 virtual void SetTheta(Double_t theta=30) = 0;
220 virtual void SetPhi(Double_t phi=30) = 0;
221 virtual void SetToolTipText(
const char *text, Long_t delayms = 1000) = 0;
222 virtual void SetVertical(Bool_t vert=kTRUE) = 0;
223 virtual void SetView(TView *view=0) = 0;
224 virtual void SetViewer3D(TVirtualViewer3D * ) {}
225 virtual void ShowGuidelines(TObject *
object,
const Int_t event,
const char mode =
'i',
const bool cling =
true) = 0;
226 virtual TObject *WaitPrimitive(
const char *pname=
"",
const char *emode=
"") = 0;
227 virtual void Update() = 0;
228 virtual Int_t UtoAbsPixel(Double_t u)
const = 0;
229 virtual Int_t VtoAbsPixel(Double_t v)
const = 0;
230 virtual Int_t UtoPixel(Double_t u)
const = 0;
231 virtual Int_t VtoPixel(Double_t v)
const = 0;
232 virtual Int_t XtoAbsPixel(Double_t x)
const = 0;
233 virtual Int_t YtoAbsPixel(Double_t y)
const = 0;
234 virtual Double_t XtoPad(Double_t x)
const = 0;
235 virtual Double_t YtoPad(Double_t y)
const = 0;
236 virtual Int_t XtoPixel(Double_t x)
const = 0;
237 virtual Int_t YtoPixel(Double_t y)
const = 0;
239 virtual Int_t IncrementPaletteColor(Int_t i, TString opt) = 0;
240 virtual Int_t NextPaletteColor() = 0;
242 virtual Bool_t PlaceBox(TObject *o, Double_t w, Double_t h, Double_t &xl, Double_t &yb) = 0;
244 virtual TObject *CreateToolTip(
const TBox *b,
const char *text, Long_t delayms) = 0;
245 virtual void DeleteToolTip(TObject *tip) = 0;
246 virtual void ResetToolTip(TObject *tip) = 0;
247 virtual void CloseToolTip(TObject *tip) = 0;
249 virtual TVirtualViewer3D *GetViewer3D(Option_t * type =
"") = 0;
250 virtual Bool_t HasViewer3D()
const = 0;
251 virtual void ReleaseViewer3D(Option_t * type =
"") = 0;
253 virtual Int_t GetGLDevice() = 0;
254 virtual void SetCopyGLDevice(Bool_t copy) = 0;
255 virtual TVirtualPadPainter *GetPainter() = 0;
257 virtual Bool_t PadInSelectionMode()
const;
258 virtual Bool_t PadInHighlightMode()
const;
260 virtual void PushTopLevelSelectable(TObject *top);
261 virtual void PushSelectableObject(TObject *obj);
262 virtual void PopTopLevelSelectable();
264 static TVirtualPad *&Pad();
266 ClassDef(TVirtualPad,3)
274 class TPickerStackGuard {
276 TPickerStackGuard(TObject *obj);
277 ~TPickerStackGuard();
280 TPickerStackGuard(
const TPickerStackGuard &rhs);
281 TPickerStackGuard &operator = (
const TPickerStackGuard &rhs);
286 #define gPad (TVirtualPad::Pad())
288 R__EXTERN Int_t (*gThreadXAR)(
const char *xact, Int_t nb,
void **ar, Int_t *iret);