133   fPadPointer = 
nullptr;
 
  134   fPrimitives = 
nullptr;
 
  149   fPadView3D  = 
nullptr;
 
  179   fFixedAspectRatio = 
kFALSE;
 
  182   fNumPaletteColor = 0;
 
  183   fNextPaletteColor = 0;
 
  184   fCollideGrid = 
nullptr;
 
  198   fUxmin = fUymin = fUxmax = fUymax = 0;
 
  247          : 
TVirtualPad(
name,title,xlow,ylow,xup,yup,color,bordersize,bordermode)
 
  331      Error(
"TPad", 
"You must create a TCanvas before creating a TPad");
 
  338   if ((xlow < 0) || (xlow > 1) || (ylow < 0) || (ylow > 1)) {
 
  339      Error(
"TPad", 
"illegal bottom left position: x=%f, y=%f", xlow, ylow);
 
  342   if ((xup < 0) || (xup > 1) || (yup < 0) || (yup > 1)) {
 
  343      Error(
"TPad", 
"illegal top right position: x=%f, y=%f", xup, yup);
 
  347      Error(
"TPad", 
"illegal width: %f", xup-xlow);
 
  351      Error(
"TPad", 
"illegal height: %f", yup-ylow);
 
  362   SetPad(
name, title, xlow, ylow, xup, yup, color, bordersize, bordermode);
 
  463   while ((exec = (
TExec*)next())) {
 
  504                           const char* title, 
Option_t *option)
 
  513   while( (o=next()) ) {
 
  519               mes = ((
TNamed *)o)->GetTitle();
 
  524            if (strlen(option)) {
 
  535         TIter nextgraph(grlist);
 
  538         while ((obj = nextgraph())) {
 
  543            if (strlen(option))              opt = option;
 
  545            leg->AddEntry( obj, mes.
Data(), opt );
 
  550         TIter nexthist(hlist);
 
  553         while ((obj = nexthist())) {
 
  558            if (strlen(option))                opt = option;
 
  560            leg->AddEntry( obj, mes.
Data(), opt );
 
  572      Info(
"BuildLegend(void)",
"No object to build a TLegend.");
 
  616   while ((obj = next())) {
 
  619         if (
n == subpadnumber) {
 
  620            return ((
TPad*)obj)->
cd();
 
  689   for (
Int_t i=0;i<2;i++) {
 
  702   while(code1 + code2) {
 
  713      if (ic == 0) ic = code2;
 
  715         yt = 
y[0] + (
y[1]-
y[0])*(xclipl-
x[0])/(
x[1]-
x[0]);
 
  719         yt = 
y[0] + (
y[1]-
y[0])*(xclipr-
x[0])/(
x[1]-
x[0]);
 
  723         xt = 
x[0] + (
x[1]-
x[0])*(yclipb-
y[0])/(
y[1]-
y[0]);
 
  727         xt = 
x[0] + (
x[1]-
x[0])*(yclipt-
y[0])/(
y[1]-
y[0]);
 
  733         code1 = 
ClippingCode(xt,yt,xclipl,yclipb,xclipr,yclipt);
 
  737         code2 = 
ClippingCode(xt,yt,xclipl,yclipb,xclipr,yclipt);
 
  760   for (
Int_t i=0;i<2;i++) {
 
  769   if (
x[0] < xclipl) code1 = code1 | 0x1;
 
  770   if (
x[0] > xclipr) code1 = code1 | 0x2;
 
  771   if (
y[0] < yclipb) code1 = code1 | 0x4;
 
  772   if (
y[0] > yclipt) code1 = code1 | 0x8;
 
  774   if (
x[1] < xclipl) code2 = code2 | 0x1;
 
  775   if (
x[1] > xclipr) code2 = code2 | 0x2;
 
  776   if (
y[1] < yclipb) code2 = code2 | 0x4;
 
  777   if (
y[1] > yclipt) code2 = code2 | 0x8;
 
  781   while(code1 + code2) {
 
  792      if (ic == 0) ic = code2;
 
  794         yt = 
y[0] + (
y[1]-
y[0])*(xclipl-
x[0])/(
x[1]-
x[0]);
 
  798         yt = 
y[0] + (
y[1]-
y[0])*(xclipr-
x[0])/(
x[1]-
x[0]);
 
  802         xt = 
x[0] + (
x[1]-
x[0])*(yclipb-
y[0])/(
y[1]-
y[0]);
 
  806         xt = 
x[0] + (
x[1]-
x[0])*(yclipt-
y[0])/(
y[1]-
y[0]);
 
  812         code1 = 
ClippingCode(xt,yt,xclipl,yclipb,xclipr,yclipt);
 
  816         code2 = 
ClippingCode(xt,yt,xclipl,yclipb,xclipr,yclipt);
 
  829   if (
x < xcl1) code = code | 0x1;
 
  830   if (
x > xcl2) code = code | 0x2;
 
  831   if (
y < ycl1) code = code | 0x4;
 
  832   if (
y > ycl2) code = code | 0x8;
 
  887   for (i=0; i<
n; i++) {
 
  888      x2 = 
x[i]; y2 = 
y[i];
 
  892         slope = (y2-y1)/(
x2-
x1);
 
  896            xc2[nc2] = xclipl; yc2[nc2++] = slope*(xclipl-
x1)+y1;
 
  898            xc2[nc2] = 
x2; yc2[nc2++] = y2;
 
  902            xc2[nc2] = xclipl; yc2[nc2++] = slope*(xclipl-
x1)+y1;
 
  903            xc2[nc2] = 
x2; yc2[nc2++] = y2;
 
  910   x1 = xc2[nc2-1]; y1 = yc2[nc2-1];
 
  912   for (i=0; i<nc2; i++) {
 
  913      x2 = xc2[i]; y2 = yc2[i];
 
  917         slope = (
x2-
x1)/(y2-y1);
 
  921            xc[nc] = 
x1+(yclipt-y1)*slope; yc[nc++] = yclipt;
 
  923            xc[nc] = 
x2; yc[nc++] = y2;
 
  927            xc[nc] = 
x1+(yclipt-y1)*slope; yc[nc++] = yclipt;
 
  928            xc[nc] = 
x2; yc[nc++] = y2;
 
  937      x1 = xc[nc-1]; y1 = yc[nc-1];
 
  939      for (i=0; i<nc; i++) {
 
  940         x2 = xc[i]; y2 = yc[i];
 
  944            slope = (y2-y1)/(
x2-
x1);
 
  948               xc2[nc2] = xclipr; yc2[nc2++] = slope*(xclipr-
x1)+y1;
 
  950               xc2[nc2] = 
x2; yc2[nc2++] = y2;
 
  954               xc2[nc2] = xclipr; yc2[nc2++] = slope*(xclipr-
x1)+y1;
 
  955               xc2[nc2] = 
x2; yc2[nc2++] = y2;
 
  962      x1 = xc2[nc2-1]; y1 = yc2[nc2-1];
 
  964      for (i=0; i<nc2; i++) {
 
  965         x2 = xc2[i]; y2 = yc2[i];
 
  969            slope = (
x2-
x1)/(y2-y1);
 
  973               xc[nc] = 
x1+(yclipb-y1)*slope; yc[nc++] = yclipb;
 
  975               xc[nc] = 
x2; yc[nc++] = y2;
 
  979               xc[nc] = 
x1+(yclipb-y1)*slope; yc[nc++] = yclipb;
 
  980               xc[nc] = 
x2; yc[nc++] = y2;
 
 1017   if (IsA() != TCanvas::Class())
 
 1027      if (!
gROOT->GetListOfCanvases()) 
return;
 
 1029         gROOT->GetListOfCanvases()->Remove(
this);
 
 1051   if (
gROOT->GetSelectedPad() == 
this) 
gROOT->SetSelectedPad(
nullptr);
 
 1076   while ((obj = next())) {
 
 1078         ((
TPad*)obj)->CopyPixmap();
 
 1079         ((
TPad*)obj)->CopyPixmaps();
 
 1105   Int_t pxl, pyl, pxt, pyt;
 
 1110   if (px1 < px2) {pxl = px1; pxt = px2;}
 
 1111   else           {pxl = px2; pxt = px1;}
 
 1112   if (py1 < py2) {pyl = py1; pyt = py2;}
 
 1113   else           {pyl = py2; pyt = py1;}
 
 1117   if ( (px > pxl && px < pxt) && (py > pyl && py < pyt) ) {
 
 1124   if (py < pyl) dxl += pyl - py;
 
 1125   if (py > pyt) dxl += py - pyt;
 
 1127   if (py < pyl) dxt += pyl - py;
 
 1128   if (py > pyt) dxt += py - pyt;
 
 1130   if (px < pxl) dyl += pxl - px;
 
 1131   if (px > pxt) dyl += px - pxt;
 
 1133   if (px < pxl) dyt += pxl - px;
 
 1134   if (px > pxt) dyt += px - pxt;
 
 1136   Int_t distance = dxl;
 
 1137   if (dxt < distance) distance = dxt;
 
 1138   if (dyl < distance) distance = dyl;
 
 1139   if (dyt < distance) distance = dyt;
 
 1185      arr[1] = 
this; arr[2] = (
void*)&nx;arr[3] = (
void*)& ny;
 
 1186      arr[4] = (
void*)&xmargin; arr[5] = (
void *)& ymargin; arr[6] = (
void *)&color;
 
 1187      if ((*
gThreadXAR)(
"PDCD", 7, arr, 0)) 
return;
 
 1192   if (nx <= 0) nx = 1;
 
 1193   if (ny <= 0) ny = 1;
 
 1200   char *
name  = 
new char [nchname];
 
 1201   char *title = 
new char [nchtitle];
 
 1204   if (xmargin > 0 && ymargin > 0) {
 
 1208      for (iy=0;iy<ny;iy++) {
 
 1209         y2 = 1 - iy*dy - ymargin;
 
 1210         y1 = y2 - dy + 2*ymargin;
 
 1212         if (y1 > y2) 
continue;
 
 1213         for (ix=0;ix<nx;ix++) {
 
 1214            x1 = ix*dx + xmargin;
 
 1215            x2 = 
x1 +dx -2*xmargin;
 
 1216            if (
x1 > 
x2) 
continue;
 
 1241      for (
Int_t i=0;i<nx;i++) {
 
 1245         if (i == nx-1) 
x2 = 1-xr;
 
 1246         for (
Int_t j=0;j<ny;j++) {
 
 1247            number = j*nx + i +1;
 
 1250            if (j == 0)    y2 = 1-yt;
 
 1251            if (j == ny-1) y1 = 0;
 
 1270   if (padsav) padsav->
cd();
 
 1281      Error(
"DivideSquare", 
"No canvas associated with this pad.");
 
 1294   Divide( w, 
h, xmargin, ymargin, color);
 
 1304      gROOT->MakeDefCanvas();
 
 1336   if (!classobj) 
return;
 
 1344   Int_t nd,nf,nc,nkd,nkf,i,j;
 
 1357   Range(0,0,xpad,ypad);
 
 1362   clevel[nlevel] = obj;
 
 1371      if (nlevel >= maxlev-1) 
break;
 
 1375   Int_t ilevel, nelem;
 
 1376   for (ilevel=nlevel;ilevel>=0;ilevel--) {
 
 1377      cl = clevel[ilevel];
 
 1379      if (nelem > maxelem) maxelem = nelem;
 
 1380      nc = (nelem/50) + 1;
 
 1390      if (dx < 1.3) dx = 1.3;
 
 1391      tsizcm = tsizcm - 0.03*
Double_t(ncdraw-5);
 
 1392      if (tsizcm < 0.27) tsizcm = 0.27;
 
 1397   for (ilevel=nlevel;ilevel>=0;ilevel--) {
 
 1398      cl    = clevel[ilevel];
 
 1400      if (nelem > maxelem) maxelem = nelem;
 
 1401      nc    = (nelem/50) + 1;
 
 1403      if (ilevel < nlevel) 
x1 = 
x2 + 0.5;
 
 1447            if (i >= nkd) { i = 1; 
y = y1 - 0.5*dy; 
x += 1/
Double_t(nc); }
 
 1448            else { i++; 
y -= dy; }
 
 1452            Int_t dim = 
d->GetArrayDim();
 
 1456            while (indx < dim ){
 
 1457               ldname = strlen(dname);
 
 1458               snprintf(&dname[ldname],256-ldname,
"[%d]",
d->GetMaxIndex(indx));
 
 1479         while ((
m = (
TMethod *) nextm())) {
 
 1481               !strcmp( 
m->GetName(), 
"Dictionary"    ) ||
 
 1482               !strcmp( 
m->GetName(), 
"Class_Version" ) ||
 
 1483               !strcmp( 
m->GetName(), 
"DeclFileName"  ) ||
 
 1484               !strcmp( 
m->GetName(), 
"DeclFileLine"  ) ||
 
 1485               !strcmp( 
m->GetName(), 
"ImplFileName"  ) ||
 
 1486               !strcmp( 
m->GetName(), 
"ImplFileLine"  )
 
 1489            if (fcount > nf) 
break;
 
 1490            if (i >= nkf) { i = 1; 
y = ysep - 0.5*dy; 
x += 1/
Double_t(nc); }
 
 1491            else { i++; 
y -= dy; }
 
 1496            for (j=ilevel-1;j>=0;j--) {
 
 1497               if (cl == clevel[ilevel]) {
 
 1498                  if (clevel[j]->GetMethodAny((
char*)
m->GetName())) {
 
 1545   Int_t pxmin,pxmax,pymin,pymax,px,py;
 
 1559      pxmax = canvas->
GetWw();
 
 1561      pymax = cpad->
GetWh();
 
 1565   if(pxold) 
gVirtualX->DrawLine(pxold,pymin,pxold,pymax);
 
 1566   if(pyold) 
gVirtualX->DrawLine(pxmin,pyold,pxmax,pyold);
 
 1613   if (
this !=  padsav) {
 
 1614      Warning(
"DrawFrame",
"Must be called for the current pad only");
 
 1621   if (hframe) 
delete hframe;
 
 1631      for (
Int_t i=1;i<=nbins;i++) {
 
 1634      hframe = 
new TH1F(
"hframe",title,nbins,xbins);
 
 1647   if (padsav) padsav->
cd();
 
 1663   gPad->SetFillColor(0);
 
 1677   for (i=0;i<10;i++) {
 
 1684         box->SetFillStyle(1001);
 
 1685         box->SetFillColor(color);
 
 1686         box->DrawBox(xlow, ylow, xup, yup);
 
 1687         box->SetFillStyle(0);
 
 1688         box->SetLineColor(1);
 
 1689         box->DrawBox(xlow, ylow, xup, yup);
 
 1719   const Int_t kMaxDiff = 5;
 
 1720   const Int_t kMinSize = 20;
 
 1721   static Int_t pxorg, pyorg;
 
 1722   static Int_t px1, px2, py1, py2, pxl, pyl, pxt, pyt, pxold, pyold;
 
 1723   static Int_t px1p, px2p, py1p, py2p, pxlp, pylp, pxtp, pytp;
 
 1724   static Bool_t pA, pB, pC, pD, pTop, pL, pR, pBot, pINSIDE;
 
 1747      pA = pB = pC = pD = pTop = pL = pR = pBot = pINSIDE = 
kFALSE;
 
 1791      if (newcode) 
return;
 
 1858      pA = pB = pC = pD = pTop = pL = pR = pBot = pINSIDE = 
kFALSE;
 
 1862         pxold = pxl; pyold = pyl; pA = 
kTRUE;
 
 1867         pxold = pxt; pyold = pyl; pB = 
kTRUE;
 
 1872         pxold = pxt; pyold = pyt; pC = 
kTRUE;
 
 1877         pxold = pxl; pyold = pyt; pD = 
kTRUE;
 
 1881      if ((px > pxl+kMaxDiff && px < pxt-kMaxDiff) &&
 
 1883         pxold = pxl; pyold = pyl; pTop = 
kTRUE;
 
 1887      if ((px > pxl+kMaxDiff && px < pxt-kMaxDiff) &&
 
 1889         pxold = pxt; pyold = pyt; pBot = 
kTRUE;
 
 1893      if ((py > pyl+kMaxDiff && py < pyt-kMaxDiff) &&
 
 1895         pxold = pxl; pyold = pyl; pL = 
kTRUE;
 
 1899      if ((py > pyl+kMaxDiff && py < pyt-kMaxDiff) &&
 
 1901         pxold = pxt; pyold = pyt; pR = 
kTRUE;
 
 1905      if ((px > pxl+kMaxDiff && px < pxt-kMaxDiff) &&
 
 1906          (py > pyl+kMaxDiff && py < pyt-kMaxDiff)) {    
 
 1907         pxold = px; pyold = py; pINSIDE = 
kTRUE;
 
 1915      if (pA || pB || pC || pD || pTop || pL || pR || pBot)
 
 1918      if (!pA && !pB && !pC && !pD && !pTop && !pL && !pR && !pBot && !pINSIDE)
 
 1931         if (px > pxt-kMinSize) { px = pxt-kMinSize; wx = px; }
 
 1932         if (py > pyt-kMinSize) { py = pyt-kMinSize; wy = py; }
 
 1933         if (px < pxlp) { px = pxlp; wx = px; }
 
 1934         if (py < pylp) { py = pylp; wy = py; }
 
 1952         if (px < pxl+kMinSize) { px = pxl+kMinSize; wx = px; }
 
 1953         if (py > pyt-kMinSize) { py = pyt-kMinSize; wy = py; }
 
 1954         if (px > pxtp) { px = pxtp; wx = px; }
 
 1955         if (py < pylp) { py = pylp; wy = py; }
 
 1973         if (px < pxl+kMinSize) { px = pxl+kMinSize; wx = px; }
 
 1974         if (py < pyl+kMinSize) { py = pyl+kMinSize; wy = py; }
 
 1975         if (px > pxtp) { px = pxtp; wx = px; }
 
 1976         if (py > pytp) { py = pytp; wy = py; }
 
 1994         if (px > pxt-kMinSize) { px = pxt-kMinSize; wx = px; }
 
 1995         if (py < pyl+kMinSize) { py = pyl+kMinSize; wy = py; }
 
 1996         if (px < pxlp) { px = pxlp; wx = px; }
 
 1997         if (py > pytp) { py = pytp; wy = py; }
 
 2016         if (py2 > py1-kMinSize) { py2 = py1-kMinSize; wy = py2; }
 
 2017         if (py2 < py2p) { py2 = py2p; wy = py2; }
 
 2032         if (py1 < py2+kMinSize) { py1 = py2+kMinSize; wy = py1; }
 
 2033         if (py1 > py1p) { py1 = py1p; wy = py1; }
 
 2048         if (px1 > px2-kMinSize) { px1 = px2-kMinSize; wx = px1; }
 
 2049         if (px1 < px1p) { px1 = px1p; wx = px1; }
 
 2065         if (px2 < px1+kMinSize) { px2 = px1+kMinSize; wx = px2; }
 
 2066         if (px2 > px2p) { px2 = px2p; wx = px2; }
 
 2081         Int_t dx = px - pxold;
 
 2082         Int_t dy = py - pyold;
 
 2083         px1 += dx; py1 += dy; px2 += dx; py2 += dy;
 
 2084         if (px1 < px1p) { dx = px1p - px1; px1 += dx; px2 += dx; wx = px+dx; }
 
 2085         if (px2 > px2p) { dx = px2 - px2p; px1 -= dx; px2 -= dx; wx = px-dx; }
 
 2086         if (py1 > py1p) { dy = py1 - py1p; py1 -= dy; py2 -= dy; wy = py-dy; }
 
 2087         if (py2 < py2p) { dy = py2p - py2; py1 += dy; py2 += dy; wy = py+dy; }
 
 2101      x1 = 
x2 = y1 = y2 = 0;
 
 2128         if (pTop || pBot || pL || pR || pINSIDE) {
 
 2135         if (px != pxorg || py != pyorg) {
 
 2159         if (pINSIDE) 
gPad->ShowGuidelines(
this, 
event);
 
 2160         if (pTop) 
gPad->ShowGuidelines(
this, 
event, 
't', 
true);
 
 2161         if (pBot) 
gPad->ShowGuidelines(
this, 
event, 
'b', 
true);
 
 2162         if (pL) 
gPad->ShowGuidelines(
this, 
event, 
'l', 
true);
 
 2163         if (pR) 
gPad->ShowGuidelines(
this, 
event, 
'r', 
true);
 
 2164         if (pA) 
gPad->ShowGuidelines(
this, 
event, 
'1', 
true);
 
 2165         if (pB) 
gPad->ShowGuidelines(
this, 
event, 
'2', 
true);
 
 2166         if (pC) 
gPad->ShowGuidelines(
this, 
event, 
'3', 
true);
 
 2167         if (pD) 
gPad->ShowGuidelines(
this, 
event, 
'4', 
true);
 
 2176      if (
gROOT->IsEscaped()) {
 
 2181      if (opaque||ropaque) {
 
 2184         x1 = 
x2 = y1 = y2 = 0;
 
 2210         if (pTop || pBot || pL || pR || pINSIDE) {
 
 2217         if (pA || pB || pC || pD || pTop || pL || pR || pBot)
 
 2223         if (px != pxorg || py != pyorg) {
 
 2260         event = 
gVirtualX->RequestLocator(1, 1, px, py);
 
 2299   static Int_t axisNumber;
 
 2301   static Int_t px1old, py1old, px2old, py2old;
 
 2305   static TBox *zoombox;
 
 2306   Double_t zbx1=0,zbx2=0,zby1=0,zby2=0;
 
 2313   if (strstr(opt,
"cont4")) {
 
 2322      if (!strcmp(axis->
GetName(),
"xaxis")) {
 
 2326      if (!strcmp(axis->
GetName(),
"yaxis")) {
 
 2330      if (!strcmp(axis->
GetName(),
"zaxis")) {
 
 2336         if (axisNumber == 1) {
 
 2342         } 
else if (axisNumber == 2) {
 
 2358            if (axisNumber == 1) {
 
 2363            } 
else if (axisNumber == 2) {
 
 2377            zoombox = 
new TBox(zbx1, zby1, zbx2, zby2);
 
 2388      if (!opaque) 
gVirtualX->SetLineColor(-1);
 
 2396         if (axisNumber == 1) {
 
 2406            if (axisNumber == 1) {
 
 2411            } 
else if (axisNumber == 2) {
 
 2426               zoombox->
SetX1(zbx1);
 
 2427               zoombox->
SetY1(zby1);
 
 2428               zoombox->
SetX2(zbx2);
 
 2429               zoombox->
SetY2(zby2);
 
 2462      if (
gROOT->IsEscaped()) {
 
 2464         if (opaque && zoombox) {
 
 2473         if (ratio1 > ratio2) {
 
 2478         if (ratio2 - ratio1 > 0.05) {
 
 2480            if (axisNumber == 3 && hobj && hobj->
GetDimension() != 3) {
 
 2489               Float_t newmin = zmin + (zmax-zmin)*ratio1;
 
 2490               Float_t newmax = zmin + (zmax-zmin)*ratio2;
 
 2514         if (axisNumber == 1) {
 
 2522         } 
else if (axisNumber == 2) {
 
 2550            xmin = ((
xmin-xmi)/(xma-xmi))*(up-low)+low;
 
 2551            xmax = ((
xmax-xmi)/(xma-xmi))*(up-low)+low;
 
 2554         if (!strcmp(axis->
GetName(),
"xaxis")) axisNumber = 1;
 
 2555         if (!strcmp(axis->
GetName(),
"yaxis")) axisNumber = 2;
 
 2556         if (ratio2 - ratio1 > 0.05) {
 
 2563            if (axisNumber == 1) axis->
SetRange(bin1,bin2);
 
 2564            if (axisNumber == 2 && hobj1) {
 
 2581            while ((obj= next())) {
 
 2584               if (hobj == hobj1) 
continue;
 
 2587               if (axisNumber == 1) {
 
 2589               } 
else if (axisNumber == 2) {
 
 2632   if (found) 
return found;
 
 2635   while ((cur = next())) {
 
 2638         if (found) 
return found;
 
 2653   if (found) 
return found;
 
 2656   while ((cur = next())) {
 
 2659         if (found) 
return found;
 
 2734   if (
fCanvas == 
this) 
return nullptr;
 
 2743   if (
fCanvas == 
this) 
return nullptr;
 
 2752   if (
fCanvas == 
this) 
return nullptr;
 
 2899   while ((obj=next())) {
 
 2903      if (found) 
return found;
 
 2913   if (!subpadnumber) {
 
 2920   while ((obj = next())) {
 
 2923         if (pad->
GetNumber() == subpadnumber) 
return pad;
 
 2970   if (color <= 0) 
return;
 
 2988      gROOT->SetSelectedPad(
this);
 
 3005        <<
" Name= "<<
GetName()<<
" Title= "<<
GetTitle()<<
" Option="<<option<<std::endl;
 
 3017   if (opt.
Index(
"pfc")>=0 || opt.
Index(
"plc")>=0 || opt.
Index(
"pmc")>=0) {
 
 3035      if (i>=ncolors) i = ncolors-1;
 
 3047   Int_t const cellSize = 10; 
 
 3066      for (
int i = 0; i<
fCGnx; i++) {
 
 3067         for (
int j = 0; j<
fCGny; j++) {
 
 3079   for (
int i=0; i<np; i++) {
 
 3088            TIter nextgraph(grlist);
 
 3094            TIter nexthist(hlist);
 
 3096            while ((oh = nexthist())) {
 
 3110   for (
int r=i; 
r<w+i; 
r++) {
 
 3111      for (
int c=j; 
c<
h+j; 
c++) {
 
 3139   for (
Int_t i = 0; i<nxmax; i++) {
 
 3140      for (
Int_t j = 0; j<=nymax; j++) {
 
 3153#define NotFree(i, j) fCollideGrid[TMath::Max(TMath::Min(i+j*fCGnx,fCGnx*fCGny),0)] = kFALSE; 
 3180         yt = y1; y1 = y2; y2 = yt;
 
 3182      for (i=
x1+1; i<
x2; i++) {
 
 3189         yt = y1; y1 = y2; y2 = yt;
 
 3192      for (j=y1+1; j<y2; j++) {
 
 3212   for (
int i = 
x1; i<=
x2; i++) {
 
 3213      for (
int j = y1; j<=y2; j++) 
NotFree(i, j);
 
 3231   for (i = 
x1; i<=
x2; i++) {
 
 3236   for (i = y1; i<=y2; i++) {
 
 3254   for (
Int_t i=s; i<
n; i=i+s) {
 
 3256      g->GetPoint(i  ,
x2,y2);
 
 3270                  (
int)((y1-
fY1)/ys), (
int)((y2-
fY1)/ys));
 
 3283   if (
name.Index(
"hframe") >= 0) 
return;
 
 3288   bool haserrors = 
false;
 
 3289   TString drawOption = 
h->GetDrawOption();
 
 3293   if (drawOption.
Index(
"hist") < 0) {
 
 3294      if (drawOption.
Index(
"e") >= 0) haserrors = 
true;
 
 3297   Int_t nx = 
h->GetNbinsX();
 
 3302   for (i = 1; i<nx; i++) {
 
 3304         x1l = 
h->GetBinCenter(i);
 
 3310         y1l = 
h->GetBinContent(i)-
h->GetBinErrorLow(i);
 
 3316         y2l = 
h->GetBinContent(i)+
h->GetBinErrorUp(i);
 
 3322         for (j=y1; j<=y2; j++) {
 
 3326      x1l = 
h->GetBinLowEdge(i);
 
 3332      y1l = 
h->GetBinContent(i);
 
 3339      x1l = 
h->GetBinLowEdge(i)+
h->GetBinWidth(i);
 
 3361   box->SetFillColorAlpha(
kRed,0.5);
 
 3372   for (
int i = 0; i<
fCGnx; i++) {
 
 3375      for (
int j = 0; j<
fCGny; j++) {
 
 3376         if (
gPad->GetLogx()) {
 
 3383         if (
gPad->GetLogy()) {
 
 3392            box->DrawBox(X1L, Y1L, X2L, Y2L);
 
 3394            box->SetFillColorAlpha(
kRed,t);
 
 3395            box->DrawBox(X1L, Y1L, X2L, Y2L);
 
 3399         if (t==0.15) t = 0.1;
 
 3493         began3DScene = 
kTRUE;
 
 3500   if (padsav) padsav->
cd();
 
 3529   if (color < 0) color = -color;
 
 3536   if (bordersize <= 0) bordersize = 2;
 
 3557   if (px1 < px2) {xl = 
fX1; xt = 
fX2; }
 
 3558   else           {xl = 
fX2; xt = 
fX1;}
 
 3559   if (py1 > py2) {yl = 
fY1; yt = 
fY2;}
 
 3560   else           {yl = 
fY2; yt = 
fY1;}
 
 3562   Double_t frameXs[7] = {}, frameYs[7] = {};
 
 3566      frameXs[0] = xl;           frameYs[0] = yl;
 
 3567      frameXs[1] = xl + realBsX; frameYs[1] = yl + realBsY;
 
 3568      frameXs[2] = frameXs[1];   frameYs[2] = yt - realBsY;
 
 3569      frameXs[3] = xt - realBsX; frameYs[3] = frameYs[2];
 
 3570      frameXs[4] = xt;           frameYs[4] = yt;
 
 3571      frameXs[5] = xl;           frameYs[5] = yt;
 
 3572      frameXs[6] = xl;           frameYs[6] = yl;
 
 3579      frameXs[0] = xl;              frameYs[0] = yl;
 
 3580      frameXs[1] = xl + realBsX;    frameYs[1] = yl + realBsY;
 
 3581      frameXs[2] = xt - realBsX;    frameYs[2] = frameYs[1];
 
 3582      frameXs[3] = frameXs[2];      frameYs[3] = yt - realBsY;
 
 3583      frameXs[4] = xt;              frameYs[4] = yt;
 
 3584      frameXs[5] = xt;              frameYs[5] = yl;
 
 3585      frameXs[6] = xl;              frameYs[6] = yl;
 
 3718         ((
TPad*)obj)->PaintModified();
 
 3730            began3DScene = 
kTRUE;
 
 3738   if (padsav) padsav->
cd();
 
 3762      if (option[0] == 
's') {
 
 3775               xb[0] = 
x1; xb[1] = 
x1; xb[2] = 
x2; xb[3] = 
x2;
 
 3776               yb[0] = y1; yb[1] = y2; yb[2] = y2; yb[3] = y1;
 
 3825      if (option[0] == 
's') {
 
 3828         if (style0 >= 3100 && style0 < 4000) {
 
 3830            xb[0] = 
x1; xb[1] = 
x1; xb[2] = 
x2; xb[3] = 
x2;
 
 3831            yb[0] = y1; yb[1] = y2; yb[2] = y2; yb[3] = y1;
 
 3837      if (option[0] == 
'l') {
 
 3857   while ((obj = next())) {
 
 3859         if (obj == stop) 
break;
 
 3860         ((
TPad*)obj)->CopyBackgroundPixmap(
x, 
y);
 
 3861         ((
TPad*)obj)->CopyBackgroundPixmaps((
TPad*)obj, stop, 
x, 
y);
 
 3880   Warning(
"TPad::PaintFillArea", 
"Float_t signature is obsolete. Use Double_t signature.");
 
 3898   std::vector<Double_t> 
x(nc, 0.);
 
 3899   std::vector<Double_t> 
y(nc, 0.);
 
 3908   if (fillstyle >= 3100 && fillstyle < 4000) {
 
 3930   for (
int i=0; i<
n; i++) {
 
 3974   static Double_t ang1[10] = {  0., 10., 20., 30., 45.,5., 60., 70., 80., 89.99};
 
 3975   static Double_t ang2[10] = {180.,170.,160.,150.,135.,5.,120.,110.,100., 89.99};
 
 3977   Int_t fasi  = FillStyle%1000;
 
 3980   Int_t iAng1 = fasi%10;
 
 4013   if (ang1[iAng1] != 5.) 
PaintHatches(dy, ang1[iAng1], nn, xx, yy);
 
 4014   if (ang2[iAng2] != 5.) 
PaintHatches(dy, ang2[iAng2], nn, xx, yy);
 
 4041   const Int_t maxnbi = 100;
 
 4042   Double_t xli[maxnbi], xlh[2], ylh[2], xt1, xt2, yt1, yt2;
 
 4043   Double_t ll, 
x, 
y, 
x1, 
x2, y1, y2, 
a, 
b, xi, xip, xin, yi, yip;
 
 4049   ratiox = 1./(rwxmax-rwxmin);
 
 4050   ratioy = 1./(rwymax-rwymin);
 
 4063   gPad->GetPadPar(x1p,y1p,x2p,y2p);
 
 4072   for (i=1; i<=nn; i++) {
 
 4073      x    = wndc*ratiox*(xx[i-1]-rwxmin);
 
 4074      y    = hndc*ratioy*(yy[i-1]-rwymin);
 
 4075      yrot = sina*
x+cosa*
y;
 
 4081   for (ycur=
ymax; ycur>=
ymin; ycur=ycur-dy) {
 
 4083      for (i=2; i<=nn+1; i++) {
 
 4086         if (i == nn+1) i2=1;
 
 4087         x1  = wndc*ratiox*(xx[i1-1]-rwxmin);
 
 4088         y1  = hndc*ratioy*(yy[i1-1]-rwymin);
 
 4089         x2  = wndc*ratiox*(xx[i2-1]-rwxmin);
 
 4090         y2  = hndc*ratioy*(yy[i2-1]-rwymin);
 
 4091         xt1 = cosa*
x1-sina*y1;
 
 4092         yt1 = sina*
x1+cosa*y1;
 
 4093         xt2 = cosa*
x2-sina*y2;
 
 4094         yt2 = sina*
x2+cosa*y2;
 
 4105            if ((yi <= ycur) && (ycur < yip)) {
 
 4107               if (nbi >= maxnbi) 
return;
 
 4117               if (nbi >= maxnbi) 
return;
 
 4120               if (nbi >= maxnbi) 
return;
 
 4127         a = (yt1-yt2)/(xt1-xt2);
 
 4128         b = (yt2*xt1-xt2*yt1)/(xt1-xt2);
 
 4137         if  ((xi <= xin) && (xin < xip) &&
 
 4141            if (nbi >= maxnbi) 
return;
 
 4150      for (i=1; i<=
m; i++) {
 
 4151         if (xli[i] < xli[i-1]) {
 
 4159      if (
inv == 0) 
goto L50;
 
 4165      if (nbi%2 != 0) 
continue;
 
 4167      for (i=1; i<=nbi; i=i+2) {
 
 4169         xlh[0] = cosb*xli[i-1]-sinb*ycur;
 
 4170         ylh[0] = sinb*xli[i-1]+cosb*ycur;
 
 4171         xlh[1] = cosb*xli[i]  -sinb*ycur;
 
 4172         ylh[1] = sinb*xli[i]  +cosb*ycur;
 
 4174         xlh[0] = (xlh[0]/wndc)*(rwxmax-rwxmin)+rwxmin;
 
 4175         ylh[0] = (ylh[0]/hndc)*(rwymax-rwymin)+rwymin;
 
 4176         xlh[1] = (xlh[1]/wndc)*(rwxmax-rwxmin)+rwxmin;
 
 4177         ylh[1] = (ylh[1]/hndc)*(rwymax-rwymin)+rwymin;
 
 4178         gPad->PaintLine(xlh[0], ylh[0], xlh[1], ylh[1]);
 
 4189   x[0] = 
x1;   
x[1] = 
x2;   
y[0] = y1;   
y[1] = y2;
 
 4239   for (i=0;i<3;i++) temp[i] = p1[i];
 
 4241   for (i=0;i<3;i++) temp[i] = p2[i];
 
 4243   PaintLine(xpad[0],xpad[1],xpad[3],xpad[4]);
 
 4257   for (i=0;i<3;i++) temp[i] = p1[i];
 
 4259   for (i=0;i<3;i++) temp[i] = p2[i];
 
 4261   PaintLine(xpad[0],xpad[1],xpad[3],xpad[4]);
 
 4277   Int_t i, i1=-1,np=1;
 
 4278   for (i=0; i<
n-1; i++) {
 
 4290      if (iclip == 0 && i < 
n-2) 
continue;
 
 4324      if (option && (option[0] == 
'C')) mustClip = 
kFALSE;
 
 4327   Int_t i, i1=-1, np=1, iclip=0;
 
 4329   for (i=0; i < 
n-1; i++) {
 
 4343      if (iclip == 0 && i < 
n-2) 
continue;
 
 4375      for (
Int_t i=0; i<
n; i++) {
 
 4394   for (
Int_t i = 1; i < 
n; i++)
 
 4413   for (i=0; i<
n; i++) {
 
 4417         if (i < 
n-1) 
continue;
 
 4419      if (np == 0) 
continue;
 
 4444   for (i=0; i<
n; i++) {
 
 4448         if (i < 
n-1) 
continue;
 
 4450      if (np == 0) 
continue;
 
 4540   if (
gPad == 0) 
return 0; 
 
 4547   if (
this != 
gPad->GetCanvas()) {
 
 4556   TPad *picked = 
this;
 
 4560      pickobj = &dummyLink;
 
 4589         pick = ((
TPad*)obj)->
Pick(px, py, pickobj);
 
 4594      } 
else if (!
gROOT->GetEditorMode()) {
 
 4601                  if (dist == 0) 
break;
 
 4616   if (
fView && !gotPrim) {
 
 4640      if (picked == 
this) {
 
 4663   while ((obj = next()))
 
 4678   ((
TPad*)
this)->SaveAs(filename);
 
 4690   while ((obj = next())) {
 
 4860   TString psname, fs1 = filename;
 
 4877   const char *opt_default = 
"ps";
 
 4879   TString opt = !option ? opt_default : option;
 
 4901   if (strstr(opt, 
"gif+")) {
 
 4904   } 
else if (strstr(opt, 
"gif")) {
 
 4907   } 
else if (strstr(opt, 
"png")) {
 
 4910   } 
else if (strstr(opt, 
"jpg")) {
 
 4913   } 
else if (strstr(opt, 
"tiff")) {
 
 4916   } 
else if (strstr(opt, 
"xpm")) {
 
 4919   } 
else if (strstr(opt, 
"bmp")) {
 
 4926   if (!
gROOT->IsBatch() && image) {
 
 4929         Color_t hc = 
gPad->GetCanvas()->GetHighLightColor();
 
 4930         gPad->GetCanvas()->SetHighLightColor(-1);
 
 4938            Info(
"Print", 
"GIF file %s has been created", psname.
Data());
 
 4940         gPad->GetCanvas()->SetHighLightColor(hc);
 
 4944         Color_t hc = 
gPad->GetCanvas()->GetHighLightColor();
 
 4945         gPad->GetCanvas()->SetHighLightColor(-1);
 
 4952            Info(
"Print", 
"file %s has been created", psname.
Data());
 
 4954         gPad->GetCanvas()->SetHighLightColor(hc);
 
 4956         Warning(
"Print", 
"Unsupported image format %s", psname.
Data());
 
 4962   if (strstr(opt,
"cxx")) {
 
 4968   if (strstr(opt,
"root")) {
 
 4974   if (strstr(opt,
"xml")) {
 
 4981   if (strstr(opt,
"json")) {
 
 4987   if (strstr(opt,
"svg")) {
 
 5002         if ((
h = 
gROOT->GetPluginManager()->FindHandler(
"TVirtualPS", 
"svg"))) {
 
 5003            if (
h->LoadPlugin() == -1)
 
 5029   if (strstr(opt,
"tex") || strstr(opt,
"Standalone")) {
 
 5044         if ((
h = 
gROOT->GetPluginManager()->FindHandler(
"TVirtualPS", 
"tex"))) {
 
 5045            if (
h->LoadPlugin() == -1)
 
 5052      if (strstr(opt,
"Standalone")) standalone = 
kTRUE;
 
 5067            Info(
"Print", 
"Standalone TeX file %s has been created", psname.
Data());
 
 5069            Info(
"Print", 
"TeX file %s has been created", psname.
Data());
 
 5090      copen   = psname.
EndsWith(
"("); 
if (copen)   psname[psname.
Length()-1] = 0;
 
 5091      cclose  = psname.
EndsWith(
")"); 
if (cclose)  psname[psname.
Length()-1] = 0;
 
 5092      copenb  = psname.
EndsWith(
"["); 
if (copenb)  psname[psname.
Length()-1] = 0;
 
 5093      ccloseb = psname.
EndsWith(
"]"); 
if (ccloseb) psname[psname.
Length()-1] = 0;
 
 5097   if (copen  || copenb)  mustClose = 
kFALSE;
 
 5098   if (cclose || ccloseb) mustClose = 
kTRUE;
 
 5109   if (ratio < 1)               pstype = 112;
 
 5110   if (strstr(opt,
"Portrait"))  pstype = 111;
 
 5111   if (strstr(opt,
"Landscape")) pstype = 112;
 
 5112   if (strstr(opt,
"eps"))       pstype = 113;
 
 5113   if (strstr(opt,
"Preview"))   pstype = 113;
 
 5121      if (strstr(opt,
"pdf") || strstr(opt,
"Title:") || strstr(opt,
"EmbedFonts")) {
 
 5122         if ((
h = 
gROOT->GetPluginManager()->FindHandler(
"TVirtualPS", 
"pdf"))) {
 
 5123            if (
h->LoadPlugin() == -1) 
return;
 
 5128         if ((
h = 
gROOT->GetPluginManager()->FindHandler(
"TVirtualPS", 
"image"))) {
 
 5129            if (
h->LoadPlugin() == -1) 
return;
 
 5133         if ((
h = 
gROOT->GetPluginManager()->FindHandler(
"TVirtualPS", 
"ps"))) {
 
 5134            if (
h->LoadPlugin() == -1) 
return;
 
 5142      if (titlePos != 
kNPOS) {
 
 5149         if (!strstr(opt,
"pdf") || image) {
 
 5166         if (!copen) 
Info(
"Print", 
"%s file %s has been created", opt.
Data(), psname.
Data());
 
 5167         else        Info(
"Print", 
"%s file %s has been created using the current canvas", opt.
Data(), psname.
Data());
 
 5176      if (titlePos != 
kNPOS) {
 
 5183         if (cclose) 
Info(
"Print", 
"Current canvas added to %s file %s and file closed", opt.
Data(), psname.
Data());
 
 5184         else        Info(
"Print", 
"%s file %s has been closed", opt.
Data(), psname.
Data());
 
 5189         Info(
"Print", 
"Current canvas added to %s file %s", opt.
Data(), psname.
Data());
 
 5195   if (strstr(opt,
"EmbedFonts")) {
 
 5196      gSystem->
Exec(
Form(
"gs -quiet -dSAFER -dNOPLATFONTS -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dUseCIEColor -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dCompatibilityLevel=1.4 -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -sOutputFile=pdf_temp.pdf -f %s",
 
 5211   if ((
x1 >= 
x2) || (y1 >= y2)) {
 
 5212      Error(
"Range", 
"illegal world coordinates range: x1=%f, y1=%f, x2=%f, y2=%f",
x1,y1,
x2,y2);
 
 5250      Error(
"RangeAxis", 
"illegal axis coordinates range: xmin=%f, ymin=%f, xmax=%f, ymax=%f",
 
 5321   TH1 *hobj = 
nullptr;
 
 5327   while ((obj = next())) {
 
 5339         if (
g) hobj = 
g->GetHistogram();
 
 5356                        gPad->GetUxmax(), 
gPad->GetUymax());
 
 5358      b->SetLineStyle(
gPad->GetFrameLineStyle());
 
 5359      b->SetLineWidth(
gPad->GetFrameLineWidth());
 
 5360      b->SetLineColor(
gPad->GetFrameLineColor());
 
 5364   if (padsav) padsav->
cd();
 
 5494      Error(
"ResizePad", 
"Cannot resize pad. No current pad available.");
 
 5497   if (
gPad->GetWw()==0.0||
gPad->GetWh()==0.0) {
 
 5498      Warning(
"ResizePad", 
"gPad has at least one zero dimension.");
 
 5502      Warning(
"ResizePad", 
"The pad has at least one zero dimension.");
 
 5507   if (
this == 
gPad->GetCanvas()) {
 
 5515         Warning(
"ResizePad", 
"The parent pad has at least one zero dimension.");
 
 5564   while ((obj = next())) {
 
 5566         ((
TPad*)obj)->ResizePad(option);
 
 5570   if (
gPad->IsBatch())
 
 5589            Warning(
"ResizePad", 
"Inf/NaN propagated to the pad. Check drawn objects.");
 
 5590         if (w <= 0 || w > 10000) {
 
 5591            Warning(
"ResizePad", 
"%s width changed from %d to %d\n",
GetName(),w,10);
 
 5594         if (h <= 0 || h > 10000) {
 
 5595            Warning(
"ResizePad", 
"%s height changed from %d to %d\n",
GetName(),
h,10);
 
 5612      if (padsav == 
this) {
 
 5655   Int_t lenfil =  filename ? strlen(filename) : 0;
 
 5658   else            psname = filename;
 
 5669      ((
TPad*)
this)->Print(psname,
"gif");
 
 5721   const char *cname = 
GetName();
 
 5722   size_t nch = strlen(cname);
 
 5723   if (nch < 
sizeof(lcname)) {
 
 5724      strlcpy(lcname, cname, 
sizeof(lcname));
 
 5725      for(
size_t k = 0; k < nch; k++)
 
 5726         if (lcname[k] == 
' ')
 
 5730      else if (
this == 
gPad->GetCanvas())
 
 5737   if (
this != 
gPad->GetCanvas()) {
 
 5738      out <<
"  "<<std::endl;
 
 5739      out <<
"// ------------>Primitives in pad: "<<
GetName()<<std::endl;
 
 5741      out<<
"   TPad *"<<cname<<
" = new TPad("<<quote<<
GetName()<<quote<<
", "<<quote<<
GetTitle()
 
 5748      out<<
"   "<<cname<<
"->Draw();"<<std::endl;
 
 5749      out<<
"   "<<cname<<
"->cd();"<<std::endl;
 
 5751   out<<
"   "<<cname<<
"->Range("<<
fX1<<
","<<
fY1<<
","<<
fX2<<
","<<
fY2<<
");"<<std::endl;
 
 5756      static Int_t viewNumber = 0;
 
 5757      out<<
"   TView *view"<<++viewNumber<<
" = TView::CreateView(1);"<<std::endl;
 
 5758      out<<
"   view"<<viewNumber<<
"->SetRange("<<rmin[0]<<
","<<rmin[1]<<
","<<rmin[2]<<
"," 
 5759                               <<rmax[0]<<
","<<rmax[1]<<
","<<rmax[2]<<
");"<<std::endl;
 
 5764         out<<
"   "<<cname<<
"->SetFillColor(ci);" << std::endl;
 
 5766         out<<
"   "<<cname<<
"->SetFillColor("<<
GetFillColor()<<
");"<<std::endl;
 
 5769      out<<
"   "<<cname<<
"->SetFillStyle("<<
GetFillStyle()<<
");"<<std::endl;
 
 5772      out<<
"   "<<cname<<
"->SetBorderMode("<<
GetBorderMode()<<
");"<<std::endl;
 
 5775      out<<
"   "<<cname<<
"->SetBorderSize("<<
GetBorderSize()<<
");"<<std::endl;
 
 5778      out<<
"   "<<cname<<
"->SetLogx();"<<std::endl;
 
 5781      out<<
"   "<<cname<<
"->SetLogy();"<<std::endl;
 
 5784      out<<
"   "<<cname<<
"->SetLogz();"<<std::endl;
 
 5787      out<<
"   "<<cname<<
"->SetGridx();"<<std::endl;
 
 5790      out<<
"   "<<cname<<
"->SetGridy();"<<std::endl;
 
 5793      out<<
"   "<<cname<<
"->SetTickx("<<
GetTickx()<<
");"<<std::endl;
 
 5796      out<<
"   "<<cname<<
"->SetTicky("<<
GetTicky()<<
");"<<std::endl;
 
 5799      out<<
"   "<<cname<<
"->SetTheta("<<
GetTheta()<<
");"<<std::endl;
 
 5802      out<<
"   "<<cname<<
"->SetPhi("<<
GetPhi()<<
");"<<std::endl;
 
 5805      out<<
"   "<<cname<<
"->SetLeftMargin("<<
GetLeftMargin()<<
");"<<std::endl;
 
 5808      out<<
"   "<<cname<<
"->SetRightMargin("<<
GetRightMargin()<<
");"<<std::endl;
 
 5811      out<<
"   "<<cname<<
"->SetTopMargin("<<
GetTopMargin()<<
");"<<std::endl;
 
 5814      out<<
"   "<<cname<<
"->SetBottomMargin("<<
GetBottomMargin()<<
");"<<std::endl;
 
 5820         out<<
"   "<<cname<<
"->SetFrameFillColor(ci);" << std::endl;
 
 5833         out<<
"   "<<cname<<
"->SetFrameLineColor(ci);" << std::endl;
 
 5853            out<<
"   "<<cname<<
"->SetFrameFillColor(ci);" << std::endl;
 
 5855            out<<
"   "<<cname<<
"->SetFrameFillColor("<<frame->
GetFillColor()<<
");"<<std::endl;
 
 5858         out<<
"   "<<cname<<
"->SetFrameFillStyle("<<frame->
GetFillStyle()<<
");"<<std::endl;
 
 5861         out<<
"   "<<cname<<
"->SetFrameLineStyle("<<frame->
GetLineStyle()<<
");"<<std::endl;
 
 5866            out<<
"   "<<cname<<
"->SetFrameLineColor(ci);" << std::endl;
 
 5868            out<<
"   "<<cname<<
"->SetFrameLineColor("<<frame->
GetLineColor()<<
");"<<std::endl;
 
 5871         out<<
"   "<<cname<<
"->SetFrameLineWidth("<<frame->
GetLineWidth()<<
");"<<std::endl;
 
 5874         out<<
"   "<<cname<<
"->SetFrameBorderMode("<<frame->
GetBorderMode()<<
");"<<std::endl;
 
 5877         out<<
"   "<<cname<<
"->SetFrameBorderSize("<<frame->
GetBorderSize()<<
");"<<std::endl;
 
 5885   while ((obj = next())) {
 
 5887         if (!strcmp(obj->
GetName(),
"Graph")) ((
TGraph*)obj)->SetName(
Form(
"Graph%d",grnum++));
 
 5890   out<<
"   "<<cname<<
"->Modified();"<<std::endl;
 
 5892   if (padsav) padsav->
cd();
 
 5905            Error(
"SetAspectRatio", 
"cannot fix aspect ratio, height of pad is 0");
 
 5929   while ((obj = next())) {
 
 5943   if (fstyle == 0) fstyle = 4000;
 
 6006   if ((xlow < 0) || (xlow > 1) || (ylow < 0) || (ylow > 1)) {
 
 6007      Error(
"TPad", 
"illegal bottom left position: x=%f, y=%f", xlow, ylow);
 
 6010   if ((xup < 0) || (xup > 1) || (yup < 0) || (yup > 1)) {
 
 6011      Error(
"TPad", 
"illegal top right position: x=%f, y=%f", xup, yup);
 
 6014   if (xup-xlow <= 0) {
 
 6015      Error(
"TPad", 
"illegal width: %f", xup-xlow);
 
 6018   if (yup-ylow <= 0) {
 
 6019      Error(
"TPad", 
"illegal height: %f", yup-ylow);
 
 6056   SetPad(xlow, ylow, xup, yup);
 
 6064   if (!view) 
delete fView;
 
 6137   x1 = 
x2 = y1 = y2 = 0;
 
 6139      if (aBBox.
fX<bBBox.
fX) {
 
 6155   else if (mode == 
'y') {
 
 6156      if (aBBox.
fY<bBBox.
fY) {
 
 6224   std::vector<dField> curDist;
 
 6225   std::vector<dField> otherDist;
 
 6235   Int_t dSizeArrow = 12;   
 
 6237   movedX = movedY = 
false;
 
 6240   if (mode != 
'i') resize = 
true;
 
 6247   static TPad *tmpGuideLinePad = 0;
 
 6250   if (tmpGuideLinePad) {
 
 6251      if (padSave == tmpGuideLinePad)
 
 6253      if (
object == tmpGuideLinePad) { 
 
 6254         tmpGuideLinePad->
Delete();
 
 6255         tmpGuideLinePad = 0;
 
 6258      tmpGuideLinePad->
Delete();
 
 6259      tmpGuideLinePad = 0;
 
 6263   prims = 
gPad->GetListOfPrimitives();
 
 6270      if (!tmpGuideLinePad){
 
 6271         tmpGuideLinePad = 
new TPad(
"tmpGuideLinePad", 
"tmpGuideLinePad", 0, 0, 1, 1);
 
 6277         tmpGuideLinePad->
Draw();
 
 6278         tmpGuideLinePad->
cd();
 
 6281      if (cling && !log) threshold = 7;
 
 6294         MX  = 
gPad->GetX1() + 0.5 * (
gPad->GetX2()-
gPad->GetX1());
 
 6295         MY  = 
gPad->GetY1() + 0.5 * (
gPad->GetY2()-
gPad->GetY1());
 
 6296         pMX = 
gPad->XtoPixel(MX);
 
 6297         pMY = 
gPad->YtoPixel(MY);
 
 6300            if (cling && (!resize)) {
 
 6308            L->SetLineColor(lineColor);
 
 6312            if (cling && (!resize)) {
 
 6320            L->SetLineColor(lineColor);
 
 6324         for (
UInt_t i = 0; i<
n; i++) {
 
 6330                     if (cling && (!resize)) {
 
 6337                     L->SetLineColor(lineColor);
 
 6342                     if (cling && (!resize)) {
 
 6350                     L->SetLineColor(lineColor);
 
 6357         for (
UInt_t i = 0; i<
n; i++) {
 
 6360               aBBox = 
a->GetBBox();
 
 6361               for (
UInt_t j = i+1; j<
n; j++) {
 
 6364                     bBBox = 
b->GetBBox();
 
 6372                           if ((
b != cur)&&(
a != cur)) otherDist.push_back(abDist);
 
 6373                           else curDist.push_back(abDist);
 
 6380                           if ((
b != cur)&&(
a != cur)) otherDist.push_back(abDist);
 
 6381                           else                        curDist.push_back(abDist);
 
 6389         for (
UInt_t i = 0; i<curDist.size(); i++) {
 
 6390            for (
UInt_t j = 0; j<otherDist.size(); j++) {
 
 6391               if ((curDist[i].fdir == otherDist[j].fdir) && (otherDist[j].fdir==
'x') && (
TMath::Abs(curDist[i].fdist-otherDist[j].fdist)<threshold)) {
 
 6392                  if (cling && (!movedX) && (!resize)) {
 
 6398                  DrawDist(curDist[i].fa->GetBBox(), curDist[i].fb->GetBBox(), 
'x');
 
 6399                  DrawDist(otherDist[j].fa->GetBBox(), otherDist[j].fb->GetBBox(), 
'x');
 
 6401               if ((curDist[i].fdir == otherDist[j].fdir) && (otherDist[j].fdir==
'y') && (
TMath::Abs(curDist[i].fdist-otherDist[j].fdist)<threshold)) {
 
 6402                  if (cling && (!movedY) && (!resize)) {
 
 6408                  DrawDist(curDist[i].fa->GetBBox(), curDist[i].fb->GetBBox(), 
'y');
 
 6409                  DrawDist(otherDist[j].fa->GetBBox(), otherDist[j].fb->GetBBox(), 
'y');
 
 6412            for (
UInt_t j = i; j<curDist.size(); j++) {
 
 6414                  if ((curDist[i].fdir == curDist[j].fdir) && (curDist[j].fdir==
'x') && (
TMath::Abs(curDist[i].fdist-curDist[j].fdist)<threshold)) {
 
 6415                     if (cling && (!movedX) && (!resize)) {
 
 6420                     DrawDist(curDist[i].fa->GetBBox(), curDist[i].fb->GetBBox(), 
'x');
 
 6421                     DrawDist(curDist[j].fa->GetBBox(), curDist[j].fb->GetBBox(), 
'x');
 
 6424                  if ((curDist[i].fdir == curDist[j].fdir) && (curDist[j].fdir==
'y') && (
TMath::Abs(curDist[i].fdist-curDist[j].fdist)<threshold)) {
 
 6425                     if (cling && (!movedY) && (!resize)) {
 
 6430                     DrawDist(curDist[i].fa->GetBBox(), curDist[i].fb->GetBBox(), 
'y');
 
 6431                     DrawDist(curDist[j].fa->GetBBox(), curDist[j].fb->GetBBox(), 
'y');
 
 6438            for (
UInt_t i = 0; i<
n; i++) {
 
 6440               if (
a && (cur != 
a)) {
 
 6441                  aBBox = 
a->GetBBox();
 
 6453                                    gPad->PixeltoX(aBBox.
fX+aBBox.
fWidth), 
gPad->PixeltoY(aBBox.
fY-dSizeArrow-
gPad->VtoPixel(0)), 0.01, 
"<|>");
 
 6495         if (tmpGuideLinePad) {
 
 6498            tmpGuideLinePad->
Delete();
 
 6499            tmpGuideLinePad = 0;
 
 6506   if (padSave) padSave->
cd();
 
 6586   Int_t nch, nobjects;
 
 6589   if (
b.IsReading()) {
 
 6601         b.ReadClassBuffer(TPad::Class(), 
this, 
v, R__s, R__c);
 
 6606         while ((obj = next())) {
 
 6625            TObject::Streamer(
b);
 
 6626            TAttLine::Streamer(
b);
 
 6627            TAttFill::Streamer(
b);
 
 6628            b >> single; 
fX1 = single;
 
 6629            b >> single; 
fY1 = single;
 
 6630            b >> single; 
fX2 = single;
 
 6631            b >> single; 
fY2 = single;
 
 6634            TAttPad::Streamer(
b);
 
 6636            TVirtualPad::Streamer(
b);
 
 6637            TAttPad::Streamer(
b);
 
 6638            b >> single; 
fX1 = single;
 
 6639            b >> single; 
fY1 = single;
 
 6640            b >> single; 
fX2 = single;
 
 6641            b >> single; 
fY2 = single;
 
 6668         b >> single; 
fWNDC         = single;
 
 6669         b >> single; 
fHNDC         = single;
 
 6679         TVirtualPad::Streamer(
b);
 
 6680         TAttPad::Streamer(
b);
 
 6739         char drawoption[64];
 
 6740         for (
Int_t i = 0; i < nobjects; i++) {
 
 6743            b.ReadFastArray(drawoption,nch);
 
 6766         b >> single; 
fPhi   = single;
 
 6781      b.CheckByteCount(R__s, R__c, TPad::IsA());
 
 6785      b.WriteClassBuffer(TPad::Class(),
this);
 
 6830   while ((obj = next())) {
 
 6914   if (!
gPad) 
return nullptr;
 
 6916   if (strlen(emode)) 
gROOT->SetEditorMode(emode);
 
 6917   if (
gROOT->GetEditorMode() == 0 && strlen(pname) > 2) 
gROOT->SetEditorMode(&pname[1]);
 
 6921   TObject *oldlast = 
gPad->GetListOfPrimitives() ? 
gPad->GetListOfPrimitives()->Last() : 
nullptr;
 
 6924   Bool_t hasname = strlen(pname) > 0;
 
 6925   if (!pname[0] && !emode[0]) testlast = 
kTRUE;
 
 6926   if (testlast) 
gROOT->SetEditorMode();
 
 6928      if (
gROOT->GetEditorMode() == 0) {
 
 6931            if (obj) 
return obj;
 
 6934            if (!
gPad->GetListOfPrimitives()) 
return nullptr;
 
 6935            obj = 
gPad->GetListOfPrimitives()->Last();
 
 6936            if (obj != oldlast) 
return obj;
 
 6957   if (
gPad->IsBatch()) 
return 0;
 
 6958   return (
TObject*)
gROOT->ProcessLineFast(
Form(
"new TGToolTip((TBox*)0x%zx,\"%s\",%d)",
 
 6969   gROOT->ProcessLineFast(
Form(
"delete (TGToolTip*)0x%zx", (
size_t)tip));
 
 6980   gROOT->ProcessLineFast(
Form(
"((TGToolTip*)0x%zx)->Reset((TPad*)0x%zx)",
 
 6981                          (
size_t)tip,(
size_t)
this));
 
 6991   gROOT->ProcessLineFast(
Form(
"((TGToolTip*)0x%zx)->Hide()",(
size_t)tip));
 
 6999   ::Info(
"TPad::x3d()", 
"This function is deprecated. Use %s->GetViewer3D(\"x3d\") instead",this->
GetName());
 
 7002   if (!type || !
type[0]) {
 
 7047   if (!strstr(
type,
"pad")) {
 
 7051         Warning(
"TPad::CreateViewer3D", 
"Cannot create 3D viewer of type: %s", 
type);
 
 7057      if (strstr(
type, 
"gl") && !strstr(
type, 
"ogl"))
 
 7060         createdExternal = 
kTRUE;
 
 7076   if (createdExternal) {
 
static const double x2[5]
 
static const double x1[5]
 
static Bool_t ContainsTImage(TList *li)
Auxiliary function.
 
R__EXTERN TPluginManager * gPluginMgr
 
R__EXTERN TVirtualMutex * gROOTMutex
 
char * Form(const char *fmt,...)
 
char * StrDup(const char *str)
Duplicate the string str.
 
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)
 
Draw all kinds of Arrows.
 
virtual void Draw(Option_t *option="")
Draw this arrow with its current attributes.
 
Abstract base class for elements drawn in the editor.
 
virtual void SetBBoxCenterY(const Int_t y)=0
 
virtual void SetBBoxCenterX(const Int_t x)=0
 
virtual void SetBBoxX1(const Int_t x)=0
 
virtual void SetBBoxY1(const Int_t y)=0
 
virtual void SetBBoxX2(const Int_t x)=0
 
virtual void SetBBoxY2(const Int_t y)=0
 
virtual Rectangle_t GetBBox()=0
 
virtual TPoint GetBBoxCenter()=0
 
virtual Color_t GetFillColor() const
Return the fill area color.
 
virtual Style_t GetFillStyle() const
Return the fill area style.
 
virtual void Modify()
Change current fill area attributes if necessary.
 
Style_t fFillStyle
Fill area style.
 
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
 
virtual Bool_t IsTransparent() const
 
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
 
virtual Color_t GetLineColor() const
Return the line color.
 
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
 
virtual Width_t GetLineWidth() const
Return the line width.
 
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
 
Width_t fLineWidth
Line width.
 
virtual void SetLineColor(Color_t lcolor)
Set the line color.
 
virtual Style_t GetLineStyle() const
Return the line style.
 
virtual void Modify()
Change current line attributes if necessary.
 
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
 
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
 
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
 
virtual void SetBottomMargin(Float_t bottommargin)
Set Pad bottom margin in fraction of the pad height.
 
Color_t GetFrameFillColor() const
 
virtual void SetLeftMargin(Float_t leftmargin)
Set Pad left margin in fraction of the pad width.
 
Color_t GetFrameLineColor() const
 
Style_t GetFrameLineStyle() const
 
Float_t fRightMargin
RightMargin.
 
Style_t GetFrameFillStyle() const
 
Float_t fLeftMargin
LeftMargin.
 
Float_t fTopMargin
TopMargin.
 
Float_t GetLeftMargin() const
 
Width_t GetFrameLineWidth() const
 
Float_t GetBottomMargin() const
 
virtual void SetRightMargin(Float_t rightmargin)
Set Pad right margin in fraction of the pad width.
 
Float_t GetRightMargin() const
 
Int_t GetFrameBorderMode() const
 
virtual void SetTopMargin(Float_t topmargin)
Set Pad top margin in fraction of the pad height.
 
Width_t GetFrameBorderSize() const
 
Float_t fBottomMargin
BottomMargin.
 
Float_t GetTopMargin() const
 
virtual Float_t GetTextSize() const
Return the text size.
 
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
 
virtual Short_t GetTextAlign() const
Return the text alignment.
 
virtual Font_t GetTextFont() const
Return the text font.
 
virtual Color_t GetTextColor() const
Return the text color.
 
virtual void SetTextAngle(Float_t tangle=0)
Set the text angle.
 
virtual Float_t GetTextAngle() const
Return the text angle.
 
virtual void SetTextColor(Color_t tcolor=1)
Set the text color.
 
virtual void SetTextFont(Font_t tfont=62)
Set the text font.
 
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
 
Class to manage histogram axis.
 
virtual Double_t GetBinLowEdge(Int_t bin) const
Return low edge of bin.
 
virtual Int_t FindFixBin(Double_t x) const
Find bin number corresponding to abscissa x.
 
Int_t GetLast() const
Return last bin on the axis i.e.
 
virtual void SetLimits(Double_t xmin, Double_t xmax)
 
virtual TObject * GetParent() const
 
virtual void SetRange(Int_t first=0, Int_t last=0)
Set the viewing range for the axis using bin numbers.
 
virtual Double_t GetBinUpEdge(Int_t bin) const
Return up edge of bin.
 
Int_t GetFirst() const
Return first bin on the axis i.e.
 
Each class (see TClass) has a linked list of its base class(es).
 
TClass * GetClassPointer(Bool_t load=kTRUE)
Get pointer to the base class TClass.
 
virtual void SetY2(Double_t y2)
 
virtual void SetX1(Double_t x1)
 
virtual void Draw(Option_t *option="")
Draw this box with its current attributes.
 
virtual void SetX2(Double_t x2)
 
virtual void SetY1(Double_t y1)
 
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).
 
UInt_t GetWindowHeight() const
 
TObject * GetClickSelected() const
 
TVirtualPad * GetClickSelectedPad() const
 
void SetClickSelectedPad(TPad *pad)
 
void SetSelectedPad(TPad *pad)
 
void SetDoubleBuffer(Int_t mode=1) override
Set Double Buffer On/Off.
 
TCanvasImp * GetCanvasImp() const override
 
Bool_t IsRetained() const override
 
static Bool_t SupportAlpha()
Static function returning "true" if transparency is supported.
 
Int_t GetEventY() const override
 
Bool_t IsBatch() const override
 
TVirtualPadPainter * GetCanvasPainter()
Access and (probably) creation of pad painter.
 
Color_t GetHighLightColor() const override
 
Bool_t IsGrayscale()
Check whether this canvas is to be drawn in grayscale mode.
 
void SaveSource(const char *filename="", Option_t *option="")
Save primitives in this canvas as a C++ macro file.
 
virtual void HandleInput(EEventType button, Int_t x, Int_t y)
Handle Input Events.
 
TObject * GetSelected() const override
 
Int_t GetEventX() const override
 
void SetCanvasSize(UInt_t ww, UInt_t wh) override
Set Width and Height of canvas to ww and wh respectively.
 
TVirtualPad * GetSelectedPad() const override
 
void SetCursor(ECursor cursor) override
Set cursor.
 
Int_t GetCanvasID() const override
 
UInt_t GetWindowWidth() const
 
void FeedbackMode(Bool_t set)
Turn rubberband feedback mode on or off.
 
void SetClickSelected(TObject *obj)
 
TVirtualPad * GetPadSave() const override
 
void Update() override
Update canvas pad buffers.
 
virtual void Cleared(TVirtualPad *pad)
Emit pad Cleared signal.
 
UInt_t GetWw() const override
 
Bool_t OpaqueMoving() const override
 
UInt_t GetWh() const override
 
void SetSelected(TObject *obj) override
Set selected canvas.
 
Int_t GetEvent() const override
 
void SetBatch(Bool_t batch=kTRUE) override
Toggle batch mode.
 
Bool_t OpaqueResizing() const override
 
TClass instances represent classes, structs and namespaces in the ROOT type system.
 
TList * GetListOfMethods(Bool_t load=kTRUE)
Return list containing the TMethods of a class.
 
Int_t GetNmethods()
Return the number of methods of this class Note that in case the list of methods is not yet created,...
 
Int_t GetNdata()
Return the number of data members of this class Note that in case the list of data members is not yet...
 
TList * GetListOfDataMembers(Bool_t load=kTRUE)
Return list containing the TDataMembers of a class.
 
TList * GetListOfBases()
Return list containing the TBaseClass(es) of a class.
 
virtual void ls(Option_t *option="") const
List (ls) all objects in this collection.
 
void Browse(TBrowser *b)
Browse this collection (called by TBrowser).
 
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
 
The color creation and management class.
 
static Int_t GetColor(const char *hexcolor)
Static method returning color number for color specified by hex color string of form: "#rrggbb",...
 
static void SaveColor(std::ostream &out, Int_t ci)
Save a color with index > 228 as a C++ statement(s) on output stream out.
 
static Int_t GetColorBright(Int_t color)
Static function: Returns the bright color number corresponding to n If the TColor object does not exi...
 
static Int_t GetColorDark(Int_t color)
Static function: Returns the dark color number corresponding to n If the TColor object does not exist...
 
virtual void SetAlpha(Float_t a)
 
static void SetGrayscale(Bool_t set=kTRUE)
Set whether all colors should return grayscale values.
 
static void Pave(Int_t event, Int_t px, Int_t py, Int_t mode)
Create a new pavetext in gPad.
 
static void Line(Int_t event, Int_t px, Int_t py, Int_t mode)
Create a new line/arrow in this gPad.
 
static void PolyLine(Int_t event, Int_t px, Int_t py, Int_t mode)
Create a new PolyLine in gPad.
 
static void Text(Int_t event, Int_t px, Int_t py, Int_t mode)
Create a new TLatex at the cursor position in gPad.
 
static void Ellipse(Int_t event, Int_t px, Int_t py, Int_t mode)
Create a new arc/ellipse in this gPad.
 
static void Pad(Int_t event, Int_t px, Int_t py, Int_t)
Create a new pad in gPad.
 
All ROOT classes may have RTTI (run time type identification) support added.
 
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.
 
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.
 
TExec is a utility class that can be used to execute a C++ command when some event happens in a pad.
 
virtual void Exec(const char *command="")
Execute the command referenced by this object.
 
virtual void Paint(Option_t *option="")
Paint this wbox with its current attributes.
 
virtual void UseCurrentStyle()
Replace current frame attributes by current style.
 
A TGraph is an object made of two arrays X and Y with npoints each.
 
@ kClipFrame
Clip to the frame boundary.
 
1-D histogram with a float per channel (see TH1 documentation)}
 
TH1 is the base class of all histogram classes in ROOT.
 
virtual void SetDirectory(TDirectory *dir)
By default, when a histogram is created, it is added to the list of histogram objects in the current ...
 
virtual Double_t GetNormFactor() const
 
virtual Int_t GetDimension() const
 
@ kNoStats
Don't draw stats box.
 
@ kIsZoomed
Bit set when zooming on Y axis.
 
TAxis * GetXaxis()
Get the behaviour adopted by the object about the statoverflows. See EStatOverflows for more informat...
 
virtual Double_t GetMaximum(Double_t maxval=FLT_MAX) const
Return maximum value smaller than maxval of bins in the range, unless the value has been overridden b...
 
virtual void SetMaximum(Double_t maximum=-1111)
 
virtual void SetMinimum(Double_t minimum=-1111)
 
virtual TH1 * DrawCopy(Option_t *option="", const char *name_postfix="_copy") const
Copy this histogram and Draw in the current pad.
 
virtual void Draw(Option_t *option="")
Draw this histogram with options.
 
virtual Int_t GetMaximumBin() const
Return location of bin with maximum value in the range.
 
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
 
virtual Int_t GetMinimumBin() const
Return location of bin with minimum value in the range.
 
virtual Double_t GetMinimum(Double_t minval=-FLT_MAX) const
Return minimum value larger than minval of bins in the range, unless the value has been overridden by...
 
virtual Double_t GetSumOfWeights() const
Return the sum of weights excluding under/overflows.
 
The Histogram stack class.
 
TH1 * GetHistogram() const
Returns a pointer to the histogram used to draw the axis Takes into account the two following cases.
 
Option_t * GetOption() const
 
This class displays a legend box (TPaveText) containing several legend entries.
 
virtual void Draw(Option_t *option="")
Draw this legend with its current attributes.
 
Use the TLine constructor to create a simple line.
 
Option_t * GetOption() const
Returns the object option stored in the list.
 
virtual void Add(TObject *obj)
 
virtual TObject * After(const TObject *obj) const
Returns the object after object obj.
 
virtual TObjLink * LastLink() const
 
virtual TObject * Remove(TObject *obj)
Remove object from the list.
 
virtual void AddFirst(TObject *obj)
Add object at the beginning of the list.
 
virtual TObject * FindObject(const char *name) const
Find an object in this list using its name.
 
virtual TObjLink * FirstLink() const
 
virtual TObject * At(Int_t idx) const
Returns the object at position idx. Returns 0 if idx is out of range.
 
virtual TObject * Last() const
Return the last object in the list. Returns 0 when list is empty.
 
virtual void RecursiveRemove(TObject *obj)
Remove object from this collection and recursively remove the object from all other objects (and coll...
 
virtual TObject * First() const
Return the first object in the list. Returns 0 when list is empty.
 
virtual void AddLast(TObject *obj)
Add object at the end of the list.
 
virtual void Clear(Option_t *option="")
Remove all objects from the list.
 
Each ROOT class (see TClass) has a linked list of methods.
 
A TMultiGraph is a collection of TGraph (or derived) objects.
 
TH1F * GetHistogram()
Returns a pointer to the histogram used to draw the axis.
 
The TNamed class is the base class for all named ROOT classes.
 
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
 
virtual void SetName(const char *name)
Set the name of the TNamed.
 
virtual const char * GetTitle() const
Returns title of object.
 
virtual const char * GetName() const
Returns name of object.
 
Wrapper around a TObject so it can be stored in a TList.
 
void SetObject(TObject *obj)
 
TObject * GetObject() const
 
Option_t * GetOption() const
 
Mother of all ROOT objects.
 
virtual Int_t DistancetoPrimitive(Int_t px, Int_t py)
Computes distance from point (px,py) to the object.
 
virtual const char * GetName() const
Returns name of object.
 
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
 
virtual const char * ClassName() const
Returns name of class to which the object belongs.
 
virtual void UseCurrentStyle()
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyl...
 
virtual Option_t * GetDrawOption() const
Get option used by the graphics system to draw this object.
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
virtual TObject * FindObject(const char *name) const
Must be redefined in derived classes.
 
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save a primitive as a C++ statement(s) on output stream "out".
 
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 Draw(Option_t *option="")
Default Draw method for all objects.
 
virtual void Paint(Option_t *option="")
This method must be overridden if a class wants to paint itself.
 
@ kCannotPick
if object in a pad cannot be picked
 
@ kCanDelete
if object in a list can be deleted
 
@ kMustCleanup
if object destructor must call RecursiveRemove()
 
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
 
The most important graphics class in the ROOT system.
 
Short_t GetBorderMode() const override
 
Bool_t OpaqueMoving() const override
Is pad moving in opaque mode ?
 
void PaintTextNDC(Double_t u, Double_t v, const char *text) override
Paint text in CurrentPad NDC coordinates.
 
Int_t GetTicky() const override
 
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.
 
virtual void HideToolTip(Int_t event)
Hide tool tip depending on the event type.
 
Double_t fAbsYlowNDC
Absolute Y top left corner of pad in NDC [0,1].
 
Double_t fXtoAbsPixelk
Conversion coefficient for X World to absolute pixel.
 
void SetAttMarkerPS(Color_t color, Style_t style, Size_t msize) override
Set postscript marker attributes.
 
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.
 
void AbsCoordinates(Bool_t set) override
 
Double_t AbsPixeltoY(Int_t py) override
 
Bool_t IsBatch() const override
Is pad in batch mode ?
 
Double_t GetUymax() const override
Returns the maximum y-coordinate value visible on the pad. If log axis the returned value is in decad...
 
void AddExec(const char *name, const char *command) override
Add a new TExec object to the list of Execs.
 
Double_t fWNDC
Width of pad along X in Normalized Coordinates (NDC)
 
Int_t NextPaletteColor() override
Get the next autocolor in the pad.
 
void PaintBorder(Color_t color, Bool_t tops)
Paint the pad border.
 
Double_t GetPhi() const override
 
void FillCollideGrid(TObject *o)
Initialise the grid used to find empty space when adding a box (Legend) in a pad.
 
void SetView(TView *view=nullptr) override
Set the current TView. Delete previous view if view=0.
 
TVirtualViewer3D * GetViewer3D(Option_t *type="") override
Create/obtain handle to 3D viewer.
 
Double_t fPixeltoYk
Conversion coefficient for pixel to Y World.
 
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...
 
void PaintLine3D(Float_t *p1, Float_t *p2) override
Paint 3-D line in the CurrentPad.
 
static Int_t fgMaxPickDistance
Maximum Pick Distance.
 
void ResizePad(Option_t *option="") override
Compute pad conversion coefficients.
 
void PaintPolyMarker(Int_t n, Float_t *x, Float_t *y, Option_t *option="") override
Paint polymarker in CurrentPad World coordinates.
 
Double_t fPhi
phi angle to view as lego/surface
 
Double_t fPixeltoY
yworld = fPixeltoYk + fPixeltoY*ypixel
 
virtual void RecordLatex(const TObject *obj)
Emit RecordLatex() signal.
 
Double_t fAbsXlowNDC
Absolute X top left corner of pad in NDC [0,1].
 
Double_t fVtoPixelk
Conversion coefficient for V NDC to pixel.
 
Bool_t fGridx
Set to true if grid along X.
 
TObject * fPadView3D
! 3D View of this TPad
 
void CopyBackgroundPixmaps(TPad *start, TPad *stop, Int_t x, Int_t y)
Copy pixmaps of pads laying below pad "stop" into pad "stop".
 
Double_t GetUxmax() const override
Returns the maximum x-coordinate value visible on the pad. If log axis the returned value is in decad...
 
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.
 
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitives in this pad on the C++ source file out.
 
Double_t fXtoPixel
xpixel = fXtoPixelk + fXtoPixel*xworld
 
TList * fExecs
List of commands to be executed when a pad event occurs.
 
Double_t PadtoY(Double_t y) const override
Convert y from pad to Y.
 
Int_t fTickx
Set to 1 if tick marks along X.
 
void SetBBoxY1(const Int_t y) override
Set top of BoundingBox to a value (resize in y direction on top)
 
Int_t fTicky
Set to 1 if tick marks along Y.
 
Int_t GetPixmapID() const override
 
virtual void XYtoAbsPixel(Double_t x, Double_t y, Int_t &xpixel, Int_t &ypixel) const
 
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.
 
void Browse(TBrowser *b) override
Browse pad.
 
Int_t XtoPixel(Double_t x) const override
 
void SetAttFillPS(Color_t color, Style_t style) override
Set postscript fill area attributes.
 
Int_t fCGnx
! Size of the collide grid along x
 
void SetBBoxCenterY(const Int_t y) override
Set Y coordinate of the center of the Pad.
 
Double_t fPixeltoX
xworld = fPixeltoXk + fPixeltoX*xpixel
 
void CopyBackgroundPixmap(Int_t x, Int_t y)
Copy pixmap of this pad as background of the current pad.
 
Double_t fYtoPixel
ypixel = fYtoPixelk + fYtoPixel*yworld
 
void DeleteToolTip(TObject *tip) override
Delete tool tip object.
 
void Close(Option_t *option="") override
Delete all primitives in pad and pad itself.
 
Double_t fAbsWNDC
Absolute Width of pad along X in NDC.
 
UInt_t GetWw() const override
Get Ww.
 
void PaintModified() override
Traverse pad hierarchy and (re)paint only modified pads.
 
void SetEditable(Bool_t mode=kTRUE) override
Set pad editable yes/no If a pad is not editable:
 
const char * GetTitle() const override
Returns title of object.
 
void PaintDate()
Paint the current date and time if the option date is on.
 
static void SetMaxPickDistance(Int_t maxPick=5)
static function to set the maximum Pick Distance fgMaxPickDistance This parameter is used in TPad::Pi...
 
void SetBBoxX2(const Int_t x) override
Set right hand side of BoundingBox to a value (resize in x direction on right)
 
void SetBBoxX1(const Int_t x) override
Set lefthandside of BoundingBox to a value (resize in x direction on left)
 
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.
 
Double_t GetUymin() const override
Returns the minimum y-coordinate value visible on the pad. If log axis the returned value is in decad...
 
Double_t fX1
X of lower X coordinate.
 
TList * GetListOfPrimitives() const override
 
void SetFillStyle(Style_t fstyle) override
Override TAttFill::FillStyle for TPad because we want to handle style=0 as style 4000.
 
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.
 
Double_t fVtoPixel
ypixel = fVtoPixelk + fVtoPixel*vndc
 
TCanvasImp * GetCanvasImp() const override
Get canvas implementation pointer if any.
 
Int_t GetEvent() const override
Get Event.
 
Double_t PadtoX(Double_t x) const override
Convert x from pad to X.
 
virtual void DrawCrosshair()
Function called to draw a crosshair in the canvas.
 
Double_t YtoPad(Double_t y) const override
Convert y from Y to pad.
 
virtual void RangeChanged()
 
Double_t fUymin
Minimum value on the Y axis.
 
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 SetCursor(ECursor cursor) override
Set cursor type.
 
Int_t GetCanvasID() const override
Get canvas identifier.
 
Int_t fLogz
(=0 if Z linear scale, =1 if log scale)
 
Double_t fYtoPixelk
Conversion coefficient for Y World to pixel.
 
Bool_t PlaceBox(TObject *o, Double_t w, Double_t h, Double_t &xl, Double_t &yb) override
Place a box in NDC space.
 
TPad()
Pad default constructor.
 
Double_t AbsPixeltoX(Int_t px) override
 
void UseCurrentStyle() override
Force a copy of current style for all objects in pad.
 
static Int_t GetMaxPickDistance()
Static function (see also TPad::SetMaxPickDistance)
 
void Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2) override
Set world coordinate system for the pad.
 
Double_t fUtoPixelk
Conversion coefficient for U NDC to pixel.
 
Double_t fPixeltoXk
Conversion coefficient for pixel to X World.
 
Bool_t IsModified() const override
 
Double_t fY1
Y of lower Y coordinate.
 
Int_t GetEventY() const override
Get Y event.
 
Int_t fGLDevice
! OpenGL off-screen pixmap identifier
 
Double_t fYlowNDC
Y bottom left corner of pad in NDC [0,1].
 
TObject * WaitPrimitive(const char *pname="", const char *emode="") override
Loop and sleep until a primitive with name=pname is found in the pad.
 
void SetAttTextPS(Int_t align, Float_t angle, Color_t color, Style_t font, Float_t tsize) override
Set postscript text attributes.
 
Bool_t fModified
Set to true when pad is modified.
 
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.
 
virtual TPad * Pick(Int_t px, Int_t py, TObjLink *&pickobj)
Search for an object at pixel position px,py.
 
void Update() override
Update pad.
 
virtual void SetNumber(Int_t number)
 
Int_t fNumber
pad number identifier
 
void PaintFillAreaNDC(Int_t n, Double_t *x, Double_t *y, Option_t *option="") override
Paint fill area in CurrentPad NDC coordinates.
 
Double_t fAbsPixeltoXk
Conversion coefficient for absolute pixel to X World.
 
void Clear(Option_t *option="") override
Delete all pad primitives.
 
Int_t YtoPixel(Double_t y) const override
 
Int_t GetTickx() const override
 
void PaintLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2) override
Paint line in CurrentPad World coordinates.
 
Int_t GetGLDevice() override
Get GL device.
 
Double_t fAspectRatio
ratio of w/h in case of fixed ratio
 
virtual void RecordPave(const TObject *obj)
Emit RecordPave() signal.
 
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.
 
Double_t fUymax
Maximum value on the Y axis.
 
void Modified(Bool_t flag=1) override
 
void SetLogy(Int_t value=1) override
Set Lin/Log scale for Y.
 
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.
 
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....
 
void HighLight(Color_t col=kRed, Bool_t set=kTRUE) override
Highlight pad.
 
void SetBatch(Bool_t batch=kTRUE) override
Set pad in batch mode.
 
TCanvas * fCanvas
! Pointer to mother canvas
 
TVirtualPad * GetMother() const override
 
TVirtualViewer3D * fViewer3D
! Current 3D viewer
 
virtual void x3d(Option_t *type="")
Deprecated: use TPad::GetViewer3D() instead.
 
Bool_t HasCrosshair() const override
Return kTRUE if the crosshair has been activated (via SetCrosshair).
 
Bool_t IsRetained() const override
Is pad retained ?
 
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.
 
Int_t DistancetoPrimitive(Int_t px, Int_t py) override
Compute distance from point px,py to a box.
 
Bool_t fFixedAspectRatio
True if fixed aspect ratio.
 
void PaintFillArea(Int_t n, Float_t *x, Float_t *y, Option_t *option="") override
 
void RecursiveRemove(TObject *obj) override
Recursively remove object from a pad and its sub-pads.
 
Bool_t HasFixedAspectRatio() const override
 
void CloseToolTip(TObject *tip) override
Hide tool tip.
 
Double_t GetUxmin() const override
Returns the minimum x-coordinate value visible on the pad. If log axis the returned value is in decad...
 
void SetToolTipText(const char *text, Long_t delayms=1000) override
Set tool tip text associated with this pad.
 
void PaintPolyLine(Int_t n, Float_t *x, Float_t *y, Option_t *option="") override
Paint polyline in CurrentPad World coordinates.
 
void ls(Option_t *option="") const override
List all primitives in pad.
 
virtual ~TPad()
Pad destructor.
 
TView * GetView() const override
 
Double_t fVtoAbsPixelk
Conversion coefficient for V NDC to absolute pixel.
 
TVirtualPad * GetPadSave() const override
Get save pad.
 
void SetAttLinePS(Color_t color, Style_t style, Width_t lwidth) override
Set postscript line attributes.
 
TVirtualPad * GetVirtCanvas() const override
Get virtual canvas.
 
void DeleteExec(const char *name) override
Remove TExec name from the list of Execs.
 
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
 
TPoint GetBBoxCenter() override
Return the center of the Pad as TPoint in pixels.
 
void FillCollideGridTFrame(TObject *o)
 
Bool_t GetGridy() const override
 
void LineNotFree(Int_t x1, Int_t x2, Int_t y1, Int_t y2)
Mark as "not free" the cells along a line.
 
Double_t fAbsHNDC
Absolute Height of pad along Y in NDC.
 
void ExecuteEvent(Int_t event, Int_t px, Int_t py) override
Execute action corresponding to one event.
 
TObject * fTip
! tool tip associated with box
 
void SetCanvasSize(UInt_t ww, UInt_t wh) override
Set canvas size.
 
Int_t GetLogz() const override
 
virtual void AutoExec()
Execute the list of Execs when a pad event occurs.
 
Bool_t fAbsCoord
Use absolute coordinates.
 
Int_t fNumPaletteColor
Number of objects with an automatic color.
 
Int_t fCrosshairPos
Position of crosshair.
 
void FillCollideGridTGraph(TObject *o)
 
void SetFixedAspectRatio(Bool_t fixed=kTRUE) override
Fix pad aspect ratio to current value if fixed is true.
 
Short_t GetBorderSize() const override
 
void RedrawAxis(Option_t *option="") override
Redraw the frame axis.
 
void DrawDist(Rectangle_t aBBox, Rectangle_t bBBox, char mode)
Draw Arrows to indicated equal distances of Objects with given BBoxes.
 
Int_t fLogx
(=0 if X linear scale, =1 if log scale)
 
Double_t GetAbsWNDC() const override
 
Int_t YtoAbsPixel(Double_t y) const override
 
Double_t fUtoPixel
xpixel = fUtoPixelk + fUtoPixel*undc
 
Int_t fCrosshair
Crosshair type (0 if no crosshair requested)
 
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 ...
 
void RangeAxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax) override
Set axis coordinate system for the pad.
 
@ kCannotMove
Fixed position.
 
@ kClearAfterCR
Clear after CR.
 
@ kHori
Pad is horizontal.
 
@ kPrintingPS
PS Printing.
 
@ kFraming
Frame is requested.
 
Double_t fUtoAbsPixelk
Conversion coefficient for U NDC to absolute pixel.
 
void ResetToolTip(TObject *tip) override
Reset tool tip, i.e.
 
Double_t GetTheta() const override
 
TList * fPrimitives
->List of primitives (subpads)
 
UInt_t GetWh() const override
Get Wh.
 
TCanvas * GetCanvas() const override
 
Short_t fBorderSize
pad bordersize in pixels
 
TView * fView
! Pointer to 3-D view (if one exists)
 
Rectangle_t GetBBox() override
Return the bounding Box of the Pad.
 
Bool_t * fCollideGrid
! Grid used to find empty space when adding a box (Legend) in a pad
 
void Paint(Option_t *option="") override
Paint all primitives in pad.
 
void FillCollideGridTBox(TObject *o)
 
Double_t fTheta
theta angle to view as lego/surface
 
void DrawCollideGrid()
This method draws the collide grid on top of the canvas.
 
void SetVertical(Bool_t vert=kTRUE) override
Set pad vertical (default) or horizontal.
 
void FillCollideGridTH1(TObject *o)
 
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.
 
void PaintText(Double_t x, Double_t y, const char *text) override
Paint text in CurrentPad World coordinates.
 
Int_t fPadPaint
Set to 1 while painting the pad.
 
static void DrawColorTable()
Static function to Display Color Table in a pad.
 
Double_t GetXlowNDC() const override
 
void SaveAs(const char *filename="", Option_t *option="") const override
Save the pad content in a file.
 
Int_t fPixmapID
! Off-screen pixmap identifier
 
Bool_t fEditable
True if canvas is editable.
 
Double_t GetYlowNDC() const override
 
TObject * FindObject(const char *name) const override
Search if object named name is inside this pad or in pads inside this pad.
 
Color_t GetHighLightColor() const override
Get highlight color.
 
Bool_t OpaqueResizing() const override
Is pad resizing in opaque mode ?
 
TVirtualPad * cd(Int_t subpadnumber=0) override
Set Current pad.
 
Int_t GetLogy() const override
 
void PaintLineNDC(Double_t u1, Double_t v1, Double_t u2, Double_t v2) override
Paint line in normalized coordinates.
 
void Print(const char *filename="") const override
This method is equivalent to SaveAs("filename"). See TPad::SaveAs for details.
 
Int_t GetEventX() const override
Get X event.
 
TFrame * GetFrame() override
Get frame.
 
Double_t fYtoAbsPixelk
Conversion coefficient for Y World to absolute pixel.
 
Double_t fXtoPixelk
Conversion coefficient for X World to pixel.
 
Int_t fLogy
(=0 if Y linear scale, =1 if log scale)
 
TFrame * fFrame
! Pointer to 2-D frame (if one exists)
 
TVirtualPadPainter * GetPainter() override
Get pad painter from TCanvas.
 
void Draw(Option_t *option="") override
Draw Pad in Current pad (re-parent pad if necessary).
 
Double_t fHNDC
Height of pad along Y in Normalized Coordinates (NDC)
 
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,...
 
virtual Bool_t IsEditable() const override
 
Int_t GetCrosshair() const
Return the crosshair type (from the mother canvas) crosshair type = 0 means no crosshair.
 
void GetRangeAxis(Double_t &xmin, Double_t &ymin, Double_t &xmax, Double_t &ymax) override
Return pad axis coordinates range.
 
void SetBorderMode(Short_t bordermode) override
 
void PaintBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Option_t *option="") override
Paint box in CurrentPad World coordinates.
 
void DrawClassObject(const TObject *obj, Option_t *option="") override
Draw class inheritance tree of the class to which obj belongs.
 
Int_t fCGny
! Size of the collide grid along y
 
Double_t fXlowNDC
X bottom left corner of pad in NDC [0,1].
 
TObject * GetPrimitive(const char *name) const override
Get primitive.
 
Double_t fUxmin
Minimum value on the X axis.
 
Double_t GetAbsHNDC() const override
 
void SetBBoxCenter(const TPoint &p) override
Set center of the Pad.
 
void SetSelected(TObject *obj) override
Set selected.
 
TObject * GetSelected() const override
Get selected.
 
void GetRange(Double_t &x1, Double_t &y1, Double_t &x2, Double_t &y2) override
Return pad world coordinates range.
 
void PaintPolyLineNDC(Int_t n, Double_t *x, Double_t *y, Option_t *option="") override
Paint polyline in CurrentPad NDC coordinates.
 
Bool_t IsVertical() const override
 
Int_t IncrementPaletteColor(Int_t i, TString opt) override
Increment (i==1) or set (i>1) the number of autocolor in the pad.
 
void PaintPadFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax) override
Paint histogram/graph frame.
 
Double_t GetAbsYlowNDC() const override
 
Double_t fUxmax
Maximum value on the X axis.
 
Double_t fY2
Y of upper Y coordinate.
 
Double_t fAbsPixeltoYk
Conversion coefficient for absolute pixel to Y World.
 
TVirtualPad * GetSelectedPad() const override
Get selected pad.
 
void PaintPolyLine3D(Int_t n, Double_t *p) override
Paint 3-D polyline in the CurrentPad.
 
TVirtualPad * GetPad(Int_t subpadnumber) const override
Get a pointer to subpadnumber of this pad.
 
Short_t fBorderMode
Bordermode (-1=down, 0 = no border, 1=up)
 
void SetLogx(Int_t value=1) override
Set Lin/Log scale for X.
 
void ReleaseViewer3D(Option_t *type="") override
Release current (external) viewer.
 
void SetCrosshair(Int_t crhair=1) override
Set crosshair active/inactive.
 
void SetDoubleBuffer(Int_t mode=1) override
Set double buffer mode ON or OFF.
 
Int_t fNextPaletteColor
Next automatic color.
 
void SetBBoxCenterX(const Int_t x) override
Set X coordinate of the center of the Pad.
 
Int_t GetLogx() const override
 
TObject * fPadPointer
! free pointer
 
Double_t GetX2() const override
 
TObject * CreateToolTip(const TBox *b, const char *text, Long_t delayms) override
Create a tool tip and return its pointer.
 
Double_t GetWNDC() const override
Get width of pad along X in Normalized Coordinates (NDC)
 
void Pop() override
Pop pad to the top of the stack.
 
Double_t GetAbsXlowNDC() const override
 
Double_t GetHNDC() const override
Get height of pad along Y in Normalized Coordinates (NDC)
 
TPad * fMother
! pointer to mother of the list
 
const char * GetName() const override
Returns name of object.
 
Int_t XtoAbsPixel(Double_t x) const override
 
Bool_t fGridy
Set to true if grid along Y.
 
void SetBBoxY2(const Int_t y) override
Set bottom of BoundingBox to a value (resize in y direction on bottom)
 
Double_t XtoPad(Double_t x) const override
Convert x from X to pad.
 
The histogram statistics painter class.
 
A Pave (see TPave) with text, lines or/and boxes inside.
 
virtual TText * AddText(Double_t x1, Double_t y1, const char *label)
Add a new Text line to this pavetext at given coordinates.
 
virtual void Draw(Option_t *option="")
Draw this pavetext with its current attributes.
 
virtual TLine * AddLine(Double_t x1=0, Double_t y1=0, Double_t x2=0, Double_t y2=0)
Add a new graphics line to this pavetext.
 
virtual TBox * AddBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Add a new graphics box to this pavetext.
 
Int_t GetBorderSize() const
 
virtual void SetBorderSize(Int_t bordersize=4)
 
Longptr_t ExecPlugin(int nargs, const T &... params)
 
TPluginHandler * FindHandler(const char *base, const char *uri=0)
Returns the handler if there exists a handler for the specified URI.
 
void Emit(const char *signal, const T &arg)
Activate signal with single parameter.
 
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.
 
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
 
TString & Replace(Ssiz_t pos, Ssiz_t n, const char *s)
 
const char * Data() const
 
TString & ReplaceAll(const TString &s1, const TString &s2)
 
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
 
TString & Prepend(const char *cs)
 
TString & Append(const char *cs)
 
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
 
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
 
void SetPadBorderMode(Int_t mode=1)
 
void SetPadTopMargin(Float_t margin=0.1)
 
void SetOptLogx(Int_t logx=1)
 
void SetPadBottomMargin(Float_t margin=0.1)
 
Int_t GetOptTitle() const
 
Int_t GetPadTickX() const
 
Color_t GetPadColor() const
 
void SetPadRightMargin(Float_t margin=0.1)
 
void SetTitleFont(Style_t font=62, Option_t *axis="X")
 
Float_t GetPadRightMargin() const
 
void SetTitleBorderSize(Width_t size=2)
 
Style_t GetTitleFont(Option_t *axis="X") const
Return title font.
 
void SetPadTickY(Int_t ticky)
 
Color_t GetTitleFillColor() const
 
void SetPadTickX(Int_t tickx)
 
Bool_t GetPadGridY() const
 
void SetPadGridX(Bool_t gridx)
 
void SetTitleTextColor(Color_t color=1)
 
Float_t GetPadLeftMargin() const
 
Double_t GetHatchesSpacing() const
 
Bool_t GetPadGridX() const
 
void SetPadLeftMargin(Float_t margin=0.1)
 
void SetPadGridY(Bool_t gridy)
 
void SetOptLogy(Int_t logy=1)
 
Int_t GetPadTickY() const
 
Width_t GetPadBorderSize() const
 
Width_t GetTitleBorderSize() const
 
Int_t GetColorPalette(Int_t i) const
Return color number i in current palette.
 
void SetTitleFillColor(Color_t color=1)
 
Float_t GetPadBottomMargin() const
 
void SetOptLogz(Int_t logz=1)
 
void SetPadColor(Color_t color=19)
 
Color_t GetTitleTextColor() const
 
Int_t GetPadBorderMode() const
 
Int_t GetNumberOfColors() const
Return number of colors in the color palette.
 
void SetPadBorderSize(Width_t size=1)
 
Int_t GetHatchesLineWidth() const
 
Float_t GetPadTopMargin() const
 
virtual Bool_t ExpandPathName(TString &path)
Expand a pathname getting rid of special shell characters like ~.
 
virtual Int_t Exec(const char *shellcmd)
Execute a command.
 
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
 
virtual int Rename(const char *from, const char *to)
Rename a file.
 
virtual void Sleep(UInt_t milliSec)
Sleep milliSec milli seconds.
 
virtual Bool_t ProcessEvents()
Process pending events (GUI, timers, sockets).
 
Base class for several text objects.
 
virtual TText * DrawText(Double_t x, Double_t y, const char *text)
Draw this text with new coordinates.
 
virtual void SetNDC(Bool_t isNDC=kTRUE)
Set NDC mode on if isNDC = kTRUE, off otherwise.
 
virtual void Paint(Option_t *option="")
Paint this text with its current attributes.
 
virtual void WCtoNDC(const Float_t *pw, Float_t *pn)=0
 
virtual Int_t GetDistancetoAxis(Int_t axis, Int_t px, Int_t py, Double_t &ratio)=0
 
virtual void ResizePad()=0
 
virtual void GetRange(Float_t *min, Float_t *max)=0
 
Provides 3D viewer interface (TVirtualViewer3D) support on a pad.
 
TVirtualPS is an abstract interface to Postscript, PDF, SVG.
 
virtual void Text(Double_t x, Double_t y, const char *string)=0
 
virtual void DrawPS(Int_t n, Float_t *xw, Float_t *yw)=0
 
virtual void DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2)=0
 
virtual void DrawPolyMarker(Int_t n, Float_t *x, Float_t *y)=0
 
virtual void Open(const char *filename, Int_t type=-111)=0
 
virtual void DrawFrame(Double_t xl, Double_t yl, Double_t xt, Double_t yt, Int_t mode, Int_t border, Int_t dark, Int_t light)=0
 
To make it possible to use GL for 2D graphic in a TPad/TCanvas.
 
virtual void DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, EBoxMode mode)=0
 
virtual void ClearDrawable()=0
 
virtual void SetOpacity(Int_t percent)=0
 
virtual void DrawPolyLine(Int_t n, const Double_t *x, const Double_t *y)=0
 
virtual Color_t GetLineColor() const =0
 
virtual void SetLineStyle(Style_t lstyle)=0
 
virtual void SetFillColor(Color_t fcolor)=0
 
virtual void DestroyDrawable(Int_t device)=0
 
virtual void CopyDrawable(Int_t device, Int_t px, Int_t py)=0
 
virtual void DrawLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2)=0
 
virtual void DrawFillArea(Int_t n, const Double_t *x, const Double_t *y)=0
 
virtual Int_t CreateDrawable(UInt_t w, UInt_t h)=0
 
virtual void SetLineColor(Color_t lcolor)=0
 
virtual Style_t GetLineStyle() const =0
 
virtual void SaveImage(TVirtualPad *pad, const char *fileName, Int_t type) const =0
 
virtual void DrawLineNDC(Double_t u1, Double_t v1, Double_t u2, Double_t v2)=0
 
virtual void SetFillStyle(Style_t fstyle)=0
 
virtual void SetTextSize(Float_t tsize=1)=0
 
virtual void SetLineWidth(Width_t lwidth)=0
 
virtual void DrawPolyLineNDC(Int_t n, const Double_t *u, const Double_t *v)=0
 
virtual void DrawTextNDC(Double_t u, Double_t v, const char *text, ETextMode mode)=0
 
virtual Width_t GetLineWidth() const =0
 
virtual void SelectDrawable(Int_t device)=0
 
virtual void DrawPolyMarker(Int_t n, const Double_t *x, const Double_t *y)=0
 
virtual void DrawText(Double_t x, Double_t y, const char *text, ETextMode mode)=0
 
virtual Style_t GetFillStyle() const =0
 
virtual void InvalidateCS()
Empty definition.
 
TVirtualPad is an abstract base class for the Pad and Canvas classes.
 
virtual Int_t YtoAbsPixel(Double_t y) const =0
 
virtual Double_t GetX2() const =0
 
virtual TVirtualPad * cd(Int_t subpadnumber=0)=0
 
virtual Int_t XtoAbsPixel(Double_t x) const =0
 
virtual Double_t GetY1() const =0
 
const char * GetName() const override=0
Returns name of object.
 
virtual Int_t GetNumber() const =0
 
virtual Int_t VtoPixel(Double_t v) const =0
 
virtual Int_t VtoAbsPixel(Double_t v) const =0
 
virtual void RangeAxisChanged()
 
virtual Double_t GetY2() const =0
 
virtual Int_t UtoPixel(Double_t u) const =0
 
virtual void GetRange(Double_t &x1, Double_t &y1, Double_t &x2, Double_t &y2)=0
 
virtual Short_t GetBorderSize() const =0
 
virtual Bool_t IsEditable() const =0
 
virtual Double_t GetX1() const =0
 
Abstract 3D shapes viewer.
 
static TVirtualViewer3D * Viewer3D(TVirtualPad *pad=0, Option_t *type="")
Create a Viewer 3D of specified type.
 
virtual Bool_t BuildingScene() const =0
 
virtual void EndScene()=0
 
virtual void PadPaint(TVirtualPad *)
 
virtual void BeginScene()=0
 
virtual Bool_t CanLoopOnPrimitives() const
 
Short_t GetBorderSize() const
 
Short_t GetBorderMode() const
 
virtual void SetBorderMode(Short_t bordermode)
 
virtual void SetBorderSize(Short_t bordersize)
 
void box(Int_t pat, Double_t x1, Double_t y1, Double_t x2, Double_t y2)
 
R__ALWAYS_INLINE bool HasBeenDeleted(const TObject *obj)
Check if the TObject's memory has been deleted.
 
void CallRecursiveRemoveIfNeeded(TObject &obj)
call RecursiveRemove for obj if gROOT is valid and obj.TestBit(kMustCleanup) is true.
 
Int_t Nint(T x)
Round to nearest integer. Rounds half integers to the nearest even integer.
 
Short_t Max(Short_t a, Short_t b)
 
Double_t Floor(Double_t x)
 
Double_t Ceil(Double_t x)
 
Int_t Finite(Double_t x)
Check if it is finite with a mask in order to be consistent in presence of fast math.
 
Double_t Sqrt(Double_t x)
 
LongDouble_t Power(LongDouble_t x, LongDouble_t y)
 
Short_t Min(Short_t a, Short_t b)
 
Double_t Log10(Double_t x)
 
void inv(rsa_NUMBER *, rsa_NUMBER *, rsa_NUMBER *)
 
Rectangle structure (maps to the X11 XRectangle structure)
 
struct used by ShowGuidelines to store the distance Field between objects in the canvas.
 
dField(TAttBBox2D *a, TAttBBox2D *b, Int_t dist, char direction)