Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TVirtualPad.h
Go to the documentation of this file.
1// @(#)root/base:$Id$
2// Author: Rene Brun 05/12/95
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_TVirtualPad
13#define ROOT_TVirtualPad
14
15
16//////////////////////////////////////////////////////////////////////////
17// //
18// TVirtualPad //
19// //
20// Abstract base class for Pads and Canvases //
21// //
22// //
23//////////////////////////////////////////////////////////////////////////
24
25
26#include "TObject.h"
27#include "TAttLine.h"
28#include "TAttFill.h"
29#include "TAttPad.h"
30#include "TQObject.h"
31
32#include "GuiTypes.h"
33#include "Buttons.h"
34
35#include <utility>
36
37// forward declarations
38class TAxis;
39class TObject;
40class TObjLink;
41class TView;
42class TCanvas;
43class TCanvasImp;
44class TH1F;
45class TFrame;
46class TLegend;
47class TBox;
48class TString;
51
52class TVirtualPad : public TObject, public TAttLine, public TAttFill,
53 public TAttPad, public TQObject {
54
55public:
56
57 /** small helper class to store/restore gPad context in TPad methods */
58 class TContext {
61 public:
62 TContext(Bool_t _interactive = kFALSE);
63 TContext(TVirtualPad *gpad, Bool_t interactive = kFALSE, Bool_t not_null = kFALSE);
64 ~TContext();
65 auto IsInteractive() const { return fInteractive; }
66 auto GetSaved() const { return fSaved; }
67 void PadDeleted(TVirtualPad *pad);
68 };
69
70 /** Helper class to store interactive parameters for individual objects
71 * Should be used via MakeInteractive() / GetInteractive() / FreeInteractive() methods in the objects ExecuteEvent */
73 protected:
74 TObject *fObject = nullptr;
75 public:
76 TInteractive() = default;
77 virtual ~TInteractive() = default;
78 void SetObject(TObject *obj) { fObject = obj; }
79 TObject *GetObject() const { return fObject; }
80 };
81
82protected:
83
84 Bool_t fResizing; ///<!true when resizing the pad
85
86 void *GetSender() override { return this; } //used to set gTQSender
87
88 virtual TInteractive *Interactive(TObject * /* obj */ = nullptr, TInteractive * /* init */ = nullptr) { return nullptr; }
89
90public:
91
93 TVirtualPad(const char *name, const char *title, Double_t xlow,
94 Double_t ylow, Double_t xup, Double_t yup,
95 Color_t color=19, Short_t bordersize=4, Short_t bordermode=1);
96 virtual ~TVirtualPad();
97 virtual void AbsCoordinates(Bool_t set) = 0;
98 virtual Double_t AbsPixeltoX(Double_t px) = 0;
99 virtual Double_t AbsPixeltoY(Double_t py) = 0;
100 virtual void AbsPixeltoXY(Double_t xpixel, Double_t ypixel, Double_t &x, Double_t &y) = 0;
101 virtual void Add(TObject *obj, Option_t *opt = "", Bool_t modified = kTRUE) = 0;
102 virtual void AddFirst(TObject *obj, Option_t *opt = "", Bool_t modified = kTRUE) = 0;
103 virtual void AddExec(const char *name, const char *command) = 0;
104 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;
105 virtual TVirtualPad* cd(Int_t subpadnumber=0) = 0;
106 void Clear(Option_t *option="") override = 0;
107 virtual Int_t Clip(Double_t *x, Double_t *y, Double_t xclipl, Double_t yclipb, Double_t xclipr, Double_t yclipt) = 0;
108 virtual void Close(Option_t *option="") = 0;
109 virtual void CopyPixmap() = 0;
110 virtual void CopyPixmaps() = 0;
111 virtual void DeleteExec(const char *name) = 0;
112 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;
113 void Draw(Option_t *option="") override = 0;
114 virtual void DrawClassObject(const TObject *obj, Option_t *option="") = 0;
115 virtual TH1F *DrawFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax, const char *title="") = 0;
116 virtual void ExecuteEventAxis(Int_t event, Int_t px, Int_t py, TAxis *axis) = 0;
117 virtual void FeedbackMode(Bool_t set) = 0;
118 virtual void UnZoomed() { Emit("UnZoomed()"); } // *SIGNAL*
119 virtual Short_t GetBorderMode() const = 0;
120 virtual Short_t GetBorderSize() const = 0;
121 virtual Int_t GetCanvasID() const = 0;
122 virtual TCanvasImp *GetCanvasImp() const = 0;
123 virtual TCanvas *GetCanvas() const = 0;
124 virtual Int_t GetDoubleBuffer() const = 0;
125 virtual TVirtualPad *GetVirtCanvas() const = 0;
126 virtual Int_t GetEvent() const = 0;
127 virtual Int_t GetEventX() const = 0;
128 virtual Int_t GetEventY() const = 0;
129 virtual TFrame *GetFrame() = 0;
130 virtual Color_t GetHighLightColor() const = 0;
131 virtual Int_t GetNumber() const = 0;
132 virtual void GetRange(Double_t &x1, Double_t &y1, Double_t &x2, Double_t &y2) = 0;
134 virtual void GetPadPar(Double_t &xlow, Double_t &ylow, Double_t &xup, Double_t &yup) = 0;
135 virtual Double_t GetXlowNDC() const = 0;
136 virtual Double_t GetYlowNDC() const = 0;
137 virtual Double_t GetWNDC() const = 0;
138 virtual Double_t GetHNDC() const = 0;
139 virtual UInt_t GetWw() const = 0;
140 virtual UInt_t GetWh() const = 0;
141 virtual UInt_t GetPadWidth() const = 0;
142 virtual UInt_t GetPadHeight() const = 0;
143 virtual Double_t GetAbsXlowNDC() const = 0;
144 virtual Double_t GetAbsYlowNDC() const = 0;
145 virtual Double_t GetAbsWNDC() const = 0;
146 virtual Double_t GetAbsHNDC() const = 0;
147 virtual Double_t GetAspectRatio() const = 0;
148 virtual Double_t GetPhi() const = 0;
149 virtual Double_t GetTheta() const = 0;
150 virtual Double_t GetUxmin() const = 0;
151 virtual Double_t GetUymin() const = 0;
152 virtual Double_t GetUxmax() const = 0;
153 virtual Double_t GetUymax() const = 0;
154 virtual Bool_t GetGridx() const = 0;
155 virtual Bool_t GetGridy() const = 0;
156 virtual Int_t GetTickx() const = 0;
157 virtual Int_t GetTicky() const = 0;
158 virtual Double_t GetX1() const = 0;
159 virtual Double_t GetX2() const = 0;
160 virtual Double_t GetY1() const = 0;
161 virtual Double_t GetY2() const = 0;
162 virtual TList *GetListOfPrimitives() const = 0;
163 virtual TList *GetListOfExecs() const = 0;
164 virtual TObject *GetPrimitive(const char *name) const = 0;
165 virtual TObject *GetSelected() const = 0;
166 virtual TVirtualPad *GetPad(Int_t subpadnumber) const = 0;
167 virtual TObject *GetPadPointer() const = 0;
168 virtual TVirtualPad *GetPadSave() const = 0;
169 virtual TVirtualPad *GetSelectedPad() const = 0;
170 virtual TView *GetView() const = 0;
171 virtual Int_t GetLogx() const = 0;
172 virtual Int_t GetLogy() const = 0;
173 virtual Int_t GetLogz() const = 0;
174 virtual TVirtualPad *GetMother() const = 0;
175 const char *GetName() const override = 0;
176 const char *GetTitle() const override = 0;
177 virtual Int_t GetPadPaint() const = 0;
178 virtual Int_t GetPixmapID() const = 0;
179 virtual TObject *GetView3D() const = 0;
180 virtual Bool_t HasCrosshair() const = 0;
181 virtual void HighLight(Color_t col=kRed, Bool_t set=kTRUE) = 0;
182 virtual Bool_t HasFixedAspectRatio() const = 0;
183 virtual Bool_t IsBatch() const = 0;
184 Bool_t IsBeingResized() const { return fResizing; }
185 virtual Bool_t IsEditable() const = 0;
186 virtual Bool_t IsModified() const = 0;
187 virtual Bool_t IsRetained() const = 0;
188 virtual Bool_t IsVertical() const = 0;
189 virtual Bool_t IsWeb() const { return kFALSE; }
190 void ls(Option_t *option="") const override = 0;
191 virtual void Modified(Bool_t flag=1) = 0;
192 virtual void ModifiedUpdate() = 0;
193 virtual Bool_t OpaqueMoving() const = 0;
194 virtual Bool_t OpaqueResizing() const = 0;
195 virtual Double_t PadtoX(Double_t x) const = 0;
196 virtual Double_t PadtoY(Double_t y) const = 0;
197 void Paint(Option_t *option="") override = 0;
198 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;
200 virtual void PaintFillArea(Int_t n, Float_t *x, Float_t *y, Option_t *option="") = 0;
201 virtual void PaintFillArea(Int_t n, Double_t *x, Double_t *y, Option_t *option="") = 0;
206 virtual void PaintLine3D(Float_t *p1, Float_t *p2) = 0;
207 virtual void PaintLine3D(Double_t *p1, Double_t *p2) = 0;
208 virtual void PaintPolyLine(Int_t n, Float_t *x, Float_t *y, Option_t *option="") = 0;
209 virtual void PaintPolyLine(Int_t n, Double_t *x, Double_t *y, Option_t *option="") = 0;
210 virtual void PaintPolyLine3D(Int_t n, Double_t *p) = 0;
212 virtual void PaintPolyMarker(Int_t n, Float_t *x, Float_t *y, Option_t *option="") = 0;
214 virtual void PaintSegments(Int_t n, Double_t *x, Double_t *y, Option_t *option="");
215 virtual void PaintSegmentsNDC(Int_t n, Double_t *u, Double_t *v);
216 virtual void PaintMarker3D(Double_t x, Double_t y, Double_t z) = 0;
217 virtual void PaintModified() = 0;
218 virtual void PaintText(Double_t x, Double_t y, const char *text) = 0;
219 virtual void PaintText(Double_t x, Double_t y, const wchar_t *text) = 0;
220 virtual void PaintTextNDC(Double_t u, Double_t v, const char *text) = 0;
221 virtual void PaintTextNDC(Double_t u, Double_t v, const wchar_t *text) = 0;
222 virtual void PaintTextUrl(Double_t x, Double_t y, const char *text, const char *url) = 0;
223 virtual Double_t PixeltoX(Double_t px) = 0;
224 virtual Double_t PixeltoY(Double_t py) = 0;
225 virtual void PixeltoXY(Double_t xpixel, Double_t ypixel, Double_t &x, Double_t &y) = 0;
226 void Pop() override = 0;
227 void Print(const char *filename="") const override = 0;
228 virtual void Print(const char *filename, Option_t *option) = 0;
231 virtual void RangeAxisChanged() { Emit("RangeAxisChanged()"); } // *SIGNAL*
232 void RecursiveRemove(TObject *obj) override = 0;
233 virtual TObject *Remove(TObject *obj, Bool_t modified = kTRUE) = 0;
234 virtual void RedrawAxis(Option_t *option="") = 0;
235 virtual void ResetView3D(TObject *view = nullptr) = 0;
236 virtual void ResizePad(Option_t *option="") = 0;
237 void SaveAs(const char *filename="",Option_t *option="") const override = 0;
238 virtual void SetBatch(Bool_t batch=kTRUE) = 0;
239 virtual void SetBorderMode(Short_t bordermode) = 0;
240 virtual void SetBorderSize(Short_t bordersize) = 0;
241 virtual void SetCanvas(TCanvas *c) = 0;
242 virtual void SetCanvasSize(UInt_t ww, UInt_t wh) = 0;
243 virtual void SetCrosshair(Int_t crhair=1) = 0;
244 virtual void SetCursor(ECursor cursor) = 0;
245 virtual void SetDoubleBuffer(Int_t mode=1) = 0;
246 virtual void SetEditable(Bool_t mode=kTRUE) = 0;
247 virtual void SetFixedAspectRatio(Bool_t fixed = kTRUE) = 0;
248 virtual void SetGrid(Int_t valuex = 1, Int_t valuey = 1) = 0;
249 virtual void SetGridx(Int_t value = 1) = 0;
250 virtual void SetGridy(Int_t value = 1) = 0;
251 virtual void SetLogx(Int_t value = 1) = 0;
252 virtual void SetLogy(Int_t value = 1) = 0;
253 virtual void SetLogz(Int_t value = 1) = 0;
254 virtual void SetPad(const char *name, const char *title,
255 Double_t xlow, Double_t ylow, Double_t xup,
256 Double_t yup, Color_t color=35,
257 Short_t bordersize=5, Short_t bordermode=-1) = 0;
258 virtual void SetPad(Double_t xlow, Double_t ylow, Double_t xup, Double_t yup) = 0;
259 virtual void SetAttFillPS(Color_t color, Style_t style) = 0;
260 virtual void SetAttLinePS(Color_t color, Style_t style, Width_t lwidth) = 0;
261 virtual void SetAttMarkerPS(Color_t color, Style_t style, Size_t msize) = 0;
262 virtual void SetAttTextPS(Int_t align, Float_t angle, Color_t color, Style_t font, Float_t tsize) = 0;
263 virtual void SetName(const char *name) = 0;
264 virtual void SetSelected(TObject *obj) = 0;
265 virtual void SetTicks(Int_t valuex = 1, Int_t valuey = 1) = 0;
266 virtual void SetTickx(Int_t value = 1) = 0;
267 virtual void SetTicky(Int_t value = 1) = 0;
268 virtual void SetTitle(const char *title="") = 0;
269 virtual void SetTheta(Double_t theta=30) = 0;
270 virtual void SetPhi(Double_t phi=30) = 0;
271 virtual void SetToolTipText(const char *text, Long_t delayms = 1000) = 0;
272 virtual void SetVertical(Bool_t vert=kTRUE) = 0;
273 virtual void SetView(TView *view = nullptr) = 0;
274 virtual void SetViewer3D(TVirtualViewer3D * /*viewer3d*/) {}
275 virtual void ShowGuidelines(TObject *object, const Int_t event, const char mode = 'i', const bool cling = true) = 0;
276 virtual TObject *WaitPrimitive(const char *pname="", const char *emode="") = 0;
277 virtual void Update() = 0;
278 virtual void UpdateAsync() = 0;
279 virtual Int_t UtoAbsPixel(Double_t u) const = 0;
280 virtual Int_t VtoAbsPixel(Double_t v) const = 0;
281 virtual Int_t UtoPixel(Double_t u) const = 0;
282 virtual Int_t VtoPixel(Double_t v) const = 0;
283 virtual Int_t XtoAbsPixel(Double_t x) const = 0;
284 virtual Int_t YtoAbsPixel(Double_t y) const = 0;
285 virtual Int_t HtoAbsPixel(Double_t y1, Double_t y2) const = 0;
286 virtual Int_t WtoAbsPixel(Double_t x1, Double_t x2) const = 0;
287 virtual void XYtoAbsPixel(Double_t x, Double_t y, Int_t &xpixel, Int_t &ypixel) const = 0;
288 virtual void XYtoAbsPixel(Double_t x, Double_t y, Double_t &xpixel, Double_t &ypixel) const = 0;
289 virtual Double_t XtoPad(Double_t x) const = 0;
290 virtual Double_t YtoPad(Double_t y) const = 0;
291 virtual Int_t XtoPixel(Double_t x) const = 0;
292 virtual Int_t YtoPixel(Double_t y) const = 0;
293 virtual void XYtoPixel(Double_t x, Double_t y, Int_t &xpixel, Int_t &ypixel) const = 0;
294 virtual void XYtoPixel(Double_t x, Double_t y, Double_t &xpixel, Double_t &ypixel) const = 0;
295
296 template<typename T, typename... Rest>
297 T *MakeInteractive(TObject *obj, Rest&&... rest)
298 {
299 auto inter = new T(std::forward<Rest>(rest)...);
300 Interactive(obj, inter);
301 return inter;
302 }
303
304 template<typename T>
305 T *GetInteractive(TObject *obj) { return dynamic_cast<T *>(Interactive(obj)); }
306
307 void FreeInteractive(TObject *obj);
308
309 virtual Int_t IncrementPaletteColor(Int_t i, const TString &opt) = 0;
310 virtual Int_t NextPaletteColor() = 0;
311
312 virtual Bool_t PlaceBox(TObject *o, Double_t w, Double_t h, Double_t &xl, Double_t &yb, Option_t* opt = "lb") = 0;
313
314 virtual TObject *CreateToolTip(const TBox *b, const char *text, Long_t delayms) = 0;
315 virtual void DeleteToolTip(TObject *tip) = 0;
316 virtual void ResetToolTip(TObject *tip) = 0;
317 virtual void CloseToolTip(TObject *tip) = 0;
318
320 virtual Bool_t HasViewer3D() const = 0;
321 virtual void ReleaseViewer3D(Option_t * type = "") = 0;
322
323 virtual Int_t GetGLDevice() = 0;
324 virtual void SetCopyGLDevice(Bool_t copy) = 0;
326
327 virtual Bool_t PadInSelectionMode() const;
328 virtual Bool_t PadInHighlightMode() const;
329
330 virtual void PushTopLevelSelectable(TObject *top);
331 virtual void PushSelectableObject(TObject *obj);
332 virtual void PopTopLevelSelectable();
333
334 static TVirtualPad *&Pad();
335
336 ClassDefOverride(TVirtualPad,3) //Abstract base class for Pads and Canvases
337};
338
339//
340//Small scope-guard class to add/remove object's into pad's stack of selectable objects.
341//Does nothing, unless you implement non-standard picking.
342//
343
345public:
348
349private:
352};
353
354
355#define gPad (TVirtualPad::Pad())
356R__EXTERN Int_t (*gThreadXAR)(const char *xact, Int_t nb, void **ar, Int_t *iret);
357
358#endif
#define R__EXTERN
Definition DllImport.h:26
ECursor
Definition GuiTypes.h:373
#define b(i)
Definition RSha256.hxx:100
#define c(i)
Definition RSha256.hxx:101
#define h(i)
Definition RSha256.hxx:106
cudaEvent_t event
short Style_t
Style number (short)
Definition RtypesCore.h:97
int Int_t
Signed integer 4 bytes (int)
Definition RtypesCore.h:60
short Color_t
Color number (short)
Definition RtypesCore.h:100
float Size_t
Attribute size (float)
Definition RtypesCore.h:104
long Long_t
Signed long integer 4 bytes (long). Size depends on architecture.
Definition RtypesCore.h:69
short Width_t
Line width (short)
Definition RtypesCore.h:99
float Float_t
Float 4 bytes (float)
Definition RtypesCore.h:72
short Short_t
Signed Short integer 2 bytes (short)
Definition RtypesCore.h:54
constexpr Bool_t kFALSE
Definition RtypesCore.h:109
double Double_t
Double 8 bytes.
Definition RtypesCore.h:74
constexpr Bool_t kTRUE
Definition RtypesCore.h:108
const char Option_t
Option string (const char)
Definition RtypesCore.h:81
@ kRed
Definition Rtypes.h:66
#define ClassDefOverride(name, id)
Definition Rtypes.h:347
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 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:142
float xmin
float ymin
float xmax
float ymax
R__EXTERN Int_t(* gThreadXAR)(const char *xact, Int_t nb, void **ar, Int_t *iret)
Fill Area Attributes class.
Definition TAttFill.h:21
Line Attributes class.
Definition TAttLine.h:21
Manages default Pad attributes.
Definition TAttPad.h:19
Class to manage histogram axis.
Definition TAxis.h:32
Create a Box.
Definition TBox.h:22
ABC describing GUI independent main window (with menubar, scrollbars and a drawing area).
Definition TCanvasImp.h:31
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:878
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:42
TPickerStackGuard & operator=(const TPickerStackGuard &rhs)=delete
TPickerStackGuard(const TPickerStackGuard &rhs)=delete
~TPickerStackGuard()
Guard does out of scope, pop object from stack.
TPickerStackGuard(TObject *obj)
Scope-guards ctor, pushe the object on stack.
/**
Definition TQObject.h:48
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
Definition TQObject.h:164
Basic string class.
Definition TString.h:137
See TView3D.
Definition TView.h:25
To make it possible to use GL for 2D graphic in a TPad/TCanvas.
small helper class to store/restore gPad context in TPad methods
Definition TVirtualPad.h:58
auto GetSaved() const
Definition TVirtualPad.h:66
~TContext()
Destructor Restores previous value of gPad.
TContext(Bool_t _interactive=kFALSE)
Constructor which just store gPad.
auto IsInteractive() const
Definition TVirtualPad.h:65
TVirtualPad * fSaved
Definition TVirtualPad.h:60
void PadDeleted(TVirtualPad *pad)
Inform context that pad deleted or will be deleted soon Reference on that pad should be cleared.
Helper class to store interactive parameters for individual objects Should be used via MakeInteractiv...
Definition TVirtualPad.h:72
virtual ~TInteractive()=default
void SetObject(TObject *obj)
Definition TVirtualPad.h:78
TObject * GetObject() const
Definition TVirtualPad.h:79
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Definition TVirtualPad.h:53
virtual void PaintFillAreaNDC(Int_t n, Double_t *x, Double_t *y, Option_t *option="")=0
virtual void Modified(Bool_t flag=1)=0
virtual Bool_t PadInHighlightMode() const
Should always return false, unless you can highlight selected object in pad.
virtual void SetTickx(Int_t value=1)=0
virtual void SetAttMarkerPS(Color_t color, Style_t style, Size_t msize)=0
virtual Int_t Clip(Double_t *x, Double_t *y, Double_t xclipl, Double_t yclipb, Double_t xclipr, Double_t yclipt)=0
virtual void SetGrid(Int_t valuex=1, Int_t valuey=1)=0
virtual void CloseToolTip(TObject *tip)=0
virtual void SetCanvasSize(UInt_t ww, UInt_t wh)=0
virtual Double_t PadtoX(Double_t x) const =0
virtual void PaintFillArea(Int_t n, Float_t *x, Float_t *y, Option_t *option="")=0
virtual Int_t YtoAbsPixel(Double_t y) const =0
virtual void SetEditable(Bool_t mode=kTRUE)=0
virtual void SetLogx(Int_t value=1)=0
virtual TObject * GetPadPointer() const =0
virtual Double_t GetUymax() const =0
virtual void PaintTextNDC(Double_t u, Double_t v, const char *text)=0
virtual TVirtualPad * GetSelectedPad() const =0
virtual Double_t GetX2() const =0
virtual void SetBatch(Bool_t batch=kTRUE)=0
virtual void PaintPolyLine3D(Int_t n, Double_t *p)=0
virtual TList * GetListOfPrimitives() const =0
virtual Int_t YtoPixel(Double_t y) const =0
virtual void GetPadPar(Double_t &xlow, Double_t &ylow, Double_t &xup, Double_t &yup)=0
void Print(const char *filename="") const override=0
This method must be overridden when a class wants to print itself.
virtual Int_t GetLogz() const =0
virtual void UpdateAsync()=0
virtual Int_t NextPaletteColor()=0
void Pop() override=0
Pop on object drawn in a pad to the top of the display list.
virtual void PaintLine3D(Float_t *p1, Float_t *p2)=0
virtual 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)=0
virtual void PaintMarker3D(Double_t x, Double_t y, Double_t z)=0
virtual TVirtualPad * cd(Int_t subpadnumber=0)=0
void Draw(Option_t *option="") override=0
Default Draw method for all objects.
virtual void HighLight(Color_t col=kRed, Bool_t set=kTRUE)=0
virtual void PaintPolyLineNDC(Int_t n, Double_t *x, Double_t *y, Option_t *option="")=0
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
virtual Bool_t IsWeb() const
virtual Int_t GetDoubleBuffer() const =0
virtual void SetSelected(TObject *obj)=0
virtual Double_t GetAbsYlowNDC() const =0
virtual TObject * CreateToolTip(const TBox *b, const char *text, Long_t delayms)=0
virtual void AbsCoordinates(Bool_t set)=0
virtual void PaintPolyMarker(Int_t n, Float_t *x, Float_t *y, Option_t *option="")=0
virtual Bool_t IsVertical() const =0
virtual void SetCrosshair(Int_t crhair=1)=0
virtual Double_t PixeltoY(Double_t py)=0
virtual TFrame * GetFrame()=0
virtual Double_t AbsPixeltoX(Double_t px)=0
virtual Bool_t IsBatch() const =0
virtual UInt_t GetWh() const =0
virtual Int_t XtoAbsPixel(Double_t x) const =0
virtual Double_t GetY1() const =0
virtual Int_t HtoAbsPixel(Double_t y1, Double_t y2) const =0
virtual void SetGridx(Int_t value=1)=0
virtual void PixeltoXY(Double_t xpixel, Double_t ypixel, Double_t &x, Double_t &y)=0
virtual TH1F * DrawFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax, const char *title="")=0
virtual ~TVirtualPad()
VirtualPad destructor.
virtual TVirtualPadPainter * GetPainter()=0
virtual void PaintLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2)=0
virtual void PaintTextNDC(Double_t u, Double_t v, const wchar_t *text)=0
virtual Bool_t GetGridx() const =0
virtual void PaintTextUrl(Double_t x, Double_t y, const char *text, const char *url)=0
virtual TObject * Remove(TObject *obj, Bool_t modified=kTRUE)=0
virtual void RedrawAxis(Option_t *option="")=0
virtual void Print(const char *filename, Option_t *option)=0
virtual Bool_t PlaceBox(TObject *o, Double_t w, Double_t h, Double_t &xl, Double_t &yb, Option_t *opt="lb")=0
virtual void XYtoPixel(Double_t x, Double_t y, Int_t &xpixel, Int_t &ypixel) const =0
virtual TVirtualViewer3D * GetViewer3D(Option_t *type="")=0
virtual TVirtualPad * GetMother() const =0
virtual Int_t GetEventX() const =0
virtual void Update()=0
virtual void SetTheta(Double_t theta=30)=0
const char * GetName() const override=0
Returns name of object.
virtual void PaintPolyMarker(Int_t n, Double_t *x, Double_t *y, Option_t *option="")=0
virtual TObject * GetSelected() const =0
virtual void SetTitle(const char *title="")=0
virtual void Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2)=0
virtual TVirtualPad * GetPad(Int_t subpadnumber) const =0
virtual void SetCopyGLDevice(Bool_t copy)=0
virtual void SetDoubleBuffer(Int_t mode=1)=0
virtual void PaintBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Option_t *option="")=0
virtual TList * GetListOfExecs() const =0
virtual Int_t GetPadPaint() const =0
virtual Int_t GetTicky() const =0
virtual void UnZoomed()
virtual void SetLogz(Int_t value=1)=0
Bool_t IsBeingResized() const
virtual Int_t UtoAbsPixel(Double_t u) const =0
virtual void SetVertical(Bool_t vert=kTRUE)=0
virtual void CopyPixmap()=0
virtual Bool_t PadInSelectionMode() const
Should always return false unless you have non-standard picking.
virtual void SetAttLinePS(Color_t color, Style_t style, Width_t lwidth)=0
virtual void GetRangeAxis(Double_t &xmin, Double_t &ymin, Double_t &xmax, Double_t &ymax)=0
virtual UInt_t GetPadWidth() const =0
virtual Int_t GetNumber() const =0
virtual Double_t PadtoY(Double_t y) const =0
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
virtual void SetAttTextPS(Int_t align, Float_t angle, Color_t color, Style_t font, Float_t tsize)=0
virtual Bool_t HasFixedAspectRatio() const =0
virtual void ResetView3D(TObject *view=nullptr)=0
virtual void PushTopLevelSelectable(TObject *top)
Does nothing, unless you implement your own picking.
virtual TInteractive * Interactive(TObject *=nullptr, TInteractive *=nullptr)
Definition TVirtualPad.h:88
virtual void SetViewer3D(TVirtualViewer3D *)
virtual Double_t GetUxmax() const =0
virtual void SetView(TView *view=nullptr)=0
virtual void AbsPixeltoXY(Double_t xpixel, Double_t ypixel, Double_t &x, Double_t &y)=0
virtual Double_t YtoPad(Double_t y) const =0
T * GetInteractive(TObject *obj)
void * GetSender() override
Definition TVirtualPad.h:86
virtual Bool_t IsRetained() const =0
virtual void PaintFillArea(Int_t n, Double_t *x, Double_t *y, Option_t *option="")=0
virtual Int_t IncrementPaletteColor(Int_t i, const TString &opt)=0
virtual void SetPad(Double_t xlow, Double_t ylow, Double_t xup, Double_t yup)=0
virtual void Add(TObject *obj, Option_t *opt="", Bool_t modified=kTRUE)=0
virtual void SetToolTipText(const char *text, Long_t delayms=1000)=0
virtual void XYtoAbsPixel(Double_t x, Double_t y, Double_t &xpixel, Double_t &ypixel) const =0
virtual void PaintPolyLine(Int_t n, Float_t *x, Float_t *y, Option_t *option="")=0
void SaveAs(const char *filename="", Option_t *option="") const override=0
Save this object in the file specified by filename.
virtual void SetTicks(Int_t valuex=1, Int_t valuey=1)=0
virtual Int_t GetPixmapID() const =0
virtual void PaintSegmentsNDC(Int_t n, Double_t *u, Double_t *v)
Paint N individual segments in NDC coordinates Provided arrays should have 2*n elements.
virtual void SetAttFillPS(Color_t color, Style_t style)=0
virtual void ResetToolTip(TObject *tip)=0
virtual void SetTicky(Int_t value=1)=0
virtual void PushSelectableObject(TObject *obj)
Does nothing, unless you implement your own picking.
virtual TCanvasImp * GetCanvasImp() const =0
virtual Double_t PixeltoX(Double_t px)=0
virtual void RangeAxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax)=0
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
virtual Int_t VtoPixel(Double_t v) const =0
virtual Int_t GetLogy() const =0
virtual void SetGridy(Int_t value=1)=0
void Paint(Option_t *option="") override=0
This method must be overridden if a class wants to paint itself.
virtual void XYtoAbsPixel(Double_t x, Double_t y, Int_t &xpixel, Int_t &ypixel) const =0
virtual Double_t GetAbsWNDC() const =0
virtual void PaintModified()=0
virtual TObject * GetView3D() const =0
virtual Int_t GetGLDevice()=0
virtual void ModifiedUpdate()=0
virtual void XYtoPixel(Double_t x, Double_t y, Double_t &xpixel, Double_t &ypixel) const =0
void ls(Option_t *option="") const override=0
The ls function lists the contents of a class on stdout.
virtual void AddExec(const char *name, const char *command)=0
void RecursiveRemove(TObject *obj) override=0
Recursively remove this object from a list.
virtual UInt_t GetPadHeight() const =0
T * MakeInteractive(TObject *obj, Rest &&... rest)
virtual Int_t WtoAbsPixel(Double_t x1, Double_t x2) const =0
virtual void Close(Option_t *option="")=0
virtual void PaintLineNDC(Double_t u1, Double_t v1, Double_t u2, Double_t v2)=0
virtual Double_t GetHNDC() const =0
virtual TVirtualPad * GetPadSave() const =0
virtual Double_t GetAbsXlowNDC() const =0
TVirtualPad()
VirtualPad default constructor.
virtual void ShowGuidelines(TObject *object, const Int_t event, const char mode='i', const bool cling=true)=0
const char * GetTitle() const override=0
Returns title of object.
virtual Double_t XtoPad(Double_t x) const =0
virtual Bool_t IsModified() const =0
virtual void ExecuteEventAxis(Int_t event, Int_t px, Int_t py, TAxis *axis)=0
virtual void PaintPolyLine(Int_t n, Double_t *x, Double_t *y, Option_t *option="")=0
virtual void PaintPadFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax)=0
virtual Double_t GetAspectRatio() const =0
virtual void ReleaseViewer3D(Option_t *type="")=0
virtual Int_t VtoAbsPixel(Double_t v) const =0
virtual void PaintText(Double_t x, Double_t y, const char *text)=0
virtual void RangeAxisChanged()
virtual Double_t GetAbsHNDC() const =0
virtual Double_t GetY2() const =0
virtual Double_t GetTheta() const =0
virtual Double_t GetUymin() const =0
virtual void PaintLine3D(Double_t *p1, Double_t *p2)=0
virtual Int_t GetEvent() const =0
virtual Double_t GetUxmin() const =0
virtual Int_t XtoPixel(Double_t x) const =0
virtual TObject * WaitPrimitive(const char *pname="", const char *emode="")=0
static TVirtualPad *& Pad()
Return the current pad for the current thread.
virtual Double_t GetPhi() const =0
virtual Int_t UtoPixel(Double_t u) const =0
virtual void PaintText(Double_t x, Double_t y, const wchar_t *text)=0
virtual Bool_t OpaqueResizing() const =0
virtual void SetFixedAspectRatio(Bool_t fixed=kTRUE)=0
virtual Double_t GetWNDC() const =0
virtual Double_t GetYlowNDC() const =0
virtual void DrawClassObject(const TObject *obj, Option_t *option="")=0
virtual UInt_t GetWw() const =0
virtual Int_t GetCanvasID() const =0
virtual Int_t GetTickx() const =0
virtual Bool_t HasViewer3D() const =0
virtual Short_t GetBorderMode() const =0
virtual Double_t AbsPixeltoY(Double_t py)=0
virtual void GetRange(Double_t &x1, Double_t &y1, Double_t &x2, Double_t &y2)=0
Bool_t fResizing
!true when resizing the pad
Definition TVirtualPad.h:84
virtual void DeleteExec(const char *name)=0
virtual void PopTopLevelSelectable()
Does nothing, unless you implement your own picking.
virtual void SetCanvas(TCanvas *c)=0
virtual void DeleteToolTip(TObject *tip)=0
virtual void SetPhi(Double_t phi=30)=0
virtual void SetCursor(ECursor cursor)=0
virtual TView * GetView() const =0
virtual void CopyPixmaps()=0
virtual void FeedbackMode(Bool_t set)=0
virtual Color_t GetHighLightColor() const =0
virtual Int_t GetLogx() const =0
virtual void SetLogy(Int_t value=1)=0
virtual Short_t GetBorderSize() const =0
virtual void SetBorderMode(Short_t bordermode)=0
virtual Int_t GetEventY() const =0
virtual Double_t GetXlowNDC() const =0
virtual TVirtualPad * GetVirtCanvas() const =0
virtual TCanvas * GetCanvas() const =0
virtual Bool_t HasCrosshair() const =0
virtual Bool_t IsEditable() const =0
void FreeInteractive(TObject *obj)
Release interactive instance for specified object.
virtual void AddFirst(TObject *obj, Option_t *opt="", Bool_t modified=kTRUE)=0
virtual Double_t GetX1() const =0
virtual TObject * GetPrimitive(const char *name) const =0
virtual void SetBorderSize(Short_t bordersize)=0
void Clear(Option_t *option="") override=0
virtual void SetName(const char *name)=0
virtual void ResizePad(Option_t *option="")=0
virtual Bool_t GetGridy() const =0
virtual void PaintSegments(Int_t n, Double_t *x, Double_t *y, Option_t *option="")
Paint N individual segments Provided arrays should have 2*n elements IMPORTANT! Provided arrays can b...
virtual Bool_t OpaqueMoving() const =0
Abstract 3D shapes viewer.
Double_t y[n]
Definition legend1.C:17
Double_t x[n]
Definition legend1.C:17
const Int_t n
Definition legend1.C:16