41 TBox::TBox(): TObject(), TAttLine(), TAttFill()
54 TBox::TBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
55 : TObject(), TAttLine(), TAttFill()
57 if (x2 >= x1) {fX1 =x1; fX2 = x2;}
58 else {fX1 = x2; fX2 = x1;}
59 if (y2 >= y1) {fY1 =y1; fY2 = y2;}
60 else {fY1 = y2; fY2 = y1;}
71 gPad->CloseToolTip(fTip);
72 gPad->DeleteToolTip(fTip);
79 TBox::TBox(
const TBox &box) : TObject(box), TAttLine(box), TAttFill(box), TAttBBox2D(box)
86 ((TBox&)box).TBox::Copy(*
this);
92 TBox& TBox::operator=(
const TBox& b)
95 TObject::operator=(b);
96 TAttLine::operator=(b);
97 TAttFill::operator=(b);
103 fResizing=b.fResizing;
111 void TBox::Copy(TObject &obj)
const
114 TAttLine::Copy(((TBox&)obj));
115 TAttFill::Copy(((TBox&)obj));
116 ((TBox&)obj).fX1 = fX1;
117 ((TBox&)obj).fY1 = fY1;
118 ((TBox&)obj).fX2 = fX2;
119 ((TBox&)obj).fY2 = fY2;
120 ((TBox&)obj).fResizing = fResizing;
121 ((TBox&)obj).fTip = 0;
134 Int_t TBox::DistancetoPrimitive(Int_t px, Int_t py)
136 Int_t pxl, pyl, pxt, pyt;
137 Int_t px1 = gPad->XtoAbsPixel(fX1);
138 Int_t py1 = gPad->YtoAbsPixel(fY1);
139 Int_t px2 = gPad->XtoAbsPixel(fX2);
140 Int_t py2 = gPad->YtoAbsPixel(fY2);
142 Bool_t isBox = !(InheritsFrom(
"TPave") || InheritsFrom(
"TWbox"));
145 if (gPad->GetLogx()) {
146 if (fX1>0) px1 = gPad->XtoAbsPixel(TMath::Log10(fX1));
147 if (fX2>0) px2 = gPad->XtoAbsPixel(TMath::Log10(fX2));
149 if (gPad->GetLogy()) {
150 if (fY1>0) py1 = gPad->YtoAbsPixel(TMath::Log10(fY1));
151 if (fY2>0) py2 = gPad->YtoAbsPixel(TMath::Log10(fY2));
155 if (px1 < px2) {pxl = px1; pxt = px2;}
156 else {pxl = px2; pxt = px1;}
157 if (py1 < py2) {pyl = py1; pyt = py2;}
158 else {pyl = py2; pyt = py1;}
161 if (GetFillStyle()) {
162 if ( (px >= pxl && px <= pxt) && (py >= pyl && py <= pyt) )
return 0;
167 Int_t dxl = TMath::Abs(px - pxl);
168 if (py < pyl) dxl += pyl - py;
169 if (py > pyt) dxl += py - pyt;
170 Int_t dxt = TMath::Abs(px - pxt);
171 if (py < pyl) dxt += pyl - py;
172 if (py > pyt) dxt += py - pyt;
173 Int_t dyl = TMath::Abs(py - pyl);
174 if (px < pxl) dyl += pxl - px;
175 if (px > pxt) dyl += px - pxt;
176 Int_t dyt = TMath::Abs(py - pyt);
177 if (px < pxl) dyt += pxl - px;
178 if (px > pxt) dyt += px - pxt;
180 Int_t distance = dxl;
181 if (dxt < distance) distance = dxt;
182 if (dyl < distance) distance = dyl;
183 if (dyt < distance) distance = dyt;
185 return distance - Int_t(0.5*fLineWidth);
194 void TBox::Draw(Option_t *option)
203 TBox *TBox::DrawBox(Double_t x1, Double_t y1,Double_t x2, Double_t y2)
205 TBox *newbox =
new TBox(x1,y1,x2,y2);
206 TAttLine::Copy(*newbox);
207 TAttFill::Copy(*newbox);
208 newbox->SetBit(kCanDelete);
230 void TBox::ExecuteEvent(Int_t event, Int_t px, Int_t py)
233 if (!gPad->IsEditable() &&
event != kMouseEnter)
return;
235 if (TestBit(kCannotMove))
return;
237 Bool_t isBox = !(InheritsFrom(
"TPave") || InheritsFrom(
"TWbox"));
239 const Int_t kMaxDiff = 7;
240 const Int_t kMinSize = 20;
242 static Int_t px1, px2, py1, py2, pxl, pyl, pxt, pyt, pxold, pyold;
243 static Int_t px1p, px2p, py1p, py2p, pxlp, pylp, pxtp, pytp;
244 static Double_t oldX1, oldY1, oldX2, oldY2;
245 static Bool_t pA, pB, pC, pD, pTop, pL, pR, pBot, pINSIDE;
247 TVirtualPad *parent = gPad;
248 Bool_t opaque = gPad->OpaqueMoving();
249 Bool_t ropaque = gPad->OpaqueResizing();
256 if (fTip) gPad->ResetToolTip(fTip);
270 gVirtualX->SetLineColor(-1);
273 gVirtualX->SetLineColor(GetFillColor());
275 gVirtualX->SetLineColor(1);
276 gVirtualX->SetLineWidth(2);
282 px1 = gPad->XtoAbsPixel(GetX1());
283 py1 = gPad->YtoAbsPixel(GetY1());
284 px2 = gPad->XtoAbsPixel(GetX2());
285 py2 = gPad->YtoAbsPixel(GetY2());
288 if (gPad->GetLogx()) {
289 if (fX1>0) px1 = gPad->XtoAbsPixel(TMath::Log10(fX1));
290 if (fX2>0) px2 = gPad->XtoAbsPixel(TMath::Log10(fX2));
292 if (gPad->GetLogy()) {
293 if (fY1>0) py1 = gPad->YtoAbsPixel(TMath::Log10(fY1));
294 if (fY2>0) py2 = gPad->YtoAbsPixel(TMath::Log10(fY2));
313 px1p = parent->XtoAbsPixel(parent->GetX1()) + parent->GetBorderSize();
314 py1p = parent->YtoAbsPixel(parent->GetY1()) - parent->GetBorderSize();
315 px2p = parent->XtoAbsPixel(parent->GetX2()) - parent->GetBorderSize();
316 py2p = parent->YtoAbsPixel(parent->GetY2()) + parent->GetBorderSize();
333 pA = pB = pC = pD = pTop = pL = pR = pBot = pINSIDE = kFALSE;
336 if (TMath::Abs(px - pxl) <= kMaxDiff && TMath::Abs(py - pyl) <= kMaxDiff) {
337 pxold = pxl; pyold = pyl; pA = kTRUE;
338 gPad->SetCursor(kTopLeft);
341 if (TMath::Abs(px - pxt) <= kMaxDiff && TMath::Abs(py - pyl) <= kMaxDiff) {
342 pxold = pxt; pyold = pyl; pB = kTRUE;
343 gPad->SetCursor(kTopRight);
346 if (TMath::Abs(px - pxt) <= kMaxDiff && TMath::Abs(py - pyt) <= kMaxDiff) {
347 pxold = pxt; pyold = pyt; pC = kTRUE;
348 gPad->SetCursor(kBottomRight);
351 if (TMath::Abs(px - pxl) <= kMaxDiff && TMath::Abs(py - pyt) <= kMaxDiff) {
352 pxold = pxl; pyold = pyt; pD = kTRUE;
353 gPad->SetCursor(kBottomLeft);
356 if ((px > pxl+kMaxDiff && px < pxt-kMaxDiff) &&
357 TMath::Abs(py - pyl) < kMaxDiff) {
358 pxold = pxl; pyold = pyl; pTop = kTRUE;
359 gPad->SetCursor(kTopSide);
362 if ((px > pxl+kMaxDiff && px < pxt-kMaxDiff) &&
363 TMath::Abs(py - pyt) < kMaxDiff) {
364 pxold = pxt; pyold = pyt; pBot = kTRUE;
365 gPad->SetCursor(kBottomSide);
368 if ((py > pyl+kMaxDiff && py < pyt-kMaxDiff) &&
369 TMath::Abs(px - pxl) < kMaxDiff) {
370 pxold = pxl; pyold = pyl; pL = kTRUE;
371 gPad->SetCursor(kLeftSide);
374 if ((py > pyl+kMaxDiff && py < pyt-kMaxDiff) &&
375 TMath::Abs(px - pxt) < kMaxDiff) {
376 pxold = pxt; pyold = pyt; pR = kTRUE;
377 gPad->SetCursor(kRightSide);
380 if ((px > pxl+kMaxDiff && px < pxt-kMaxDiff) &&
381 (py > pyl+kMaxDiff && py < pyt-kMaxDiff)) {
382 pxold = px; pyold = py; pINSIDE = kTRUE;
383 if (event == kButton1Down)
384 gPad->SetCursor(kMove);
386 gPad->SetCursor(kCross);
390 if (pA || pB || pC || pD || pTop || pL || pR || pBot)
393 if (!pA && !pB && !pC && !pD && !pTop && !pL && !pR && !pBot && !pINSIDE)
394 gPad->SetCursor(kCross);
398 case kArrowKeyRelease:
404 if (!ropaque) gVirtualX->DrawBox(pxold, pyt, pxt, pyold, TVirtualX::kHollow);
405 if (px > pxt-kMinSize) { px = pxt-kMinSize; wx = px; }
406 if (py > pyt-kMinSize) { py = pyt-kMinSize; wy = py; }
407 if (px < pxlp) { px = pxlp; wx = px; }
408 if (py < pylp) { py = pylp; wy = py; }
409 if (!ropaque) gVirtualX->DrawBox(px , pyt, pxt, py, TVirtualX::kHollow);
412 if (!ropaque) gVirtualX->DrawBox(pxl , pyt, pxold, pyold, TVirtualX::kHollow);
413 if (px < pxl+kMinSize) { px = pxl+kMinSize; wx = px; }
414 if (py > pyt-kMinSize) { py = pyt-kMinSize; wy = py; }
415 if (px > pxtp) { px = pxtp; wx = px; }
416 if (py < pylp) { py = pylp; wy = py; }
417 if (!ropaque) gVirtualX->DrawBox(pxl , pyt, px , py, TVirtualX::kHollow);
420 if (!ropaque) gVirtualX->DrawBox(pxl , pyl, pxold, pyold, TVirtualX::kHollow);
421 if (px < pxl+kMinSize) { px = pxl+kMinSize; wx = px; }
422 if (py < pyl+kMinSize) { py = pyl+kMinSize; wy = py; }
423 if (px > pxtp) { px = pxtp; wx = px; }
424 if (py > pytp) { py = pytp; wy = py; }
425 if (!ropaque) gVirtualX->DrawBox(pxl , pyl, px , py, TVirtualX::kHollow);
428 if (!ropaque) gVirtualX->DrawBox(pxold, pyold, pxt, pyl, TVirtualX::kHollow);
429 if (px > pxt-kMinSize) { px = pxt-kMinSize; wx = px; }
430 if (py < pyl+kMinSize) { py = pyl+kMinSize; wy = py; }
431 if (px < pxlp) { px = pxlp; wx = px; }
432 if (py > pytp) { py = pytp; wy = py; }
433 if (!ropaque) gVirtualX->DrawBox(px , py , pxt, pyl, TVirtualX::kHollow);
436 if (!ropaque) gVirtualX->DrawBox(px1, py1, px2, py2, TVirtualX::kHollow);
438 if (py2 > py1-kMinSize) { py2 = py1-kMinSize; wy = py2; }
439 if (py2 < py2p) { py2 = py2p; wy = py2; }
440 if (!ropaque) gVirtualX->DrawBox(px1, py1, px2, py2, TVirtualX::kHollow);
443 if (!ropaque) gVirtualX->DrawBox(px1, py1, px2, py2, TVirtualX::kHollow);
445 if (py1 < py2+kMinSize) { py1 = py2+kMinSize; wy = py1; }
446 if (py1 > py1p) { py1 = py1p; wy = py1; }
447 if (!ropaque) gVirtualX->DrawBox(px1, py1, px2, py2, TVirtualX::kHollow);
450 if (!ropaque) gVirtualX->DrawBox(px1, py1, px2, py2, TVirtualX::kHollow);
452 if (px1 > px2-kMinSize) { px1 = px2-kMinSize; wx = px1; }
453 if (px1 < px1p) { px1 = px1p; wx = px1; }
454 if (!ropaque) gVirtualX->DrawBox(px1, py1, px2, py2, TVirtualX::kHollow);
457 if (!ropaque) gVirtualX->DrawBox(px1, py1, px2, py2, TVirtualX::kHollow);
459 if (px2 < px1+kMinSize) { px2 = px1+kMinSize; wx = px2; }
460 if (px2 > px2p) { px2 = px2p; wx = px2; }
461 if (!ropaque) gVirtualX->DrawBox(px1, py1, px2, py2, TVirtualX::kHollow);
464 if (!opaque) gVirtualX->DrawBox(px1, py1, px2, py2, TVirtualX::kHollow);
465 Int_t dx = px - pxold;
466 Int_t dy = py - pyold;
467 px1 += dx; py1 += dy; px2 += dx; py2 += dy;
468 if (px1 < px1p) { dx = px1p - px1; px1 += dx; px2 += dx; wx = px+dx; }
469 if (px2 > px2p) { dx = px2 - px2p; px1 -= dx; px2 -= dx; wx = px-dx; }
470 if (py1 > py1p) { dy = py1 - py1p; py1 -= dy; py2 -= dy; wy = py-dy; }
471 if (py2 < py2p) { dy = py2p - py2; py1 += dy; py2 += dy; wy = py+dy; }
472 if (!opaque) gVirtualX->DrawBox(px1, py1, px2, py2, TVirtualX::kHollow);
478 gVirtualX->Warp(px, py);
485 if ((pINSIDE && opaque) || (fResizing && ropaque)) {
487 fX1 = gPad->AbsPixeltoX(pxold);
488 fY1 = gPad->AbsPixeltoY(pyt);
489 fX2 = gPad->AbsPixeltoX(pxt);
490 fY2 = gPad->AbsPixeltoY(pyold);
493 fX1 = gPad->AbsPixeltoX(pxl);
494 fY1 = gPad->AbsPixeltoY(pyt);
495 fX2 = gPad->AbsPixeltoX(pxold);
496 fY2 = gPad->AbsPixeltoY(pyold);
499 fX1 = gPad->AbsPixeltoX(pxl);
500 fY1 = gPad->AbsPixeltoY(pyold);
501 fX2 = gPad->AbsPixeltoX(pxold);
502 fY2 = gPad->AbsPixeltoY(pyl);
505 fX1 = gPad->AbsPixeltoX(pxold);
506 fY1 = gPad->AbsPixeltoY(pyold);
507 fX2 = gPad->AbsPixeltoX(pxt);
508 fY2 = gPad->AbsPixeltoY(pyl);
510 if (pTop || pBot || pL || pR || pINSIDE) {
511 fX1 = gPad->AbsPixeltoX(px1);
512 fY1 = gPad->AbsPixeltoY(py1);
513 fX2 = gPad->AbsPixeltoX(px2);
514 fY2 = gPad->AbsPixeltoY(py2);
518 if (gPad->GetLogx()) {
519 fX1 = TMath::Power(10,fX1);
520 fX2 = TMath::Power(10,fX2);
522 if (gPad->GetLogy()) {
523 fY1 = TMath::Power(10,fY1);
524 fY2 = TMath::Power(10,fY2);
528 if (pINSIDE) gPad->ShowGuidelines(
this, event,
'i',
true);
529 if (pTop) gPad->ShowGuidelines(
this, event,
't',
true);
530 if (pBot) gPad->ShowGuidelines(
this, event,
'b',
true);
531 if (pL) gPad->ShowGuidelines(
this, event,
'l',
true);
532 if (pR) gPad->ShowGuidelines(
this, event,
'r',
true);
533 if (pA) gPad->ShowGuidelines(
this, event,
'1',
true);
534 if (pB) gPad->ShowGuidelines(
this, event,
'2',
true);
535 if (pC) gPad->ShowGuidelines(
this, event,
'3',
true);
536 if (pD) gPad->ShowGuidelines(
this, event,
'4',
true);
537 gPad->Modified(kTRUE);
543 if (gROOT->IsEscaped()) {
544 gROOT->SetEscape(kFALSE);
550 gPad->Modified(kTRUE);
556 if (opaque || ropaque) {
557 gPad->ShowGuidelines(
this, event);
561 fX1 = gPad->AbsPixeltoX(pxold);
562 fY1 = gPad->AbsPixeltoY(pyt);
563 fX2 = gPad->AbsPixeltoX(pxt);
564 fY2 = gPad->AbsPixeltoY(pyold);
567 fX1 = gPad->AbsPixeltoX(pxl);
568 fY1 = gPad->AbsPixeltoY(pyt);
569 fX2 = gPad->AbsPixeltoX(pxold);
570 fY2 = gPad->AbsPixeltoY(pyold);
573 fX1 = gPad->AbsPixeltoX(pxl);
574 fY1 = gPad->AbsPixeltoY(pyold);
575 fX2 = gPad->AbsPixeltoX(pxold);
576 fY2 = gPad->AbsPixeltoY(pyl);
579 fX1 = gPad->AbsPixeltoX(pxold);
580 fY1 = gPad->AbsPixeltoY(pyold);
581 fX2 = gPad->AbsPixeltoX(pxt);
582 fY2 = gPad->AbsPixeltoY(pyl);
584 if (pTop || pBot || pL || pR || pINSIDE) {
585 fX1 = gPad->AbsPixeltoX(px1);
586 fY1 = gPad->AbsPixeltoY(py1);
587 fX2 = gPad->AbsPixeltoX(px2);
588 fY2 = gPad->AbsPixeltoY(py2);
592 if (gPad->GetLogx()) {
593 fX1 = TMath::Power(10,fX1);
594 fX2 = TMath::Power(10,fX2);
596 if (gPad->GetLogy()) {
597 fY1 = TMath::Power(10,fY1);
598 fY2 = TMath::Power(10,fY2);
604 if (parent == gPad) gPad->Modified(kTRUE);
608 if (pA || pB || pC || pD || pTop || pL || pR || pBot) gPad->Modified(kTRUE);
611 gVirtualX->SetLineColor(-1);
612 gVirtualX->SetLineWidth(-1);
619 ExecuteEvent(kButton1Down, px, py);
623 event = gVirtualX->RequestLocator(1, 1, px, py);
625 ExecuteEvent(kButton1Motion, px, py);
628 ExecuteEvent(kButton1Up, px, py);
640 void TBox::HideToolTip(Int_t event)
642 if (event != kMouseEnter && event != kMouseMotion && fTip && gPad)
643 gPad->CloseToolTip(fTip);
649 Int_t TBox::IsInside(Double_t x, Double_t y)
const
651 if (x < fX1 || x > fX2)
return 0;
652 if (y < fY1 || y > fY2)
return 0;
659 void TBox::ls(Option_t *)
const
661 TROOT::IndentLevel();
662 printf(
"%s X1= %f Y1=%f X2=%f Y2=%f\n",IsA()->GetName(),fX1,fY1,fX2,fY2);
668 void TBox::Paint(Option_t *option)
670 PaintBox(gPad->XtoPad(fX1),gPad->YtoPad(fY1),gPad->XtoPad(fX2),gPad->YtoPad(fY2),option);
676 void TBox::PaintBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Option_t *option)
682 TString opt = option;
684 if (opt.Contains(
"l")) gPad->PaintBox(x1,y1,x2,y2,
"l");
685 else gPad->PaintBox(x1,y1,x2,y2);
687 gPad->PaintBox(x1,y1,x2,y2);
694 void TBox::Print(Option_t *)
const
696 printf(
"%s X1=%f Y1=%f X2=%f Y2=%f",IsA()->GetName(),fX1,fY1,fX2,fY2);
697 if (GetLineColor() != 1) printf(
" Color=%d",GetLineColor());
698 if (GetLineStyle() != 1) printf(
" Style=%d",GetLineStyle());
699 if (GetLineWidth() != 1) printf(
" Width=%d",GetLineWidth());
700 if (GetFillColor() != 0) printf(
" FillColor=%d",GetFillColor());
701 if (GetFillStyle() != 0) printf(
" FillStyle=%d",GetFillStyle());
708 void TBox::SavePrimitive(std::ostream &out, Option_t * )
710 if (gROOT->ClassSaved(TBox::Class())) {
715 out<<
"box = new TBox("<<fX1<<
","<<fY1<<
","<<fX2<<
","<<fY2<<
");"<<std::endl;
717 SaveFillAttributes(out,
"box",0,1001);
718 SaveLineAttributes(out,
"box",1,1,1);
720 out<<
" box->Draw();"<<std::endl;
728 void TBox::SetToolTipText(
const char *text, Long_t delayms)
731 Warning(
"SetToolTipText",
"a canvas must exist before setting the tool tip text");
736 gPad->DeleteToolTip(fTip);
740 if (text && strlen(text))
741 fTip = gPad->CreateToolTip(
this, text, delayms);
747 void TBox::Streamer(TBuffer &R__b)
749 if (R__b.IsReading()) {
751 Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
753 R__b.ReadClassBuffer(TBox::Class(),
this, R__v, R__s, R__c);
757 TObject::Streamer(R__b);
758 TAttLine::Streamer(R__b);
759 TAttFill::Streamer(R__b);
761 R__b >> x1; fX1 = x1;
762 R__b >> y1; fY1 = y1;
763 R__b >> x2; fX2 = x2;
764 R__b >> y2; fY2 = y2;
765 R__b.CheckByteCount(R__s, R__c, TBox::IsA());
769 R__b.WriteClassBuffer(TBox::Class(),
this);
776 Rectangle_t TBox::GetBBox()
779 Int_t px1, py1, px2, py2;
780 px1 = gPad->XtoPixel(fX1);
781 px2 = gPad->XtoPixel(fX2);
782 py1 = gPad->YtoPixel(fY1);
783 py2 = gPad->YtoPixel(fY2);
786 if (px1>px2) { tmp = px1; px1 = px2; px2 = tmp;}
787 if (py1>py2) { tmp = py1; py1 = py2; py2 = tmp;}
791 BBox.fWidth = px2-px1;
792 BBox.fHeight = py2-py1;
800 TPoint TBox::GetBBoxCenter()
803 p.SetX(gPad->XtoPixel(TMath::Min(fX1,fX2)+0.5*(TMath::Max(fX1, fX2)-TMath::Min(fX1, fX2))));
804 p.SetY(gPad->YtoPixel(TMath::Min(fY1,fY2)+0.5*(TMath::Max(fY1, fY2)-TMath::Min(fY1, fY2))));
811 void TBox::SetBBoxCenter(
const TPoint &p)
813 Double_t w = TMath::Max(fX1, fX2)-TMath::Min(fX1, fX2);
814 Double_t h = TMath::Max(fY1, fY2)-TMath::Min(fY1, fY2);
816 this->SetX1(gPad->PixeltoX(p.GetX())-0.5*w);
817 this->SetX2(gPad->PixeltoX(p.GetX())+0.5*w);
820 this->SetX2(gPad->PixeltoX(p.GetX())-0.5*w);
821 this->SetX1(gPad->PixeltoX(p.GetX())+0.5*w);
824 this->SetY1(gPad->PixeltoY(p.GetY()-gPad->VtoPixel(0))-0.5*h);
825 this->SetY2(gPad->PixeltoY(p.GetY()-gPad->VtoPixel(0))+0.5*h);
828 this->SetY2(gPad->PixeltoY(p.GetY()-gPad->VtoPixel(0))-0.5*h);
829 this->SetY1(gPad->PixeltoY(p.GetY()-gPad->VtoPixel(0))+0.5*h);
836 void TBox::SetBBoxCenterX(
const Int_t x)
839 Double_t w = TMath::Max(fX1, fX2)-TMath::Min(fX1, fX2);
841 this->SetX1(gPad->PixeltoX(x)-0.5*w);
842 this->SetX2(gPad->PixeltoX(x)+0.5*w);
845 this->SetX2(gPad->PixeltoX(x)-0.5*w);
846 this->SetX1(gPad->PixeltoX(x)+0.5*w);
853 void TBox::SetBBoxCenterY(
const Int_t y)
856 Double_t h = TMath::Max(fY1, fY2)-TMath::Min(fY1, fY2);
858 this->SetY1(gPad->PixeltoY(y-gPad->VtoPixel(0))-0.5*h);
859 this->SetY2(gPad->PixeltoY(y-gPad->VtoPixel(0))+0.5*h);
862 this->SetY2(gPad->PixeltoY(y-gPad->VtoPixel(0))-0.5*h);
863 this->SetY1(gPad->PixeltoY(y-gPad->VtoPixel(0))+0.5*h);
871 void TBox::SetBBoxX1(
const Int_t x)
874 fX1 = gPad->PixeltoX(x);
881 void TBox::SetBBoxX2(
const Int_t x)
884 fX2 = gPad->PixeltoX(x);
890 void TBox::SetBBoxY1(
const Int_t y)
893 fY2 = gPad->PixeltoY(y - gPad->VtoPixel(0));
900 void TBox::SetBBoxY2(
const Int_t y)
903 fY1 = gPad->PixeltoY(y - gPad->VtoPixel(0));