Logo ROOT  
Reference Guide
TPad.h
Go to the documentation of this file.
1// @(#)root/gpad:$Id$
2// Author: Rene Brun 12/12/94
3
4/*************************************************************************
5 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TPad
13#define ROOT_TPad
14
15#include "TVirtualPad.h"
16#include "TAttBBox2D.h"
17#include <vector>
18
21class TBrowser;
22class TBox;
23class TLegend;
24class TArrow;
25class TPoint;
26
27class TPad : public TVirtualPad, public TAttBBox2D {
28
29private:
30 TObject *fTip; ///<! tool tip associated with box
31
32protected:
33 Double_t fX1; ///< X of lower X coordinate
34 Double_t fY1; ///< Y of lower Y coordinate
35 Double_t fX2; ///< X of upper X coordinate
36 Double_t fY2; ///< Y of upper Y coordinate
37
38 Double_t fXtoAbsPixelk; ///< Conversion coefficient for X World to absolute pixel
39 Double_t fXtoPixelk; ///< Conversion coefficient for X World to pixel
40 Double_t fXtoPixel; ///< xpixel = fXtoPixelk + fXtoPixel*xworld
41 Double_t fYtoAbsPixelk; ///< Conversion coefficient for Y World to absolute pixel
42 Double_t fYtoPixelk; ///< Conversion coefficient for Y World to pixel
43 Double_t fYtoPixel; ///< ypixel = fYtoPixelk + fYtoPixel*yworld
44
45 Double_t fUtoAbsPixelk; ///< Conversion coefficient for U NDC to absolute pixel
46 Double_t fUtoPixelk; ///< Conversion coefficient for U NDC to pixel
47 Double_t fUtoPixel; ///< xpixel = fUtoPixelk + fUtoPixel*undc
48 Double_t fVtoAbsPixelk; ///< Conversion coefficient for V NDC to absolute pixel
49 Double_t fVtoPixelk; ///< Conversion coefficient for V NDC to pixel
50 Double_t fVtoPixel; ///< ypixel = fVtoPixelk + fVtoPixel*vndc
51
52 Double_t fAbsPixeltoXk; ///< Conversion coefficient for absolute pixel to X World
53 Double_t fPixeltoXk; ///< Conversion coefficient for pixel to X World
54 Double_t fPixeltoX; ///< xworld = fPixeltoXk + fPixeltoX*xpixel
55 Double_t fAbsPixeltoYk; ///< Conversion coefficient for absolute pixel to Y World
56 Double_t fPixeltoYk; ///< Conversion coefficient for pixel to Y World
57 Double_t fPixeltoY; ///< yworld = fPixeltoYk + fPixeltoY*ypixel
58
59 Double_t fXlowNDC; ///< X bottom left corner of pad in NDC [0,1]
60 Double_t fYlowNDC; ///< Y bottom left corner of pad in NDC [0,1]
63 Double_t fWNDC; ///< Width of pad along X in Normalized Coordinates (NDC)
64 Double_t fHNDC; ///< Height of pad along Y in Normalized Coordinates (NDC)
65
66 Double_t fAbsXlowNDC; ///< Absolute X top left corner of pad in NDC [0,1]
67 Double_t fAbsYlowNDC; ///< Absolute Y top left corner of pad in NDC [0,1]
68 Double_t fAbsWNDC; ///< Absolute Width of pad along X in NDC
69 Double_t fAbsHNDC; ///< Absolute Height of pad along Y in NDC
70
71 Double_t fUxmin; ///< Minimum value on the X axis
72 Double_t fUymin; ///< Minimum value on the Y axis
73 Double_t fUxmax; ///< Maximum value on the X axis
74 Double_t fUymax; ///< Maximum value on the Y axis
75
76 Double_t fTheta; ///< theta angle to view as lego/surface
77 Double_t fPhi; ///< phi angle to view as lego/surface
78
79 Double_t fAspectRatio; ///< ratio of w/h in case of fixed ratio
80
81 Int_t fPixmapID; ///<! Off-screen pixmap identifier
82 Int_t fGLDevice; ///<! OpenGL off-screen pixmap identifier
85 Int_t fNumber; ///< pad number identifier
86 Int_t fTickx; ///< Set to 1 if tick marks along X
87 Int_t fTicky; ///< Set to 1 if tick marks along Y
88 Int_t fLogx; ///< (=0 if X linear scale, =1 if log scale)
89 Int_t fLogy; ///< (=0 if Y linear scale, =1 if log scale)
90 Int_t fLogz; ///< (=0 if Z linear scale, =1 if log scale)
91 Int_t fPadPaint; ///< Set to 1 while painting the pad
92 Int_t fCrosshair; ///< Crosshair type (0 if no crosshair requested)
93 Int_t fCrosshairPos; ///< Position of crosshair
94 Short_t fBorderSize; ///< pad bordersize in pixels
95 Short_t fBorderMode; ///< Bordermode (-1=down, 0 = no border, 1=up)
96 Bool_t fModified; ///< Set to true when pad is modified
97 Bool_t fGridx; ///< Set to true if grid along X
98 Bool_t fGridy; ///< Set to true if grid along Y
99 Bool_t fAbsCoord; ///< Use absolute coordinates
100 Bool_t fEditable; ///< True if canvas is editable
101 Bool_t fFixedAspectRatio; ///< True if fixed aspect ratio
102 TPad *fMother; ///<! pointer to mother of the list
103 TCanvas *fCanvas; ///<! Pointer to mother canvas
104 TList *fPrimitives; ///<->List of primitives (subpads)
105 TList *fExecs; ///< List of commands to be executed when a pad event occurs
106 TString fName; ///< Pad name
107 TString fTitle; ///< Pad title
108 TFrame *fFrame; ///<! Pointer to 2-D frame (if one exists)
109 TView *fView; ///<! Pointer to 3-D view (if one exists)
110 TObject *fPadPointer; ///<! free pointer
111 TObject *fPadView3D; ///<! 3D View of this TPad
112 static Int_t fgMaxPickDistance; ///< Maximum Pick Distance
113 Int_t fNumPaletteColor; ///< Number of objects with an automatic color
114 Int_t fNextPaletteColor; ///< Next automatic color
115 std::vector<Bool_t> fCollideGrid;///<! Grid used to find empty space when adding a box (Legend) in a pad
116 Int_t fCGnx; ///<! Size of the collide grid along x
117 Int_t fCGny; ///<! Size of the collide grid along y
118
119 // 3D Viewer support
120 TVirtualViewer3D *fViewer3D; ///<! Current 3D viewer
121
123 Int_t DistancetoPrimitive(Int_t px, Int_t py) override;
124 void ExecuteEvent(Int_t event, Int_t px, Int_t py) override;
125 virtual void HideToolTip(Int_t event);
126 void PaintBorder(Color_t color, Bool_t tops);
127 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) override;
128 void PaintDate();
129 void SavePrimitive(std::ostream &out, Option_t *option = "") override;
130 void SetBatch(Bool_t batch=kTRUE) override;
131
132private:
133 TPad(const TPad &pad) = delete;
134 TPad &operator=(const TPad &rhs) = delete;
135
137 void CopyBackgroundPixmaps(TPad *start, TPad *stop, Int_t x, Int_t y);
138 void DrawDist(Rectangle_t aBBox, Rectangle_t bBBox, char mode);
139
141 void FillCollideGrid(TObject *o);
147
148public:
149 // TPad status bits
150 enum {
151 kFraming = BIT(6), ///< Frame is requested
152 kHori = BIT(9), ///< Pad is horizontal
153 kClipFrame = BIT(10), ///< Clip on frame
154 kPrintingPS = BIT(11), ///< PS Printing
155 kCannotMove = BIT(12), ///< Fixed position
156 kClearAfterCR = BIT(14) ///< Clear after CR
157 };
158
159 TPad();
160 TPad(const char *name, const char *title, Double_t xlow,
161 Double_t ylow, Double_t xup, Double_t yup,
162 Color_t color=-1, Short_t bordersize=-1, Short_t bordermode=-2);
163 virtual ~TPad();
164 void AbsCoordinates(Bool_t set) override { fAbsCoord = set; }
165 Double_t AbsPixeltoX(Int_t px) override { return fAbsPixeltoXk + px*fPixeltoX; }
166 Double_t AbsPixeltoY(Int_t py) override { return fAbsPixeltoYk + py*fPixeltoY; }
167 virtual void AbsPixeltoXY(Int_t xpixel, Int_t ypixel, Double_t &x, Double_t &y);
168 void AddExec(const char *name, const char *command) override;
169 virtual void AutoExec();
170 void Browse(TBrowser *b) override;
171 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 = "") override; // *MENU*
172 TVirtualPad *cd(Int_t subpadnumber=0) override; // *MENU*
173 void Clear(Option_t *option="") override;
174 virtual Int_t Clip(Float_t *x, Float_t *y, Float_t xclipl, Float_t yclipb, Float_t xclipr, Float_t yclipt);
175 Int_t Clip(Double_t *x, Double_t *y, Double_t xclipl, Double_t yclipb, Double_t xclipr, Double_t yclipt) override;
176 virtual Int_t ClippingCode(Double_t x, Double_t y, Double_t xcl1, Double_t ycl1, Double_t xcl2, Double_t ycl2);
177 virtual Int_t ClipPolygon(Int_t n, Double_t *x, Double_t *y, Int_t nn, Double_t *xc, Double_t *yc, Double_t xclipl, Double_t yclipb, Double_t xclipr, Double_t yclipt);
178 void Close(Option_t *option="") override;
179 virtual void Closed() { Emit("Closed()"); } // *SIGNAL*
180 void CopyPixmap() override;
181 void CopyPixmaps() override;
182 void DeleteExec(const char *name) override;
183 void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override; // *MENU*
184 virtual void DivideSquare(Int_t n, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0);
185 void Draw(Option_t *option="") override;
186 void DrawClassObject(const TObject *obj, Option_t *option="") override;
187 static void DrawColorTable();
188 virtual void DrawCrosshair();
189 TH1F *DrawFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax, const char *title="") override;
190 void ExecuteEventAxis(Int_t event, Int_t px, Int_t py, TAxis *axis) override;
191 TObject *FindObject(const char *name) const override;
192 TObject *FindObject(const TObject *obj) const override;
193 void UseCurrentStyle() override; // *MENU*
194 Short_t GetBorderMode() const override { return fBorderMode;}
195 Short_t GetBorderSize() const override { return fBorderSize;}
196 Int_t GetCrosshair() const;
197 Int_t GetCanvasID() const override;
198 TCanvasImp *GetCanvasImp() const override;
199 TFrame *GetFrame() override;
200 Int_t GetEvent() const override;
201 Int_t GetEventX() const override;
202 Int_t GetEventY() const override;
203 Color_t GetHighLightColor() const override;
204 void GetRange(Double_t &x1, Double_t &y1, Double_t &x2, Double_t &y2) override;
206 void GetPadPar(Double_t &xlow, Double_t &ylow, Double_t &xup, Double_t &yup) override;
207 Double_t GetXlowNDC() const override { return fXlowNDC; }
208 Double_t GetYlowNDC() const override { return fYlowNDC; }
209 /// Get width of pad along X in Normalized Coordinates (NDC)
210 Double_t GetWNDC() const override { return fWNDC; }
211 /// Get height of pad along Y in Normalized Coordinates (NDC)
212 Double_t GetHNDC() const override { return fHNDC; }
213 UInt_t GetWw() const override;
214 UInt_t GetWh() const override;
215 Double_t GetAbsXlowNDC() const override { return fAbsXlowNDC; }
216 Double_t GetAbsYlowNDC() const override { return fAbsYlowNDC; }
217 Double_t GetAbsWNDC() const override { return fAbsWNDC; }
218 Double_t GetAbsHNDC() const override { return fAbsHNDC; }
219 Double_t GetAspectRatio() const override { return fAspectRatio; }
220 Double_t GetPhi() const override { return fPhi; }
221 Double_t GetTheta() const override { return fTheta; }
222 ///Returns the minimum x-coordinate value visible on the pad. If log axis the returned value is in decades.
223 Double_t GetUxmin() const override { return fUxmin; }
224 ///Returns the minimum y-coordinate value visible on the pad. If log axis the returned value is in decades.
225 Double_t GetUymin() const override { return fUymin; }
226 ///Returns the maximum x-coordinate value visible on the pad. If log axis the returned value is in decades.
227 Double_t GetUxmax() const override { return fUxmax; }
228 ///Returns the maximum y-coordinate value visible on the pad. If log axis the returned value is in decades.
229 Double_t GetUymax() const override { return fUymax; }
230 Bool_t GetGridx() const override { return fGridx; }
231 Bool_t GetGridy() const override { return fGridy; }
232 Int_t GetNumber() const override { return fNumber; }
233 Int_t GetTickx() const override { return fTickx; }
234 Int_t GetTicky() const override { return fTicky; }
235 Double_t GetX1() const override { return fX1; }
236 Double_t GetX2() const override { return fX2; }
237 Double_t GetY1() const override { return fY1; }
238 Double_t GetY2() const override { return fY2; }
239 static Int_t GetMaxPickDistance();
240 TList *GetListOfPrimitives() const override { return fPrimitives; }
241 TList *GetListOfExecs() const override { return fExecs; }
242 TObject *GetPrimitive(const char *name) const override; //obsolete, use FindObject instead
243 TObject *GetSelected() const override;
244 TVirtualPad *GetPad(Int_t subpadnumber) const override;
245 TObject *GetPadPointer() const override { return fPadPointer; }
246 TVirtualPad *GetPadSave() const override;
247 TVirtualPad *GetSelectedPad() const override;
248 Int_t GetGLDevice() override;
249 TView *GetView() const override { return fView; }
250 TObject *GetView3D() const override { return fPadView3D; }// Return 3D View of this TPad
251 Int_t GetLogx() const override { return fLogx; }
252 Int_t GetLogy() const override { return fLogy; }
253 Int_t GetLogz() const override { return fLogz; }
254 TVirtualPad *GetMother() const override { return fMother; }
255 const char *GetName() const override { return fName.Data(); }
256 const char *GetTitle() const override { return fTitle.Data(); }
257 TCanvas *GetCanvas() const override { return fCanvas; }
258 TVirtualPad *GetVirtCanvas() const override;
259 TVirtualPadPainter *GetPainter() override;
260 Int_t GetPadPaint() const override { return fPadPaint; }
261 Int_t GetPixmapID() const override { return fPixmapID; }
262 ULong_t Hash() const override { return fName.Hash(); }
263 Bool_t HasCrosshair() const override;
264 void HighLight(Color_t col=kRed, Bool_t set=kTRUE) override;
265 Bool_t HasFixedAspectRatio() const override { return fFixedAspectRatio; }
266 Bool_t IsBatch() const override;
267 virtual Bool_t IsEditable() const override { return fEditable; }
268 Bool_t IsFolder() const override { return kTRUE; }
269 Bool_t IsModified() const override { return fModified; }
270 Bool_t IsRetained() const override;
271 Bool_t IsVertical() const override { return !TestBit(kHori); }
272 void ls(Option_t *option="") const override;
273 void Modified(Bool_t flag=1) override; // *SIGNAL*
274 Bool_t OpaqueMoving() const override;
275 Bool_t OpaqueResizing() const override;
276 Double_t PadtoX(Double_t x) const override;
277 Double_t PadtoY(Double_t y) const override;
278 void Paint(Option_t *option="") override;
280 void PaintFillArea(Int_t n, Float_t *x, Float_t *y, Option_t *option="") override; // Obsolete
281 void PaintFillArea(Int_t n, Double_t *x, Double_t *y, Option_t *option="") override;
282 void PaintFillAreaNDC(Int_t n, Double_t *x, Double_t *y, Option_t *option="") override;
284 void PaintHatches(Double_t dy, Double_t angle, Int_t nn, Double_t *xx, Double_t *yy);
287 void PaintLineNDC(Double_t u1, Double_t v1,Double_t u2, Double_t v2) override;
288 void PaintLine3D(Float_t *p1, Float_t *p2) override;
289 void PaintLine3D(Double_t *p1, Double_t *p2) override;
290 void PaintPolyLine(Int_t n, Float_t *x, Float_t *y, Option_t *option="") override;
291 void PaintPolyLine(Int_t n, Double_t *x, Double_t *y, Option_t *option="") override;
292 void PaintPolyLine3D(Int_t n, Double_t *p) override;
293 void PaintPolyLineNDC(Int_t n, Double_t *x, Double_t *y, Option_t *option="") override;
294 void PaintPolyMarker(Int_t n, Float_t *x, Float_t *y, Option_t *option="") override;
295 void PaintPolyMarker(Int_t n, Double_t *x, Double_t *y, Option_t *option="") override;
296 void PaintModified() override;
297 void PaintText(Double_t x, Double_t y, const char *text) override;
298 void PaintText(Double_t x, Double_t y, const wchar_t *text) override;
299 void PaintTextNDC(Double_t u, Double_t v, const char *text) override;
300 void PaintTextNDC(Double_t u, Double_t v, const wchar_t *text) override;
301 virtual TPad *Pick(Int_t px, Int_t py, TObjLink *&pickobj);
302 Double_t PixeltoX(Int_t px) override;
303 Double_t PixeltoY(Int_t py) override;
304 virtual void PixeltoXY(Int_t xpixel, Int_t ypixel, Double_t &x, Double_t &y);
305 void Pop() override; // *MENU*
306 void Print(const char *filename="") const override;
307 void Print(const char *filename, Option_t *option) override;
308 void Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2) override; // *MENU* *ARGS={x1=>fX1,y1=>fY1,x2=>fX2,y2=>fY2}
309 virtual void RangeChanged() { Emit("RangeChanged()"); } // *SIGNAL*
311 void RecursiveRemove(TObject *obj) override;
312 void RedrawAxis(Option_t *option="") override;
313 void ResetView3D(TObject *view=nullptr) override { fPadView3D=view; }
314 void ResizePad(Option_t *option="") override;
315 virtual void Resized() { Emit("Resized()"); } // *SIGNAL*
316 void SaveAs(const char *filename="",Option_t *option="") const override; // *MENU*
317 void SetBorderMode(Short_t bordermode) override { fBorderMode = bordermode; Modified(); } // *MENU*
318 void SetBorderSize(Short_t bordersize) override { fBorderSize = bordersize; Modified(); } // *MENU*
319 void SetCanvas(TCanvas *c) override { fCanvas = c; }
320 void SetCanvasSize(UInt_t ww, UInt_t wh) override;
321 void SetCrosshair(Int_t crhair=1) override; // *TOGGLE*
322 void SetCursor(ECursor cursor) override;
323 void SetDoubleBuffer(Int_t mode=1) override;
324 void SetDrawOption(Option_t *option="") override;
325 void SetEditable(Bool_t mode=kTRUE) override; // *TOGGLE*
326 void SetFixedAspectRatio(Bool_t fixed = kTRUE) override; // *TOGGLE*
327 void SetGrid(Int_t valuex = 1, Int_t valuey = 1) override { fGridx = valuex; fGridy = valuey; Modified(); }
328 void SetGridx(Int_t value = 1) override { fGridx = value; Modified(); } // *TOGGLE*
329 void SetGridy(Int_t value = 1) override { fGridy = value; Modified(); } // *TOGGLE*
330 void SetFillStyle(Style_t fstyle) override;
331 void SetLogx(Int_t value = 1) override; // *TOGGLE*
332 void SetLogy(Int_t value = 1) override; // *TOGGLE*
333 void SetLogz(Int_t value = 1) override; // *TOGGLE*
334 virtual void SetNumber(Int_t number) { fNumber = number; }
335 void SetPad(const char *name, const char *title,
336 Double_t xlow, Double_t ylow, Double_t xup,
337 Double_t yup, Color_t color=35,
338 Short_t bordersize=5, Short_t bordermode=-1) override;
339 void SetPad(Double_t xlow, Double_t ylow, Double_t xup, Double_t yup) override;
340 void SetAttFillPS(Color_t color, Style_t style) override;
341 void SetAttLinePS(Color_t color, Style_t style, Width_t lwidth) override;
342 void SetAttMarkerPS(Color_t color, Style_t style, Size_t msize) override;
343 void SetAttTextPS(Int_t align, Float_t angle, Color_t color, Style_t font, Float_t tsize) override;
344 static void SetMaxPickDistance(Int_t maxPick=5);
345 void SetName(const char *name) override { fName = name; } // *MENU*
346 void SetSelected(TObject *obj) override;
347 void SetTicks(Int_t valuex = 1, Int_t valuey = 1) override { fTickx = valuex; fTicky = valuey; Modified(); }
348 void SetTickx(Int_t value = 1) override { fTickx = value; Modified(); } // *TOGGLE*
349 void SetTicky(Int_t value = 1) override { fTicky = value; Modified(); } // *TOGGLE*
350 void SetTitle(const char *title="") override { fTitle = title; }
351 void SetTheta(Double_t theta=30) override { fTheta = theta; Modified(); }
352 void SetPhi(Double_t phi=30) override { fPhi = phi; Modified(); }
353 void SetToolTipText(const char *text, Long_t delayms = 1000) override;
354 void SetVertical(Bool_t vert=kTRUE) override;
355 void SetView(TView *view = nullptr) override;
356 void SetViewer3D(TVirtualViewer3D *viewer3d) override { fViewer3D = viewer3d; }
357
358 virtual void SetGLDevice(Int_t dev) {fGLDevice = dev;}
359 void SetCopyGLDevice(Bool_t copy) override { fCopyGLDevice = copy; }
360
361 void ShowGuidelines(TObject *object, const Int_t event, const char mode = 'i', const bool cling = true) override;
362 void Update() override;
363 Int_t UtoAbsPixel(Double_t u) const override { return Int_t(fUtoAbsPixelk + u*fUtoPixel); }
364 Int_t VtoAbsPixel(Double_t v) const override { return Int_t(fVtoAbsPixelk + v*fVtoPixel); }
365 Int_t UtoPixel(Double_t u) const override;
366 Int_t VtoPixel(Double_t v) const override;
367 TObject *WaitPrimitive(const char *pname="", const char *emode="") override;
368 Int_t XtoAbsPixel(Double_t x) const override;
369 Int_t YtoAbsPixel(Double_t y) const override;
370 Double_t XtoPad(Double_t x) const override;
371 Double_t YtoPad(Double_t y) const override;
372 Int_t XtoPixel(Double_t x) const override;
373 Int_t YtoPixel(Double_t y) const override;
374 virtual void XYtoAbsPixel(Double_t x, Double_t y, Int_t &xpixel, Int_t &ypixel) const;
375 virtual void XYtoPixel(Double_t x, Double_t y, Int_t &xpixel, Int_t &ypixel) const;
376
377 TObject *CreateToolTip(const TBox *b, const char *text, Long_t delayms) override;
378 void DeleteToolTip(TObject *tip) override;
379 void ResetToolTip(TObject *tip) override;
380 void CloseToolTip(TObject *tip) override;
381
382 Int_t IncrementPaletteColor(Int_t i, TString opt) override;
383 Int_t NextPaletteColor() override;
384
385 void DrawCollideGrid();
386 Bool_t PlaceBox(TObject *o, Double_t w, Double_t h, Double_t &xl, Double_t &yb) override;
387
388 virtual void x3d(Option_t *type=""); // Depreciated
389
390 TVirtualViewer3D *GetViewer3D(Option_t * type = "") override;
391 Bool_t HasViewer3D() const override { return fViewer3D != nullptr; }
392 void ReleaseViewer3D(Option_t * type = "") override;
393
394 Rectangle_t GetBBox() override;
395 TPoint GetBBoxCenter() override;
396 void SetBBoxCenter(const TPoint &p) override;
397 void SetBBoxCenterX(const Int_t x) override;
398 void SetBBoxCenterY(const Int_t y) override;
399 void SetBBoxX1(const Int_t x) override;
400 void SetBBoxX2(const Int_t x) override;
401 void SetBBoxY1(const Int_t y) override;
402 void SetBBoxY2(const Int_t y) override;
403
404 virtual void RecordPave(const TObject *obj); // *SIGNAL*
405 virtual void RecordLatex(const TObject *obj); // *SIGNAL*
406 virtual void EventPave() { Emit("EventPave()"); } // *SIGNAL*
407 virtual void StartEditing() { Emit("StartEditing()"); } // *SIGNAL*
408
409 ClassDefOverride(TPad,13) //A Graphics pad
410};
411
412
413//______________________________________________________________________________
414inline void TPad::Modified(Bool_t flag)
415{
416 if (!fModified && flag) Emit("Modified()");
417 fModified = flag;
418}
419
420
421//______________________________________________________________________________
422inline void TPad::AbsPixeltoXY(Int_t xpixel, Int_t ypixel, Double_t &x, Double_t &y)
423{
424 x = AbsPixeltoX(xpixel);
425 y = AbsPixeltoY(ypixel);
426}
427
428
429//______________________________________________________________________________
431{
432 if (fAbsCoord) return fAbsPixeltoXk + px*fPixeltoX;
433 else return fPixeltoXk + px*fPixeltoX;
434}
435
436
437//______________________________________________________________________________
439{
440 if (fAbsCoord) return fAbsPixeltoYk + py*fPixeltoY;
441 else return fPixeltoYk + py*fPixeltoY;
442}
443
444
445//______________________________________________________________________________
446inline void TPad::PixeltoXY(Int_t xpixel, Int_t ypixel, Double_t &x, Double_t &y)
447{
448 x = PixeltoX(xpixel);
449 y = PixeltoY(ypixel);
450}
451
452
453//______________________________________________________________________________
455{
456 Double_t val;
457 if (fAbsCoord) val = fUtoAbsPixelk + u*fUtoPixel;
458 else val = u*fUtoPixel;
459 if (val < -kMaxPixel) return -kMaxPixel;
460 if (val > kMaxPixel) return kMaxPixel;
461 return Int_t(val);
462}
463
464
465//______________________________________________________________________________
467{
468 Double_t val;
469 if (fAbsCoord) val = fVtoAbsPixelk + v*fVtoPixel;
470 else val = fVtoPixelk + v*fVtoPixel;
471 if (val < -kMaxPixel) return -kMaxPixel;
472 if (val > kMaxPixel) return kMaxPixel;
473 return Int_t(val);
474}
475
476
477//______________________________________________________________________________
479{
481 if (val < -kMaxPixel) return -kMaxPixel;
482 if (val > kMaxPixel) return kMaxPixel;
483 return Int_t(val);
484}
485
486
487//______________________________________________________________________________
489{
490 Double_t val;
491 if (fAbsCoord) val = fXtoAbsPixelk + x*fXtoPixel;
492 else val = fXtoPixelk + x*fXtoPixel;
493 if (val < -kMaxPixel) return -kMaxPixel;
494 if (val > kMaxPixel) return kMaxPixel;
495 return Int_t(val);
496}
497
498
499//______________________________________________________________________________
501{
503 if (val < -kMaxPixel) return -kMaxPixel;
504 if (val > kMaxPixel) return kMaxPixel;
505 return Int_t(val);
506}
507
508
509//______________________________________________________________________________
511{
512 Double_t val;
513 if (fAbsCoord) val = fYtoAbsPixelk + y*fYtoPixel;
514 else val = fYtoPixelk + y*fYtoPixel;
515 if (val < -kMaxPixel) return -kMaxPixel;
516 if (val > kMaxPixel) return kMaxPixel;
517 return Int_t(val);
518}
519
520
521//______________________________________________________________________________
522inline void TPad::XYtoAbsPixel(Double_t x, Double_t y, Int_t &xpixel, Int_t &ypixel) const
523{
524 xpixel = XtoAbsPixel(x);
525 ypixel = YtoAbsPixel(y);
526}
527
528
529//______________________________________________________________________________
530inline void TPad::XYtoPixel(Double_t x, Double_t y, Int_t &xpixel, Int_t &ypixel) const
531{
532 xpixel = XtoPixel(x);
533 ypixel = YtoPixel(y);
534}
535
536
537//______________________________________________________________________________
539{ }
540
541#endif
542
ECursor
Definition: GuiTypes.h:372
const Int_t kMaxPixel
Max value for an int.
Definition: GuiTypes.h:369
#define c(i)
Definition: RSha256.hxx:101
#define h(i)
Definition: RSha256.hxx:106
short Style_t
Definition: RtypesCore.h:89
bool Bool_t
Definition: RtypesCore.h:63
int Int_t
Definition: RtypesCore.h:45
short Color_t
Definition: RtypesCore.h:92
float Size_t
Definition: RtypesCore.h:96
long Long_t
Definition: RtypesCore.h:54
unsigned int UInt_t
Definition: RtypesCore.h:46
short Width_t
Definition: RtypesCore.h:91
float Float_t
Definition: RtypesCore.h:57
short Short_t
Definition: RtypesCore.h:39
double Double_t
Definition: RtypesCore.h:59
const Bool_t kTRUE
Definition: RtypesCore.h:100
unsigned long ULong_t
Definition: RtypesCore.h:55
const char Option_t
Definition: RtypesCore.h:66
#define BIT(n)
Definition: Rtypes.h:85
@ kRed
Definition: Rtypes.h:66
#define ClassDefOverride(name, id)
Definition: Rtypes.h:339
winID h TVirtualViewer3D TVirtualGLPainter p
Option_t Option_t option
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t cursor
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t b
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t TPoint TPoint angle
Option_t Option_t TPoint TPoint const char mode
Option_t Option_t TPoint TPoint const char y2
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Option_t Option_t style
Option_t Option_t TPoint TPoint const char text
Option_t Option_t TPoint TPoint const char y1
char name[80]
Definition: TGX11.cxx:110
float xmin
Definition: THbookFile.cxx:95
float ymin
Definition: THbookFile.cxx:95
float xmax
Definition: THbookFile.cxx:95
float ymax
Definition: THbookFile.cxx:95
Draw all kinds of Arrows.
Definition: TArrow.h:29
Abstract base class for elements drawn in the editor.
Definition: TAttBBox2D.h:19
Class to manage histogram axis.
Definition: TAxis.h:30
Create a Box.
Definition: TBox.h:22
Using a TBrowser one can browse all ROOT objects.
Definition: TBrowser.h:37
ABC describing GUI independent main window (with menubar, scrollbars and a drawing area).
Definition: TCanvasImp.h:30
The Canvas class.
Definition: TCanvas.h:23
Define a Frame.
Definition: TFrame.h:19
1-D histogram with a float per channel (see TH1 documentation)}
Definition: TH1.h:574
This class displays a legend box (TPaveText) containing several legend entries.
Definition: TLegend.h:23
A doubly linked list.
Definition: TList.h:38
Mother of all ROOT objects.
Definition: TObject.h:41
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
Definition: TObject.h:201
The most important graphics class in the ROOT system.
Definition: TPad.h:27
void SetGridx(Int_t value=1) override
Definition: TPad.h:328
Short_t GetBorderMode() const override
Definition: TPad.h:194
Bool_t OpaqueMoving() const override
Is pad moving in opaque mode ?
Definition: TPad.cxx:2765
void SetBorderSize(Short_t bordersize) override
Definition: TPad.h:318
void PaintTextNDC(Double_t u, Double_t v, const char *text) override
Paint text in CurrentPad NDC coordinates.
Definition: TPad.cxx:4448
Int_t GetTicky() const override
Definition: TPad.h:234
virtual Int_t Clip(Float_t *x, Float_t *y, Float_t xclipl, Float_t yclipb, Float_t xclipr, Float_t yclipt)
Clipping routine: Cohen Sutherland algorithm.
Definition: TPad.cxx:672
virtual void HideToolTip(Int_t event)
Hide tool tip depending on the event type.
Definition: TPad.cxx:2740
Double_t fAbsYlowNDC
Absolute Y top left corner of pad in NDC [0,1].
Definition: TPad.h:67
Double_t fXtoAbsPixelk
Conversion coefficient for X World to absolute pixel.
Definition: TPad.h:38
void SetAttMarkerPS(Color_t color, Style_t style, Size_t msize) override
Set postscript marker attributes.
Definition: TPad.cxx:6048
virtual void DivideSquare(Int_t n, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0)
"n" is the total number of sub-pads.
Definition: TPad.cxx:1244
void AbsCoordinates(Bool_t set) override
Definition: TPad.h:164
Double_t AbsPixeltoY(Int_t py) override
Definition: TPad.h:166
Bool_t IsBatch() const override
Is pad in batch mode ?
Definition: TPad.cxx:2749
Double_t GetUymax() const override
Returns the maximum y-coordinate value visible on the pad. If log axis the returned value is in decad...
Definition: TPad.h:229
void AddExec(const char *name, const char *command) override
Add a new TExec object to the list of Execs.
Definition: TPad.cxx:445
void SetViewer3D(TVirtualViewer3D *viewer3d) override
Definition: TPad.h:356
Double_t fWNDC
Width of pad along X in Normalized Coordinates (NDC)
Definition: TPad.h:63
void SetName(const char *name) override
Definition: TPad.h:345
Int_t NextPaletteColor() override
Get the next autocolor in the pad.
Definition: TPad.cxx:2988
Int_t VtoPixel(Double_t v) const override
Definition: TPad.h:466
void PaintBorder(Color_t color, Bool_t tops)
Paint the pad border.
Definition: TPad.cxx:3466
Double_t GetPhi() const override
Definition: TPad.h:220
void FillCollideGrid(TObject *o)
Initialise the grid used to find empty space when adding a box (Legend) in a pad.
Definition: TPad.cxx:3004
void SetView(TView *view=nullptr) override
Set the current TView. Delete previous view if view=0.
Definition: TPad.cxx:6016
TVirtualViewer3D * GetViewer3D(Option_t *type="") override
Create/obtain handle to 3D viewer.
Definition: TPad.cxx:6968
Double_t fPixeltoYk
Conversion coefficient for pixel to Y World.
Definition: TPad.h:56
void PaintHatches(Double_t dy, Double_t angle, Int_t nn, Double_t *xx, Double_t *yy)
This routine draw hatches inclined with the angle "angle" and spaced of "dy" in normalized device coo...
Definition: TPad.cxx:3994
void PaintLine3D(Float_t *p1, Float_t *p2) override
Paint 3-D line in the CurrentPad.
Definition: TPad.cxx:4191
static Int_t fgMaxPickDistance
Maximum Pick Distance.
Definition: TPad.h:112
void ResizePad(Option_t *option="") override
Compute pad conversion coefficients.
Definition: TPad.cxx:5444
void PaintPolyMarker(Int_t n, Float_t *x, Float_t *y, Option_t *option="") override
Paint polymarker in CurrentPad World coordinates.
Definition: TPad.cxx:4360
void SetGrid(Int_t valuex=1, Int_t valuey=1) override
Definition: TPad.h:327
Double_t fPhi
phi angle to view as lego/surface
Definition: TPad.h:77
Double_t GetAspectRatio() const override
Definition: TPad.h:219
void DestroyExternalViewer3D()
Double_t fPixeltoY
yworld = fPixeltoYk + fPixeltoY*ypixel
Definition: TPad.h:57
virtual void RecordLatex(const TObject *obj)
Emit RecordLatex() signal.
Definition: TPad.cxx:7072
Double_t fAbsXlowNDC
Absolute X top left corner of pad in NDC [0,1].
Definition: TPad.h:66
TList * GetListOfExecs() const override
Definition: TPad.h:241
void SetTickx(Int_t value=1) override
Definition: TPad.h:348
Double_t fVtoPixelk
Conversion coefficient for V NDC to pixel.
Definition: TPad.h:49
Bool_t fGridx
Set to true if grid along X.
Definition: TPad.h:97
TObject * fPadView3D
! 3D View of this TPad
Definition: TPad.h:111
void SetTitle(const char *title="") override
Definition: TPad.h:350
void CopyBackgroundPixmaps(TPad *start, TPad *stop, Int_t x, Int_t y)
Copy pixmaps of pads laying below pad "stop" into pad "stop".
Definition: TPad.cxx:3814
Double_t GetUxmax() const override
Returns the maximum x-coordinate value visible on the pad. If log axis the returned value is in decad...
Definition: TPad.h:227
void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) override
Automatic pad generation by division.
Definition: TPad.cxx:1152
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitives in this pad on the C++ source file out.
Definition: TPad.cxx:5669
virtual void StartEditing()
Definition: TPad.h:407
Double_t fXtoPixel
xpixel = fXtoPixelk + fXtoPixel*xworld
Definition: TPad.h:40
TList * fExecs
List of commands to be executed when a pad event occurs.
Definition: TPad.h:105
Double_t PadtoY(Double_t y) const override
Convert y from pad to Y.
Definition: TPad.cxx:3372
Int_t fTickx
Set to 1 if tick marks along X.
Definition: TPad.h:86
void SetBBoxY1(const Int_t y) override
Set top of BoundingBox to a value (resize in y direction on top)
Definition: TPad.cxx:7166
Int_t fTicky
Set to 1 if tick marks along Y.
Definition: TPad.h:87
Int_t GetPixmapID() const override
Definition: TPad.h:261
virtual void XYtoAbsPixel(Double_t x, Double_t y, Int_t &xpixel, Int_t &ypixel) const
Definition: TPad.h:522
TPad(const TPad &pad)=delete
Bool_t GetGridx() const override
Definition: TPad.h:230
Double_t fX2
X of upper X coordinate.
Definition: TPad.h:35
void SetLogz(Int_t value=1) override
Set Lin/Log scale for Z.
Definition: TPad.cxx:5932
Bool_t fEmbeddedGL
!
Definition: TPad.h:84
Int_t UtoAbsPixel(Double_t u) const override
Definition: TPad.h:363
void Browse(TBrowser *b) override
Browse pad.
Definition: TPad.cxx:468
Int_t XtoPixel(Double_t x) const override
Definition: TPad.h:488
void SetAttFillPS(Color_t color, Style_t style) override
Set postscript fill area attributes.
Definition: TPad.cxx:6025
Int_t fCGnx
! Size of the collide grid along x
Definition: TPad.h:116
void SetBBoxCenterY(const Int_t y) override
Set Y coordinate of the center of the Pad.
Definition: TPad.cxx:7136
Double_t fPixeltoX
xworld = fPixeltoXk + fPixeltoX*xpixel
Definition: TPad.h:54
void CopyBackgroundPixmap(Int_t x, Int_t y)
Copy pixmap of this pad as background of the current pad.
Definition: TPad.cxx:3832
Bool_t fCopyGLDevice
!
Definition: TPad.h:83
Double_t fYtoPixel
ypixel = fYtoPixelk + fYtoPixel*yworld
Definition: TPad.h:43
Double_t GetY2() const override
Definition: TPad.h:238
void DeleteToolTip(TObject *tip) override
Delete tool tip object.
Definition: TPad.cxx:6918
void Close(Option_t *option="") override
Delete all primitives in pad and pad itself.
Definition: TPad.cxx:974
Int_t GetNumber() const override
Definition: TPad.h:232
Double_t fAbsWNDC
Absolute Width of pad along X in NDC.
Definition: TPad.h:68
UInt_t GetWw() const override
Get Ww.
Definition: TPad.cxx:2730
void PaintModified() override
Traverse pad hierarchy and (re)paint only modified pads.
Definition: TPad.cxx:3634
void SetEditable(Bool_t mode=kTRUE) override
Set pad editable yes/no If a pad is not editable:
Definition: TPad.cxx:5876
const char * GetTitle() const override
Returns title of object.
Definition: TPad.h:256
void PaintDate()
Paint the current date and time if the option Date is set on via gStyle->SetOptDate() Paint the curre...
Definition: TPad.cxx:3572
static void SetMaxPickDistance(Int_t maxPick=5)
static function to set the maximum Pick Distance fgMaxPickDistance This parameter is used in TPad::Pi...
Definition: TPad.cxx:6503
void SetBBoxX2(const Int_t x) override
Set right hand side of BoundingBox to a value (resize in x direction on right)
Definition: TPad.cxx:7157
void SetBBoxX1(const Int_t x) override
Set lefthandside of BoundingBox to a value (resize in x direction on left)
Definition: TPad.cxx:7146
virtual Int_t ClippingCode(Double_t x, Double_t y, Double_t xcl1, Double_t ycl1, Double_t xcl2, Double_t ycl2)
Compute the endpoint codes for TPad::Clip.
Definition: TPad.cxx:805
Double_t GetUymin() const override
Returns the minimum y-coordinate value visible on the pad. If log axis the returned value is in decad...
Definition: TPad.h:225
Double_t fX1
X of lower X coordinate.
Definition: TPad.h:33
TList * GetListOfPrimitives() const override
Definition: TPad.h:240
void SetFillStyle(Style_t fstyle) override
Override TAttFill::FillStyle for TPad because we want to handle style=0 as style 4000.
Definition: TPad.cxx:5895
TObject * GetPadPointer() const override
Definition: TPad.h:245
TH1F * DrawFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax, const char *title="") override
Draw an empty pad frame with X and Y axis.
Definition: TPad.cxx:1576
Double_t fVtoPixel
ypixel = fVtoPixelk + fVtoPixel*vndc
Definition: TPad.h:50
TCanvasImp * GetCanvasImp() const override
Get canvas implementation pointer if any.
Definition: TPad.cxx:2639
Int_t GetEvent() const override
Get Event.
Definition: TPad.cxx:2647
TObject * GetView3D() const override
Definition: TPad.h:250
Double_t PadtoX(Double_t x) const override
Convert x from pad to X.
Definition: TPad.cxx:3363
virtual void PixeltoXY(Int_t xpixel, Int_t ypixel, Double_t &x, Double_t &y)
Definition: TPad.h:446
virtual void DrawCrosshair()
Function called to draw a crosshair in the canvas.
Definition: TPad.cxx:1503
Double_t YtoPad(Double_t y) const override
Convert y from Y to pad.
Definition: TPad.cxx:3393
virtual void RangeChanged()
Definition: TPad.h:309
Double_t fUymin
Minimum value on the Y axis.
Definition: TPad.h:72
void SetPad(const char *name, const char *title, Double_t xlow, Double_t ylow, Double_t xup, Double_t yup, Color_t color=35, Short_t bordersize=5, Short_t bordermode=-1) override
Set all pad parameters.
Definition: TPad.cxx:5992
void SetCursor(ECursor cursor) override
Set cursor type.
Definition: TPad.cxx:2797
Int_t GetCanvasID() const override
Get canvas identifier.
Definition: TPad.cxx:2631
Int_t fLogz
(=0 if Z linear scale, =1 if log scale)
Definition: TPad.h:90
Double_t fYtoPixelk
Conversion coefficient for Y World to pixel.
Definition: TPad.h:42
Bool_t PlaceBox(TObject *o, Double_t w, Double_t h, Double_t &xl, Double_t &yb) override
Place a box in NDC space.
Definition: TPad.cxx:3081
TPad()
Pad default constructor.
Definition: TPad.cxx:131
Double_t AbsPixeltoX(Int_t px) override
Definition: TPad.h:165
void UseCurrentStyle() override
Force a copy of current style for all objects in pad.
Definition: TPad.cxx:6745
static Int_t GetMaxPickDistance()
Static function (see also TPad::SetMaxPickDistance)
Definition: TPad.cxx:2687
Int_t VtoAbsPixel(Double_t v) const override
Definition: TPad.h:364
void Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2) override
Set world coordinate system for the pad.
Definition: TPad.cxx:5163
virtual void EventPave()
Definition: TPad.h:406
Double_t fUtoPixelk
Conversion coefficient for U NDC to pixel.
Definition: TPad.h:46
Double_t fPixeltoXk
Conversion coefficient for pixel to X World.
Definition: TPad.h:53
Bool_t IsModified() const override
Definition: TPad.h:269
Double_t fY1
Y of lower Y coordinate.
Definition: TPad.h:34
Int_t GetEventY() const override
Get Y event.
Definition: TPad.cxx:2663
Int_t fGLDevice
! OpenGL off-screen pixmap identifier
Definition: TPad.h:82
Double_t fYlowNDC
Y bottom left corner of pad in NDC [0,1].
Definition: TPad.h:60
TObject * WaitPrimitive(const char *pname="", const char *emode="") override
Loop and sleep until a primitive with name=pname is found in the pad.
Definition: TPad.cxx:6865
TPad & operator=(const TPad &rhs)=delete
void SetAttTextPS(Int_t align, Float_t angle, Color_t color, Style_t font, Float_t tsize) override
Set postscript text attributes.
Definition: TPad.cxx:6060
Bool_t fModified
Set to true when pad is modified.
Definition: TPad.h:96
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="") override
Build a legend from the graphical objects in the pad.
Definition: TPad.cxx:500
virtual TPad * Pick(Int_t px, Int_t py, TObjLink *&pickobj)
Search for an object at pixel position px,py.
Definition: TPad.cxx:4492
void Update() override
Update pad.
Definition: TPad.cxx:2821
virtual void SetNumber(Int_t number)
Definition: TPad.h:334
Int_t fNumber
pad number identifier
Definition: TPad.h:85
void PaintFillAreaNDC(Int_t n, Double_t *x, Double_t *y, Option_t *option="") override
Paint fill area in CurrentPad NDC coordinates.
Definition: TPad.cxx:3889
Double_t PixeltoX(Int_t px) override
Definition: TPad.h:430
void SetPhi(Double_t phi=30) override
Definition: TPad.h:352
Double_t fAbsPixeltoXk
Conversion coefficient for absolute pixel to X World.
Definition: TPad.h:52
void Clear(Option_t *option="") override
Delete all pad primitives.
Definition: TPad.cxx:626
Int_t YtoPixel(Double_t y) const override
Definition: TPad.h:510
Int_t GetTickx() const override
Definition: TPad.h:233
void PaintLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2) override
Paint line in CurrentPad World coordinates.
Definition: TPad.cxx:4146
Int_t GetGLDevice() override
Get GL device.
Definition: TPad.cxx:7056
Double_t fAspectRatio
ratio of w/h in case of fixed ratio
Definition: TPad.h:79
virtual void RecordPave(const TObject *obj)
Emit RecordPave() signal.
Definition: TPad.cxx:7064
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) override
Paint a frame border with Postscript.
Definition: TPad.cxx:3562
Double_t fUymax
Maximum value on the Y axis.
Definition: TPad.h:74
void Modified(Bool_t flag=1) override
Definition: TPad.h:414
void SetLogy(Int_t value=1) override
Set Lin/Log scale for Y.
Definition: TPad.cxx:5921
virtual Int_t ClipPolygon(Int_t n, Double_t *x, Double_t *y, Int_t nn, Double_t *xc, Double_t *yc, Double_t xclipl, Double_t yclipb, Double_t xclipr, Double_t yclipt)
Clip polygon using the Sutherland-Hodgman algorithm.
Definition: TPad.cxx:854
void ExecuteEventAxis(Int_t event, Int_t px, Int_t py, TAxis *axis) override
Execute action corresponding to one event for a TAxis object (called by TAxis::ExecuteEvent....
Definition: TPad.cxx:2258
void HighLight(Color_t col=kRed, Bool_t set=kTRUE) override
Highlight pad.
Definition: TPad.cxx:2925
void SetBatch(Bool_t batch=kTRUE) override
Set pad in batch mode.
Definition: TPad.cxx:2781
TCanvas * fCanvas
! Pointer to mother canvas
Definition: TPad.h:103
TVirtualPad * GetMother() const override
Definition: TPad.h:254
TVirtualViewer3D * fViewer3D
! Current 3D viewer
Definition: TPad.h:120
virtual void x3d(Option_t *type="")
Deprecated: use TPad::GetViewer3D() instead.
Definition: TPad.cxx:6950
Bool_t HasCrosshair() const override
Return kTRUE if the crosshair has been activated (via SetCrosshair).
Definition: TPad.cxx:6465
Bool_t IsRetained() const override
Is pad retained ?
Definition: TPad.cxx:2757
Bool_t Collide(Int_t i, Int_t j, Int_t w, Int_t h)
Check if a box of size w and h collide some primitives in the pad at position i,j.
Definition: TPad.cxx:3060
Int_t GetPadPaint() const override
Definition: TPad.h:260
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Compute distance from point px,py to a box.
Definition: TPad.cxx:1077
Bool_t fFixedAspectRatio
True if fixed aspect ratio.
Definition: TPad.h:101
void PaintFillArea(Int_t n, Float_t *x, Float_t *y, Option_t *option="") override
Definition: TPad.cxx:3841
void RecursiveRemove(TObject *obj) override
Recursively remove object from a pad and its sub-pads.
Definition: TPad.cxx:5221
Bool_t HasFixedAspectRatio() const override
Definition: TPad.h:265
void CloseToolTip(TObject *tip) override
Hide tool tip.
Definition: TPad.cxx:6940
Double_t GetUxmin() const override
Returns the minimum x-coordinate value visible on the pad. If log axis the returned value is in decad...
Definition: TPad.h:223
void SetToolTipText(const char *text, Long_t delayms=1000) override
Set tool tip text associated with this pad.
Definition: TPad.cxx:6513
void PaintPolyLine(Int_t n, Float_t *x, Float_t *y, Option_t *option="") override
Paint polyline in CurrentPad World coordinates.
Definition: TPad.cxx:4227
void ls(Option_t *option="") const override
List all primitives in pad.
Definition: TPad.cxx:2960
virtual ~TPad()
Pad destructor.
Definition: TPad.cxx:380
TView * GetView() const override
Definition: TPad.h:249
Double_t fVtoAbsPixelk
Conversion coefficient for V NDC to absolute pixel.
Definition: TPad.h:48
TVirtualPad * GetPadSave() const override
Get save pad.
Definition: TPad.cxx:2713
void SetAttLinePS(Color_t color, Style_t style, Width_t lwidth) override
Set postscript line attributes.
Definition: TPad.cxx:6036
virtual void Resized()
Definition: TPad.h:315
Bool_t IsFolder() const override
Returns kTRUE in case object contains browsable objects (like containers or lists of other objects).
Definition: TPad.h:268
TVirtualPad * GetVirtCanvas() const override
Get virtual canvas.
Definition: TPad.cxx:2671
void DeleteExec(const char *name) override
Remove TExec name from the list of Execs.
Definition: TPad.cxx:1061
Bool_t HasViewer3D() const override
Definition: TPad.h:391
void SetCanvas(TCanvas *c) override
Definition: TPad.h:319
TString fTitle
Pad title.
Definition: TPad.h:107
void CopyPixmaps() override
Copy the sub-pixmaps of the pad to the canvas.
Definition: TPad.cxx:1046
void CopyPixmap() override
Copy the pixmap of the pad to the canvas.
Definition: TPad.cxx:1032
Double_t GetY1() const override
Definition: TPad.h:237
Int_t UtoPixel(Double_t u) const override
Definition: TPad.h:454
TPoint GetBBoxCenter() override
Return the center of the Pad as TPoint in pixels.
Definition: TPad.cxx:7103
void FillCollideGridTFrame(TObject *o)
Definition: TPad.cxx:3170
Bool_t GetGridy() const override
Definition: TPad.h:231
void LineNotFree(Int_t x1, Int_t x2, Int_t y1, Int_t y2)
Mark as "not free" the cells along a line.
Definition: TPad.cxx:3110
virtual void AbsPixeltoXY(Int_t xpixel, Int_t ypixel, Double_t &x, Double_t &y)
Definition: TPad.h:422
Double_t fAbsHNDC
Absolute Height of pad along Y in NDC.
Definition: TPad.h:69
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute action corresponding to one event.
Definition: TPad.cxx:1683
TObject * fTip
! tool tip associated with box
Definition: TPad.h:30
void SetCanvasSize(UInt_t ww, UInt_t wh) override
Set canvas size.
Definition: TPad.cxx:2789
Int_t GetLogz() const override
Definition: TPad.h:253
virtual void XYtoPixel(Double_t x, Double_t y, Int_t &xpixel, Int_t &ypixel) const
Definition: TPad.h:530
virtual void AutoExec()
Execute the list of Execs when a pad event occurs.
Definition: TPad.cxx:455
Bool_t fAbsCoord
Use absolute coordinates.
Definition: TPad.h:99
Int_t fNumPaletteColor
Number of objects with an automatic color.
Definition: TPad.h:113
Int_t fCrosshairPos
Position of crosshair.
Definition: TPad.h:93
void FillCollideGridTGraph(TObject *o)
Definition: TPad.cxx:3196
void SetFixedAspectRatio(Bool_t fixed=kTRUE) override
Fix pad aspect ratio to current value if fixed is true.
Definition: TPad.cxx:5852
Short_t GetBorderSize() const override
Definition: TPad.h:195
void RedrawAxis(Option_t *option="") override
Redraw the frame axis.
Definition: TPad.cxx:5267
void DrawDist(Rectangle_t aBBox, Rectangle_t bBBox, char mode)
Draw Arrows to indicated equal distances of Objects with given BBoxes.
Definition: TPad.cxx:6087
Int_t fLogx
(=0 if X linear scale, =1 if log scale)
Definition: TPad.h:88
Double_t GetAbsWNDC() const override
Definition: TPad.h:217
Int_t YtoAbsPixel(Double_t y) const override
Definition: TPad.h:500
Double_t fUtoPixel
xpixel = fUtoPixelk + fUtoPixel*undc
Definition: TPad.h:47
Int_t fCrosshair
Crosshair type (0 if no crosshair requested)
Definition: TPad.h:92
void PaintFillAreaHatches(Int_t n, Double_t *x, Double_t *y, Int_t FillStyle)
This function paints hatched fill area according to the FillStyle value The convention for the Hatch ...
Definition: TPad.cxx:3932
void RangeAxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax) override
Set axis coordinate system for the pad.
Definition: TPad.cxx:5201
@ kCannotMove
Fixed position.
Definition: TPad.h:155
@ kClearAfterCR
Clear after CR.
Definition: TPad.h:156
@ kHori
Pad is horizontal.
Definition: TPad.h:152
@ kClipFrame
Clip on frame.
Definition: TPad.h:153
@ kPrintingPS
PS Printing.
Definition: TPad.h:154
@ kFraming
Frame is requested.
Definition: TPad.h:151
Double_t fUtoAbsPixelk
Conversion coefficient for U NDC to absolute pixel.
Definition: TPad.h:45
void ResetToolTip(TObject *tip) override
Reset tool tip, i.e.
Definition: TPad.cxx:6929
Double_t GetTheta() const override
Definition: TPad.h:221
TList * fPrimitives
->List of primitives (subpads)
Definition: TPad.h:104
UInt_t GetWh() const override
Get Wh.
Definition: TPad.cxx:2722
TCanvas * GetCanvas() const override
Definition: TPad.h:257
Short_t fBorderSize
pad bordersize in pixels
Definition: TPad.h:94
void SetGridy(Int_t value=1) override
Definition: TPad.h:329
TView * fView
! Pointer to 3-D view (if one exists)
Definition: TPad.h:109
Rectangle_t GetBBox() override
Return the bounding Box of the Pad.
Definition: TPad.cxx:7089
virtual void SetGLDevice(Int_t dev)
Definition: TPad.h:358
void Paint(Option_t *option="") override
Paint all primitives in pad.
Definition: TPad.cxx:3405
void FillCollideGridTBox(TObject *o)
Definition: TPad.cxx:3153
Double_t fTheta
theta angle to view as lego/surface
Definition: TPad.h:76
void DrawCollideGrid()
This method draws the collide grid on top of the canvas.
Definition: TPad.cxx:3309
TString fName
Pad name.
Definition: TPad.h:106
void SetVertical(Bool_t vert=kTRUE) override
Set pad vertical (default) or horizontal.
Definition: TPad.cxx:6527
void FillCollideGridTH1(TObject *o)
Definition: TPad.cxx:3227
void GetPadPar(Double_t &xlow, Double_t &ylow, Double_t &xup, Double_t &yup) override
Return lower and upper bounds of the pad in NDC coordinates.
Definition: TPad.cxx:2891
void PaintText(Double_t x, Double_t y, const char *text) override
Paint text in CurrentPad World coordinates.
Definition: TPad.cxx:4422
Int_t fPadPaint
Set to 1 while painting the pad.
Definition: TPad.h:91
static void DrawColorTable()
Static function to Display Color Table in a pad.
Definition: TPad.cxx:1620
Double_t GetXlowNDC() const override
Definition: TPad.h:207
void SaveAs(const char *filename="", Option_t *option="") const override
Save the pad content in a file.
Definition: TPad.cxx:5606
Int_t fPixmapID
! Off-screen pixmap identifier
Definition: TPad.h:81
Bool_t fEditable
True if canvas is editable.
Definition: TPad.h:100
Double_t GetYlowNDC() const override
Definition: TPad.h:208
TObject * FindObject(const char *name) const override
Search if object named name is inside this pad or in pads inside this pad.
Definition: TPad.cxx:2593
Color_t GetHighLightColor() const override
Get highlight color.
Definition: TPad.cxx:2679
Bool_t OpaqueResizing() const override
Is pad resizing in opaque mode ?
Definition: TPad.cxx:2773
Double_t fXUpNDC
Definition: TPad.h:61
void ResetView3D(TObject *view=nullptr) override
Definition: TPad.h:313
void SetDrawOption(Option_t *option="") override
Set drawing option for object.
Definition: TPad.h:538
std::vector< Bool_t > fCollideGrid
! Grid used to find empty space when adding a box (Legend) in a pad
Definition: TPad.h:115
TVirtualPad * cd(Int_t subpadnumber=0) override
Set Current pad.
Definition: TPad.cxx:597
Int_t GetLogy() const override
Definition: TPad.h:252
void PaintLineNDC(Double_t u1, Double_t v1, Double_t u2, Double_t v2) override
Paint line in normalized coordinates.
Definition: TPad.cxx:4171
Double_t PixeltoY(Int_t py) override
Definition: TPad.h:438
void Print(const char *filename="") const override
This method is equivalent to SaveAs("filename"). See TPad::SaveAs for details.
Definition: TPad.cxx:4631
Int_t GetEventX() const override
Get X event.
Definition: TPad.cxx:2655
TFrame * GetFrame() override
Get frame.
Definition: TPad.cxx:2829
Double_t fYUpNDC
Definition: TPad.h:62
Double_t fYtoAbsPixelk
Conversion coefficient for Y World to absolute pixel.
Definition: TPad.h:41
Double_t fXtoPixelk
Conversion coefficient for X World to pixel.
Definition: TPad.h:39
Int_t fLogy
(=0 if Y linear scale, =1 if log scale)
Definition: TPad.h:89
TFrame * fFrame
! Pointer to 2-D frame (if one exists)
Definition: TPad.h:108
TVirtualPadPainter * GetPainter() override
Get pad painter from TCanvas.
Definition: TPad.cxx:7080
void Draw(Option_t *option="") override
Draw Pad in Current pad (re-parent pad if necessary).
Definition: TPad.cxx:1267
virtual void Closed()
Definition: TPad.h:179
Double_t fHNDC
Height of pad along Y in Normalized Coordinates (NDC)
Definition: TPad.h:64
void ShowGuidelines(TObject *object, const Int_t event, const char mode='i', const bool cling=true) override
Shows lines to indicate if a TAttBBox2D object is aligned to the center or to another object,...
Definition: TPad.cxx:6171
virtual Bool_t IsEditable() const override
Definition: TPad.h:267
Int_t GetCrosshair() const
Return the crosshair type (from the mother canvas) crosshair type = 0 means no crosshair.
Definition: TPad.cxx:6474
void GetRangeAxis(Double_t &xmin, Double_t &ymin, Double_t &xmax, Double_t &ymax) override
Return pad axis coordinates range.
Definition: TPad.cxx:2913
void SetBorderMode(Short_t bordermode) override
Definition: TPad.h:317
void PaintBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Option_t *option="") override
Paint box in CurrentPad World coordinates.
Definition: TPad.cxx:3720
void DrawClassObject(const TObject *obj, Option_t *option="") override
Draw class inheritance tree of the class to which obj belongs.
Definition: TPad.cxx:1301
Int_t fCGny
! Size of the collide grid along y
Definition: TPad.h:117
Double_t fXlowNDC
X bottom left corner of pad in NDC [0,1].
Definition: TPad.h:59
TObject * GetPrimitive(const char *name) const override
Get primitive.
Definition: TPad.cxx:2853
Double_t fUxmin
Minimum value on the X axis.
Definition: TPad.h:71
Double_t GetAbsHNDC() const override
Definition: TPad.h:218
void SetTicks(Int_t valuex=1, Int_t valuey=1) override
Definition: TPad.h:347
void SetBBoxCenter(const TPoint &p) override
Set center of the Pad.
Definition: TPad.cxx:7117
void SetSelected(TObject *obj) override
Set selected.
Definition: TPad.cxx:2813
TObject * GetSelected() const override
Get selected.
Definition: TPad.cxx:2695
void GetRange(Double_t &x1, Double_t &y1, Double_t &x2, Double_t &y2) override
Return pad world coordinates range.
Definition: TPad.cxx:2902
void PaintPolyLineNDC(Int_t n, Double_t *x, Double_t *y, Option_t *option="") override
Paint polyline in CurrentPad NDC coordinates.
Definition: TPad.cxx:4325
Bool_t IsVertical() const override
Definition: TPad.h:271
Int_t IncrementPaletteColor(Int_t i, TString opt) override
Increment (i==1) or set (i>1) the number of autocolor in the pad.
Definition: TPad.cxx:2974
void PaintPadFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax) override
Paint histogram/graph frame.
Definition: TPad.cxx:3615
Double_t GetAbsYlowNDC() const override
Definition: TPad.h:216
Double_t fUxmax
Maximum value on the X axis.
Definition: TPad.h:73
void SetTicky(Int_t value=1) override
Definition: TPad.h:349
Double_t fY2
Y of upper Y coordinate.
Definition: TPad.h:36
Double_t fAbsPixeltoYk
Conversion coefficient for absolute pixel to Y World.
Definition: TPad.h:55
TVirtualPad * GetSelectedPad() const override
Get selected pad.
Definition: TPad.cxx:2704
void PaintPolyLine3D(Int_t n, Double_t *p) override
Paint 3-D polyline in the CurrentPad.
Definition: TPad.cxx:4346
TVirtualPad * GetPad(Int_t subpadnumber) const override
Get a pointer to subpadnumber of this pad.
Definition: TPad.cxx:2870
Short_t fBorderMode
Bordermode (-1=down, 0 = no border, 1=up)
Definition: TPad.h:95
void SetLogx(Int_t value=1) override
Set Lin/Log scale for X.
Definition: TPad.cxx:5907
void ReleaseViewer3D(Option_t *type="") override
Release current (external) viewer.
Definition: TPad.cxx:7040
void SetCrosshair(Int_t crhair=1) override
Set crosshair active/inactive.
Definition: TPad.cxx:6487
void SetDoubleBuffer(Int_t mode=1) override
Set double buffer mode ON or OFF.
Definition: TPad.cxx:2805
Int_t fNextPaletteColor
Next automatic color.
Definition: TPad.h:114
void SetBBoxCenterX(const Int_t x) override
Set X coordinate of the center of the Pad.
Definition: TPad.cxx:7127
Int_t GetLogx() const override
Definition: TPad.h:251
void SetCopyGLDevice(Bool_t copy) override
Definition: TPad.h:359
TObject * fPadPointer
! free pointer
Definition: TPad.h:110
Double_t GetX2() const override
Definition: TPad.h:236
TObject * CreateToolTip(const TBox *b, const char *text, Long_t delayms) override
Create a tool tip and return its pointer.
Definition: TPad.cxx:6908
Double_t GetWNDC() const override
Get width of pad along X in Normalized Coordinates (NDC)
Definition: TPad.h:210
void Pop() override
Pop pad to the top of the stack.
Definition: TPad.cxx:4611
Double_t GetAbsXlowNDC() const override
Definition: TPad.h:215
ULong_t Hash() const override
Return hash value for this object.
Definition: TPad.h:262
Double_t GetX1() const override
Definition: TPad.h:235
Double_t GetHNDC() const override
Get height of pad along Y in Normalized Coordinates (NDC)
Definition: TPad.h:212
TPad * fMother
! pointer to mother of the list
Definition: TPad.h:102
void SetTheta(Double_t theta=30) override
Definition: TPad.h:351
const char * GetName() const override
Returns name of object.
Definition: TPad.h:255
Int_t XtoAbsPixel(Double_t x) const override
Definition: TPad.h:478
Bool_t fGridy
Set to true if grid along Y.
Definition: TPad.h:98
void SetBBoxY2(const Int_t y) override
Set bottom of BoundingBox to a value (resize in y direction on bottom)
Definition: TPad.cxx:7176
Double_t XtoPad(Double_t x) const override
Convert x from X to pad.
Definition: TPad.cxx:3381
Definition: TPoint.h:31
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
Definition: TQObject.h:164
Basic string class.
Definition: TString.h:136
const char * Data() const
Definition: TString.h:369
UInt_t Hash(ECaseCompare cmp=kExact) const
Return hash value.
Definition: TString.cxx:667
See TView3D.
Definition: TView.h:25
To make it possible to use GL for 2D graphic in a TPad/TCanvas.
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Definition: TVirtualPad.h:51
Abstract 3D shapes viewer.
RooCmdArg FillStyle(Style_t style)
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17
const Int_t n
Definition: legend1.C:16
Rectangle structure (maps to the X11 XRectangle structure)
Definition: GuiTypes.h:361