72 const char *defcanvas =
gROOT->GetDefCanvasName();
76 Int_t n = lc->GetSize() + 1;
78 while(lc->FindObject(cdef.
Data()))
79 cdef.
Form(
"%s_n%d", defcanvas,
n++);
207 if ((*
gThreadXAR)(
"CANV", 2, arr,
nullptr))
return;
304 static Int_t ww = 500;
305 static Int_t wh = 500;
306 arr[1] =
this; arr[2] = (
void*)
name; arr[3] = (
void*)title; arr[4] =&ww; arr[5] = &wh;
307 if ((*
gThreadXAR)(
"CANV", 6, arr,
nullptr))
return;
322 Warning(
"Constructor",
"Deleting canvas with same name: %s",
name);
325 if (
gROOT->IsBatch()) {
341 if (form < 1 || form > 20) form = 1;
343 Int_t ux, uy, cw, ch;
406 arr[1] =
this; arr[2] = (
void*)
name; arr[3] = (
void*)title; arr[4] =&ww; arr[5] = &wh;
407 if ((*
gThreadXAR)(
"CANV", 6, arr,
nullptr))
return;
417 Error(
"Constructor",
"Invalid canvas height: %d",wh);
425 Warning(
"Constructor",
"Deleting canvas with same name: %s",
name);
428 if (
gROOT->IsBatch()) {
473 :
TPad(), fDoubleBuffer(0)
496 arr[1] =
this; arr[2] = (
void*)
name; arr[3] = (
void*)title;
497 arr[4] = &wtopx; arr[5] = &wtopy; arr[6] = &ww; arr[7] = &wh;
498 if ((*
gThreadXAR)(
"CANV", 8, arr,
nullptr))
return;
512 Warning(
"Constructor",
"Deleting canvas with same name: %s",
name);
515 if (
gROOT->IsBatch()) {
622 }
else if (
IsWeb()) {
630 pp->SetAttFill({1, 1001});
631 pp->SetAttLine({1, 1, 1});
632 pp->SetAttMarker({1, 1, 1});
651 gROOT->GetListOfCanvases()->Add(
this);
714 if ((*
gThreadXAR)(
"CDEL", 2, arr,
nullptr))
return;
766 while ((obj=next())) {
829 gROOT->GetListOfCanvases()->Remove(
this);
835 if (cansave ==
this) {
885 if (old) {
gROOT->GetListOfCanvases()->Remove(old);
delete old;}
895 if (
gROOT->IsBatch()) {
938 auto selpad =
gROOT->GetSelectedPad();
940 if (pad ==
this) pad = selpad;
941 if (!padsav || !pad || pad ==
this) {
972 while (
auto obj = next()) {
979 if (padsav) padsav->cd();
991 const Int_t kTMAX=256;
992 static char atext[kTMAX];
1003 snprintf(atext, kTMAX,
"%c", (
char) px);
1005 snprintf(atext, kTMAX,
"%d,%d", px, py);
1009 TAxis *xaxis =
nullptr;
1010 if ( selected->InheritsFrom(
"TH1") )
1011 xaxis = ((
TH1*)selected)->GetXaxis();
1012 else if ( selected->InheritsFrom(
"TGraph") )
1013 xaxis = ((
TGraph*)selected)->GetXaxis();
1014 else if ( selected->InheritsFrom(
"TAxis") )
1015 xaxis = (
TAxis*)selected;
1017 TString objinfo = selected->GetObjectInfo(px,py);
1028 if (lnF - idF == 21) {
1029 time_format = time_format(idF+2, lnF);
1037 snprintf(atext, kTMAX,
"%s, y=%g",
1123 if (
gROOT->GetEditorMode()) {
1260 pad =
Pick(px, py, prevSelObj);
1302 pad =
Pick(px, py, prevSelObj);
1369 pad =
Pick(px, py, prevSelObj);
1386 while (
auto tc =
dynamic_cast<TCanvas *
>(next()))
1413 pad =
Pick(px, py, prevSelObj);
1449 pad =
Pick(px, py, prevSelObj);
1467 pad =
Pick(px, py, prevSelObj);
1541 auto c =
new TCanvas(cdef.Data(), cdef.Data(), 1);
1543 ::Info(
"TCanvas::MakeDefCanvas",
" created default TCanvas with name %s", cdef.Data());
1583 if (!pad)
return nullptr;
1622 Emit(
"Picked(TPad*,TObject*,Int_t)", args);
1642 Emit(
"Highlighted(TVirtualPad*,TObject*,Int_t,Int_t)", args);
1654 Connect(
"Highlighted(TVirtualPad*,TObject*,Int_t,Int_t)",
nullptr,
nullptr, slot);
1668 Emit(
"Selected(TVirtualPad*,TObject*,Int_t)", args);
1683 Emit(
"ProcessedEvent(Int_t,Int_t,Int_t,TObject*)", args);
1728 nww =
fCw; nwh = twh;
1740 nww =
fCw; nwh = twh;
1808 if (
gROOT->GetEditHistograms())
1809 out <<
" gROOT->SetEditHistograms();\n";
1812 out <<
" " <<
GetName() <<
"->ToggleEventStatus();\n";
1815 out <<
" " <<
GetName() <<
"->ToggleToolTips();\n";
1818 out <<
" " <<
GetName() <<
"->ToggleToolBar();\n";
1838 gROOT->ResetClassSaved();
1844 if (
cname.IsNull()) {
1855 fname =
cname +
".C";
1859 out.open(fname.
Data(), std::ios::out);
1861 Error(
"SaveSource",
"Cannot open file: %s", fname.
Data());
1867 out.precision(precision);
1875 Error(
"SaveSource",
"Cannot open TCanvas");
1890 out << R
"CODE(#ifdef __CLING__
1891#pragma cling optimize(0)
1900 if (!first.
IsDigit()) out <<
"void " << mname(s,
p-s) <<
"()" << std::endl;
1902 out <<
"{"<<std::endl;
1903 out <<
"//=========Macro generated from canvas: "<<
GetName()<<
"/"<<
GetTitle()<<std::endl;
1904 out <<
"//========= ("<<t.
AsString()<<
") by ROOT version "<<
gROOT->GetVersion()<<std::endl;
1907 out <<std::endl<<
" gStyle->SetCanvasPreferGL(kTRUE);"<<std::endl<<std::endl;
1915 out <<
" TCanvas *" <<
cname <<
" = new TCanvas(\"" <<
GetName() <<
"\", \""
1917 <<
", " <<
w <<
", " <<
h <<
");\n";
1923 if (
gROOT->GetEditHistograms())
1924 out <<
" gROOT->SetEditHistograms();\n";
1926 out <<
" " <<
GetName() <<
"->ToggleEventStatus();\n";
1928 out <<
" " <<
GetName() <<
"->ToggleToolTips();\n";
1940 out <<
" " <<
GetName() <<
"->SetSelected(" <<
GetName() <<
");\n";
1942 out <<
" " <<
GetName() <<
"->ToggleToolBar();\n";
1948 Info(
"SaveSource",
"C++ Macro file: %s has been generated", fname.
Data());
1951 gROOT->ResetClassSaved();
2025 Error(
"SetAspectRatio",
"cannot fix aspect ratio, height of canvas is 0");
2098 Double_t ratio2 = xlength2/ylength2;
2107 }
else if (axis==2) {
2111 Error(
"SetRealAspectRatio",
"axis value %d is neither 1 (resize along x-axis) nor 2 (resize along y-axis).",axis);
2133 ratio2 = xlength2/ylength2;
2139 Error(
"SetRealAspectRatio",
"Resizing failed.");
2193 if (!was_web &&
IsWeb()) {
2199 }
else if (was_web && !imp) {
2250 if (
b.IsReading()) {
2255 if (
v>7)
b.ClassMember(
"TPad");
2261 auto root_colors =
dynamic_cast<TObjArray *
>(
gROOT->GetListOfColors());
2264 while (
auto colold =
static_cast<TColor *
>(next())) {
2265 Int_t cn = colold->GetNumber();
2268 colcur->
SetName(colold->GetName());
2269 colcur->
SetRGB(colold->GetRed(), colold->GetGreen(), colold->GetBlue());
2270 colcur->
SetAlpha(colold->GetAlpha());
2273 if (root_colors) root_colors->Remove(colcur);
2276 colors->Remove(colold);
2279 root_colors->AddAtAndExpand(colold, cn);
2284 [[maybe_unused]]
TColor*
const colnew =
new TColor(cn, colold->GetRed(), colold->GetGreen(), colold->GetBlue(), colold->GetName(), colold->GetAlpha());
2287 assert(root_colors->At(cn) == colnew);
2295 TIter nextcol(palette);
2296 Int_t number = palette->GetEntries();
2299 while (
auto col =
static_cast<TColor *
>(nextcol()))
2300 palcolors[i++] = col->GetNumber();
2310 if (
v>7)
b.ClassMember(
"fDISPLAY",
"TString");
2312 if (
v>7)
b.ClassMember(
"fDoubleBuffer",
"Int_t");
2314 if (
v>7)
b.ClassMember(
"fRetained",
"Bool_t");
2316 if (
v>7)
b.ClassMember(
"fXsizeUser",
"Size_t");
2318 if (
v>7)
b.ClassMember(
"fYsizeUser",
"Size_t");
2320 if (
v>7)
b.ClassMember(
"fXsizeReal",
"Size_t");
2322 if (
v>7)
b.ClassMember(
"fYsizeReal",
"Size_t");
2325 if (
v>7)
b.ClassMember(
"fWindowTopX",
"Int_t");
2327 if (
v>7)
b.ClassMember(
"fWindowTopY",
"Int_t");
2330 if (
v>7)
b.ClassMember(
"fWindowWidth",
"UInt_t");
2332 if (
v>7)
b.ClassMember(
"fWindowHeight",
"UInt_t");
2335 if (
v>7)
b.ClassMember(
"fCw",
"UInt_t");
2337 if (
v>7)
b.ClassMember(
"fCh",
"UInt_t");
2343 if (
v>7)
b.ClassMember(
"fCatt",
"TAttCanvas");
2346 if (
v>7)
b.ClassMember(
"kMoveOpaque",
"Bool_t");
2348 if (
v>7)
b.ClassMember(
"kResizeOpaque",
"Bool_t");
2350 if (
v>7)
b.ClassMember(
"fHighLightColor",
"Color_t");
2352 if (
v>7)
b.ClassMember(
"fBatch",
"Bool_t");
2355 if (
v>7)
b.ClassMember(
"kShowEventStatus",
"Bool_t");
2359 if (
v>7)
b.ClassMember(
"kAutoExec",
"Bool_t");
2362 if (
v>7)
b.ClassMember(
"kMenuBar",
"Bool_t");
2373 TObjArray *CurrentColorPalette =
nullptr;
2389 CurrentColorPalette->
SetName(
"CurrentColorPalette");
2390 for (
Int_t i=0; i<palsize; i++) CurrentColorPalette->
Add(
gROOT->GetColor(pal[i]));
2396 b.ClassMember(
"TPad");
2399 if (CurrentColorPalette) {
fPrimitives->
Remove(CurrentColorPalette);
delete CurrentColorPalette; }
2400 b.ClassMember(
"fDISPLAY",
"TString");
2402 b.ClassMember(
"fDoubleBuffer",
"Int_t");
2404 b.ClassMember(
"fRetained",
"Bool_t");
2406 b.ClassMember(
"fXsizeUser",
"Size_t");
2408 b.ClassMember(
"fYsizeUser",
"Size_t");
2410 b.ClassMember(
"fXsizeReal",
"Size_t");
2412 b.ClassMember(
"fYsizeReal",
"Size_t");
2418 b.ClassMember(
"fWindowTopX",
"Int_t");
2420 b.ClassMember(
"fWindowTopY",
"Int_t");
2422 b.ClassMember(
"fWindowWidth",
"UInt_t");
2424 b.ClassMember(
"fWindowHeight",
"UInt_t");
2426 b.ClassMember(
"fCw",
"UInt_t");
2428 b.ClassMember(
"fCh",
"UInt_t");
2430 b.ClassMember(
"fCatt",
"TAttCanvas");
2432 b.ClassMember(
"kMoveOpaque",
"Bool_t");
2434 b.ClassMember(
"kResizeOpaque",
"Bool_t");
2436 b.ClassMember(
"fHighLightColor",
"Color_t");
2438 b.ClassMember(
"fBatch",
"Bool_t");
2440 b.ClassMember(
"kShowEventStatus",
"Bool_t");
2442 b.ClassMember(
"kAutoExec",
"Bool_t");
2444 b.ClassMember(
"kMenuBar",
"Bool_t");
2447 b.SetByteCount(R__c,
kTRUE);
2511 if (
auto pp =
gPad->GetPainter())
2512 return pp->IsSupportAlpha();
2517 static_cast<TCanvas*
>(TheCanvas)->Update();
2531 static const union CastFromFuncToVoidPtr_t {
2533 void (*fFuncPtr)(
void*);
2535 } castFromFuncToVoidPtr;
2540 arr[2] = castFromFuncToVoidPtr.fVoidPtr;
2541 if ((*
gThreadXAR)(
"CUPD", 3, arr,
nullptr))
return;
2575 if (need_rapaint &
mask) {
2581 if (useXor && (need_rapaint & 4)) {
2669 Error(
"CreatePainter",
"GL Painter creation failed! Will use default!");
2743 std::vector<TPad *> canvases;
2745 while (
auto c =
dynamic_cast<TCanvas *
>(iter()))
2746 canvases.emplace_back(
c);
2748 if (canvases.empty()) {
2749 ::Warning(
"TCanvas::SaveAll",
"No pads are provided");
2760 if ((pads.size() == 1) && !hasArg) {
2765 auto p = fname.
Last(
'.');
2767 ext = fname(
p+1, fname.
Length() -
p - 1);
2771 ::Warning(
"TCanvas::SaveAll",
"Extension is not provided in file name %s, append .png",
filename);
2776 if (ext !=
"pdf" && ext !=
"ps" && ext !=
"root" && ext !=
"html" && ext !=
"xml" && !hasArg) {
2781 static std::vector<TString> webExtensions = {
"png",
"json",
"html",
"svg",
"pdf",
"jpg",
"jpeg",
"webp" };
2783 if (
gROOT->IsWebDisplay() || (ext ==
"html")) {
2785 for (
auto &wext : webExtensions) {
2786 if ((isSupported = (wext == ext)))
2791 auto cmd =
TString::Format(
"TWebCanvas::ProduceImages( *((std::vector<TPad *> *) 0x%zx), \"%s\");", (
size_t) &pads, fname.
Data());
2796 if ((ext !=
"root") && (ext !=
"xml"))
2797 ::Warning(
"TCanvas::SaveAll",
"TWebCanvas does not support image format %s - using normal ROOT functionality", fname.
Data());
2801 if (ext ==
"pdf" || ext ==
"ps") {
2802 for (
unsigned n = 0;
n < pads.size(); ++
n) {
2808 else if (
n == pads.size() - 1)
2818 if ((ext ==
"root" || ext ==
"xml") && !hasArg) {
2823 ::Warning(
"TCanvas::SaveAll",
"Filename %s cannot be used - use pad name %s as pattern", fname.
Data(), fn.
Data());
2831 for (
unsigned n = 0;
n < pads.size(); ++
n) {
2833 if (!sz) { isError =
kTRUE;
break; }
2840 ::Info(
"TCanvas::SaveAll",
"ROOT file %s has been created",
filename);
2845 for (
unsigned n = 0;
n < pads.size(); ++
n) {
2849 fn.
Form(
"%s%d.%s", pads[
n]->
GetName(), (
int)
n, ext.Data());
2850 ::Warning(
"TCanvas::SaveAll",
"Filename %s cannot be used - use pad name %s as pattern", fname.
Data(), fn.
Data());
2853 pads[
n]->SaveAs(fn.
Data());
bool Bool_t
Boolean (0=false, 1=true) (bool)
int Int_t
Signed integer 4 bytes (int)
float Size_t
Attribute size (float)
long Longptr_t
Integer large enough to hold a pointer (platform-dependent)
short Version_t
Class version identifier (short)
unsigned int UInt_t
Unsigned integer 4 bytes (unsigned int)
float Float_t
Float 4 bytes (float)
double Double_t
Double 8 bytes.
constexpr Ssiz_t kNPOS
The equivalent of std::string::npos for the ROOT class TString.
const char Option_t
Option string (const char)
R__EXTERN TApplication * gApplication
void ROOT_TCanvas_Update(void *TheCanvas)
class TCanvasInit gCanvasInit
TString GetNewCanvasName(const char *arg=nullptr)
const Size_t kDefaultCanvasSize
winID h TVirtualViewer3D TVirtualGLPainter p
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 mask
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 SetDoubleBuffer
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 SetFillStyle
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 cname
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
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 SetCursor
Option_t Option_t SetFillColor
Option_t Option_t TPoint TPoint const char y1
R__EXTERN TGuiFactory * gBatchGuiFactory
R__EXTERN TGuiFactory * gGuiFactory
R__EXTERN TVirtualMutex * gROOTMutex
R__EXTERN TStyle * gStyle
R__EXTERN TSystem * gSystem
#define R__LOCKGUARD(mutex)
R__EXTERN TVirtualPS * gVirtualPS
R__EXTERN Int_t(* gThreadXAR)(const char *xact, Int_t nb, void **ar, Int_t *iret)
void InitializeGraphics(Bool_t only_web=kFALSE)
Initialize the graphics environment.
static void CreateApplication()
Static function used to create a default application environment.
static void NeedGraphicsLibs()
Static method.
Array of integers (32 bits per element).
const Int_t * GetArray() const
virtual void Streamer(TBuffer &)
Fill Area Attributes class.
virtual Color_t GetFillColor() const
Return the fill area color.
void Copy(TAttFill &attfill) const
Copy this fill attributes to a new TAttFill.
void Copy(TAttLine &attline) const
Copy this line attributes to a new TAttLine.
Manages default Pad attributes.
virtual void SetBottomMargin(Float_t bottommargin)
Set Pad bottom margin in fraction of the pad height.
virtual void SetLeftMargin(Float_t leftmargin)
Set Pad left margin in fraction of the pad width.
virtual void Copy(TAttPad &attpad) const
copy function
virtual void SetRightMargin(Float_t rightmargin)
Set Pad right margin in fraction of the pad width.
virtual void SetTopMargin(Float_t topmargin)
Set Pad top margin in fraction of the pad height.
Class to manage histogram axis.
virtual Bool_t GetTimeDisplay() const
virtual const char * GetTimeFormat() const
Using a TBrowser one can browse all ROOT objects.
Buffer base class used for serializing objects.
ABC describing GUI independent main window (with menubar, scrollbars and a drawing area).
virtual void SetStatusText(const char *text=nullptr, Int_t partidx=0)
virtual void SetWindowPosition(Int_t x, Int_t y)
virtual void ShowMenuBar(Bool_t show=kTRUE)
virtual Bool_t PerformUpdate(Bool_t)
virtual void ShowToolTips(Bool_t show=kTRUE)
virtual Int_t InitWindow()
virtual void UpdateDisplay(Int_t mode=0, Bool_t sleep=kFALSE)
Update canvas display, also optionally sleep to wait until operation finished.
virtual void SetWindowTitle(const char *newTitle)
virtual void GetCanvasGeometry(Int_t wid, UInt_t &w, UInt_t &h)
Gets the size and position of the canvas paint area.
virtual Bool_t IsWeb() const
virtual UInt_t GetWindowGeometry(Int_t &x, Int_t &y, UInt_t &w, UInt_t &h)
virtual void ResizeCanvasWindow(Int_t wid)
Resize canvas window, redirect to gVirtualX.
virtual TVirtualPadPainter * CreatePadPainter()
virtual void ShowEditor(Bool_t show=kTRUE)
virtual void RaiseWindow()
virtual void SetWindowSize(UInt_t width, UInt_t height)
virtual void SetCursor(ECursor cursor)
virtual void SetCanvasSize(UInt_t w, UInt_t h)
virtual void ForceUpdate()
virtual void ShowStatusBar(Bool_t show=kTRUE)
virtual void ShowToolBar(Bool_t show=kTRUE)
void Init()
Initialize the TCanvas members. Called by all constructors.
UInt_t fCw
Width of the canvas along X (pixels)
~TCanvas() override
Canvas destructor.
void EmbedInto(Int_t winid, Int_t ww, Int_t wh)
Embedded a canvas into a TRootEmbeddedCanvas.
void SetWindowSize(UInt_t ww, UInt_t wh)
Set canvas window size.
static void SetFolder(Bool_t isfolder=kTRUE)
If isfolder=kTRUE, the canvas can be browsed like a folder by default a canvas is not browsable.
void Browse(TBrowser *b) override
Browse.
UInt_t GetWindowHeight() const
virtual void EditorBar()
Get editor bar.
static TCanvas * MakeDefCanvas()
Static function to build a default canvas.
void EnterLeave(TPad *prevSelPad, TObject *prevSelObj)
Generate kMouseEnter and kMouseLeave events depending on the previously selected object and the curre...
Size_t fYsizeReal
Current size of canvas along Y in CM.
void Constructor()
Canvas default constructor.
virtual void ToggleAutoExec()
Toggle pad auto execution of list of TExecs.
TCanvas(const TCanvas &canvas)=delete
Int_t fWindowTopX
Top X position of window (in pixels)
void Draw(Option_t *option="") override
Draw a canvas.
void SetDoubleBuffer(Int_t mode=1) override
Set Double Buffer On/Off.
virtual void ToggleToolTips()
Toggle tooltip display.
void Clear(Option_t *option="") override
Remove all primitives from the canvas.
void UseCurrentStyle() override
Force a copy of current style for all objects in canvas.
void Iconify()
Iconify canvas.
Int_t GetWindowTopX()
Returns current top x position of window on screen.
virtual void ToggleEventStatus()
Toggle event statusbar.
void Destructor()
Actual canvas destructor.
Bool_t fUpdated
! Set to True when Update method was called
void DeleteCanvasPainter()
assert on IsBatch() == false?
TPad * fPadSave
! Pointer to saved pad in HandleInput
static Bool_t SupportAlpha()
Static function returning "true" if transparency is supported.
Bool_t fBatch
! True when in batchmode
Bool_t fUseGL
! True when rendering is with GL
Int_t fEventX
! Last X mouse position in canvas
Bool_t IsBatch() const override
TObject * DrawClone(Option_t *option="") const override
Draw a clone of this canvas A new canvas is created that is a clone of this canvas.
Size_t fXsizeReal
Current size of canvas along X in CM.
Bool_t HasMenuBar() const
TVirtualPadPainter * GetCanvasPainter()
Access and (probably) creation of pad painter.
virtual void HighlightConnect(const char *slot)
This is "simplification" for function TCanvas::Connect with Highlighted signal for specific slot.
Int_t fHandlingInput
! use to implement posponded update of canvas
TPad * Pick(Int_t px, Int_t py, TObjLink *&pickobj) override
Search for an object at pixel position px,py.
void Close(Option_t *option="") override
Close canvas.
void SetFixedAspectRatio(Bool_t fixed=kTRUE) override
Fix canvas aspect ratio to current value if fixed is true.
virtual void Resize(Option_t *option="")
Recompute canvas parameters following a X11 Resize.
Color_t GetHighLightColor() const override
Bool_t GetShowToolBar() const
void DrawEventStatus(Int_t event, Int_t x, Int_t y, TObject *selected)
Report name and title of primitive below the cursor.
Bool_t IsFolder() const override
Is folder ?
Bool_t EnsurePSPainter(Bool_t create, TVirtualPadPainter *&oldp)
Replace canvas painter For internal use only - when creating PS images.
UInt_t fWindowWidth
Width of window (including borders, etc.)
TVirtualPadPainter * fPainter
! Canvas (pad) painter.
void CopyPixmaps() override
Copy the canvas pixmap of the pad to the canvas.
Bool_t IsGrayscale()
Check whether this canvas is to be drawn in grayscale mode.
TPad * fClickSelectedPad
! Pad containing currently click-selected object
Bool_t fUpdating
! True when Updating the canvas
void SaveSource(const char *filename="", Option_t *option="")
Save primitives in this canvas as a C++ macro file.
void SetCanvasImp(TCanvasImp *i)
Set canvas implementation If web-based implementation provided, some internal fields also initialized...
Color_t fHighLightColor
Highlight color of active pad.
virtual void Size(Float_t xsizeuser=0, Float_t ysizeuser=0)
Set the canvas scale in centimeters.
virtual void ProcessedEvent(Int_t event, Int_t x, Int_t y, TObject *selected)
Emit ProcessedEvent() signal.
virtual void HandleInput(EEventType button, Int_t x, Int_t y)
Handle Input Events.
void UpdateAsync() override
Asynchronous canvas update.
Size_t fXsizeUser
User specified size of canvas along X in CM.
Int_t fEventY
! Last Y mouse position in canvas
TVirtualPad * cd(Int_t subpadnumber=0) override
Set current canvas & pad.
UInt_t fWindowHeight
Height of window (including menubar, borders, etc.)
Int_t GetWindowTopY()
Returns current top y position of window on screen.
TObject * fClickSelected
! Currently click-selected object
void SetCanvasSize(UInt_t ww, UInt_t wh) override
Set Width and Height of canvas to ww and wh respectively.
TPad * fSelectedPad
! Pad containing currently selected object
virtual void Selected(TVirtualPad *pad, TObject *obj, Int_t event)
Emit Selected() signal.
Int_t fSelectedX
! X of selected object
virtual void ToggleEditor()
Toggle editor.
TVirtualPad * GetSelectedPad() const override
virtual void Picked(TPad *selpad, TObject *selected, Int_t event)
Emit Picked() signal.
TObject * fSelected
! Currently selected object
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitives in this canvas in C++ macro file with GUI.
void SetCursor(ECursor cursor) override
Set cursor.
void Streamer(TBuffer &) override
Stream a class object.
Bool_t GetShowToolTips() const
Int_t fCanvasID
! Canvas identifier
void SetGrayscale(Bool_t set=kTRUE)
Set whether this canvas should be painted in grayscale, and re-paint it if necessary.
void SetTitle(const char *title="") override
Set canvas title.
UInt_t fCh
Height of the canvas along Y (pixels)
TContextMenu * fContextMenu
! Context menu pointer
TAttCanvas fCatt
Canvas attributes.
void SetName(const char *name="") override
Set canvas name.
UInt_t GetWindowWidth() const
Bool_t fRetained
Retain structure flag.
void DisconnectWidget()
Used by friend class TCanvasImp.
void ls(Option_t *option="") const override
List all pads.
void RaiseWindow()
Raise canvas window.
void Build()
Build a canvas. Called by all constructors.
static Bool_t SaveAll(const std::vector< TPad * > &={}, const char *filename="", Option_t *option="")
Save provided pads/canvases into the image file(s) Filename can include printf argument for image num...
Int_t fWindowTopY
Top Y position of window (in pixels)
void Paint(Option_t *option="") override
Paint canvas.
TClass * IsA() const override
void Update() override
Update canvas pad buffers.
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute action corresponding to one event.
void RunAutoExec()
Execute the list of TExecs in the current pad.
virtual void Cleared(TVirtualPad *pad)
Emit pad Cleared signal.
UInt_t GetWw() const override
TCanvasImp * fCanvasImp
! Window system specific canvas implementation
UInt_t GetWh() const override
void FeedbackMode(Bool_t set) override
Turn rubberband feedback mode on or off.
virtual void Highlighted(TVirtualPad *pad, TObject *obj, Int_t x, Int_t y)
Emit Highlighted() signal.
void Flush()
Flush canvas buffers.
Size_t fYsizeUser
User specified size of canvas along Y in CM.
Int_t fDoubleBuffer
Double buffer flag (0=off, 1=on)
void ForceUpdate()
Force canvas update.
void CreatePainter()
Probably, TPadPainter must be placed in a separate ROOT module - "padpainter" (the same as "histpaint...
void SetSelected(TObject *obj) override
Set selected canvas.
void MoveOpaque(Int_t set=1)
Set option to move objects/pads in a canvas.
static Bool_t fgIsFolder
Indicates if canvas can be browsed as a folder.
void Closed() override
Emit Closed signal.
Bool_t IsWeb() const override
Is web canvas.
void SetWindowPosition(Int_t x, Int_t y)
Set canvas window position.
TString fDISPLAY
Name of destination screen.
bool SetRealAspectRatio(const Int_t axis=1)
Function to resize a canvas so that the plot inside is shown in real aspect ratio.
Int_t fEvent
! Type of current or last handled event
Bool_t GetShowEventStatus() const
TString fSelectedOpt
! Drawing option of selected object
Int_t fSelectedY
! Y of selected object
Bool_t fDrawn
! Set to True when the Draw method is called
void SetBatch(Bool_t batch=kTRUE) override
Toggle batch mode.
void ResizeOpaque(Int_t set=1)
Set option to resize objects/pads in a canvas.
virtual void ToggleToolBar()
Toggle toolbar.
TVirtualPad * fHilightPadBorder
! pad which border will be hilghlighrt when paint canvas
virtual TObject * DrawClonePad()
Draw a clone of this canvas into the current pad In an interactive session, select the destination/cu...
static ENewType IsCallingNew()
Static method returning the defConstructor flag passed to TClass::New().
void SetName(const char *name)
void Browse(TBrowser *b) override
Browse this collection (called by TBrowser).
The color creation and management class.
TClass * IsA() const override
virtual void SetRGB(Float_t r, Float_t g, Float_t b)
Initialize this color and its "dark" and "bright" associated colors.
static const TArrayI & GetPalette()
Static function returning the current active palette.
static void SaveColorsPalette(std::ostream &out)
Store current palette in the output macro.
static Int_t GetColor(const char *hexcolor)
Static method returning color number for color specified by hex color string of form: "#rrggbb",...
void SetName(const char *name) override
Set the color name and change also the name of the "dark" and "bright" associated colors if they exis...
static TString SavePrimitiveColor(Int_t ci)
Convert color in C++ statement which can be used in SetColor directives Produced statement either inc...
static Bool_t DefinedColors(Int_t set_always_on=0)
Static method returning kTRUE if some new colors have been defined after initialisation or since the ...
virtual void SetAlpha(Float_t a)
This class stores the date and time with a precision of one second in an unsigned 32 bit word (950130...
const char * AsSQLString() const
Return the date & time in SQL compatible string format, like: 1997-01-15 20:16:28.
UInt_t Convert(Bool_t toGMT=kFALSE) const
Convert fDatime from TDatime format to the standard time_t format.
const char * AsString() const
Return the date & time as a string (ctime() format).
virtual Int_t GetValue(const char *name, Int_t dflt) const
Returns the integer value for a resource.
A TGraph is an object made of two arrays X and Y with npoints each.
virtual TCanvasImp * CreateCanvasImp(TCanvas *c, const char *title, UInt_t width, UInt_t height)
Create a batch version of TCanvasImp.
TH1 is the base class of all histogram classes in ROOT.
Option_t * GetOption() const
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
void Add(TObject *obj) override
TObject * Remove(TObject *obj) override
Remove object from the list.
void Add(TObject *obj) override
Wrapper around a TObject so it can be stored in a TList.
TObject * GetObject() const
virtual Option_t * GetOption() const
Mother of all ROOT objects.
virtual void Clear(Option_t *="")
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual TObject * Clone(const char *newname="") const
Make a clone of an object using the Streamer facility.
R__ALWAYS_INLINE Bool_t IsOnHeap() const
virtual const char * ClassName() const
Returns name of class to which the object belongs.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual void ExecuteEvent(Int_t event, Int_t px, Int_t py)
Execute action corresponding to an event at (px,py).
virtual void Execute(const char *method, const char *params, Int_t *error=nullptr)
Execute method on this object with the given parameter string, e.g.
virtual void Delete(Option_t *option="")
Delete this object.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
virtual void Pop()
Pop on object drawn in a pad to the top of the display list.
@ kNoContextMenu
if object does not want context menu
@ kMustCleanup
if object destructor must call RecursiveRemove()
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
Implement TVirtualPadPainter which abstracts painting operations.
The most important graphics class in the ROOT system.
Short_t GetBorderMode() const override
void SetBorderSize(Short_t bordersize) override
Int_t GetTicky() const override
void PaintBorder(Color_t color, Bool_t tops)
Paint the pad border.
Bool_t IsEditable() const override
void ResizePad(Option_t *option="") override
Compute pad conversion coefficients.
void SetGrid(Int_t valuex=1, Int_t valuey=1) override
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitives in this pad on the C++ source file out.
void PaintOperations(Bool_t withXor=kFALSE)
Perform buffered paint operations Used for interactivity functionality immediately after normal paint...
Bool_t GetGridx() const override
Double_t fX2
X of upper X coordinate.
void SetLogz(Int_t value=1) override
Set Lin/Log scale for Z.
Double_t GetY2() const override
void Close(Option_t *option="") override
Delete all primitives in pad and pad itself.
void PaintModified() override
Traverse pad hierarchy and (re)paint only modified pads.
const char * GetTitle() const override
Returns title of object.
Double_t fX1
X of lower X coordinate.
TList * GetListOfPrimitives() const override
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.
void UseCurrentStyle() override
Force a copy of current style for all objects in pad.
void Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2) override
Set world coordinate system for the pad.
Double_t fY1
Y of lower Y coordinate.
Int_t fGLDevice
! OpenGL off-screen pixmap identifier
void Clear(Option_t *option="") override
Delete all pad primitives.
Int_t GetTickx() const override
Double_t fAspectRatio
ratio of w/h in case of fixed ratio
void SetLogy(Int_t value=1) override
Set Lin/Log scale for Y.
TCanvas * fCanvas
! Pointer to mother canvas
Bool_t fFixedAspectRatio
True if fixed aspect ratio.
void Modified(Bool_t flag=true) override
Mark pad modified Will be repainted when TCanvas::Update() will be called next time.
void ls(Option_t *option="") const override
List all primitives in pad.
void Streamer(TBuffer &) override
Stream a class object.
void CopyPixmaps() override
Copy the sub-pixmaps of the pad to the canvas.
void CopyPixmap() override
Copy the pixmap of the pad to the canvas.
Double_t GetY1() const override
Bool_t GetGridy() const override
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute action corresponding to one event.
Int_t GetLogz() const override
Short_t GetBorderSize() const override
TList * fPrimitives
->List of primitives (subpads)
TCanvas * GetCanvas() const override
Short_t fBorderSize
pad bordersize in pixels
void Paint(Option_t *option="") override
Paint all primitives in pad.
Int_t fPixmapID
! Off-screen pixmap identifier
TObject * FindObject(const char *name) const override
Search if object named name is inside this pad or in pads inside this pad.
Int_t IsAnyNeedRepaint() const
Check if pad or any subpads need to be repaint Returns flag with following mask: 1 - some pad is modi...
TVirtualPad * cd(Int_t subpadnumber=0) override
Set Current pad.
Int_t GetLogy() const override
void SetBorderMode(Short_t bordermode) override
void SetTicks(Int_t valuex=1, Int_t valuey=1) override
Double_t fY2
Y of upper Y coordinate.
Short_t fBorderMode
Bordermode (-1=down, 0 = no border, 1=up)
void SetLogx(Int_t value=1) override
Set Lin/Log scale for X.
Int_t GetLogx() const override
Double_t GetX2() const override
Double_t GetX1() const override
TPad * fMother
! pointer to mother of the list
const char * GetName() const override
Returns name of object.
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot.
static Int_t IncreaseDirLevel()
Increase the indentation level for ls().
static void IndentLevel()
Functions used by ls() to indent an object hierarchy.
static Int_t DecreaseDirLevel()
Decrease the indentation level for ls().
void ToLower()
Change string to lower-case.
TString & Insert(Ssiz_t pos, const char *s)
TSubString Strip(EStripType s=kTrailing, char c=' ') const
Return a substring of self stripped at beginning and/or end.
TString & ReplaceSpecialCppChars()
Find special characters which are typically used in printf() calls and replace them by appropriate es...
const char * Data() const
Bool_t IsDigit() const
Returns true if all characters in string are digits (0-9) or white spaces, i.e.
Ssiz_t Last(char c) const
Find last occurrence of a character c.
virtual void Streamer(TBuffer &)
Stream a string object.
TString & Append(const char *cs)
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
Double_t GetTimeOffset() const
Int_t GetOptTitle() const
void SetCanvasBorderSize(Width_t size=1)
Float_t GetScreenFactor() const
Int_t GetPadTickX() const
void SetCanvasColor(Color_t color=19)
Float_t GetPadRightMargin() const
void SetCanvasBorderMode(Int_t mode=1)
Int_t GetCanvasDefH() const
Int_t GetCanvasDefX() const
Bool_t GetPadGridY() const
Float_t GetPadLeftMargin() const
void SetPalette(Int_t ncolors=kBird, Int_t *colors=nullptr, Float_t alpha=1.)
See TColor::SetPalette.
Bool_t GetCanvasPreferGL() const
Int_t GetCanvasDefY() const
Bool_t GetPadGridX() const
Int_t GetPadTickY() const
Color_t GetCanvasColor() const
Float_t GetPadBottomMargin() const
Int_t GetCanvasDefW() const
Int_t GetCanvasBorderMode() const
Width_t GetCanvasBorderSize() const
Float_t GetPadTopMargin() const
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
TVirtualPS is an abstract interface to Postscript, PDF, SVG.
static TVirtualPadEditor * GetPadEditor(Bool_t load=kTRUE)
Returns the pad editor dialog. Static method.
To make it possible to use GL for 2D graphic in a TPad/TCanvas.
virtual void UpdateDrawable(Int_t)
virtual void LockPainter()
Empty definition.
virtual void SetDrawMode(Int_t, Int_t)
virtual Bool_t IsNative() const
virtual Bool_t IsCocoa() const
virtual TClass * IsA() const
static TVirtualPadPainter * PadPainter(Option_t *opt="")
Create a pad painter of specified type.
virtual void SelectDrawable(Int_t device)=0
virtual void InitPainter()
Empty definition.
virtual void SetDoubleBuffer(Int_t, Int_t)
small helper class to store/restore gPad context in TPad methods
TVirtualPad is an abstract base class for the Pad and Canvas classes.
R__ALWAYS_INLINE bool HasBeenDeleted(const TObject *obj)
Check if the TObject's memory has been deleted.
Int_t Nint(T x)
Round to nearest integer. Rounds half integers to the nearest even integer.