31 TFrame::TFrame(): TWbox()
38 TFrame::TFrame(Double_t x1, Double_t y1,Double_t x2, Double_t y2)
46 TFrame::TFrame(
const TFrame &frame) : TWbox(frame)
48 ((TFrame&)frame).Copy(*
this);
61 void TFrame::Copy(TObject &frame)
const
69 void TFrame::Draw(Option_t *option)
79 void TFrame::ExecuteEvent(Int_t event, Int_t px, Int_t py)
83 if (!gPad->IsEditable())
return;
85 TWbox::ExecuteEvent(event, px, py);
87 Bool_t opaque = gPad->OpaqueMoving();
89 if ((event == kButton1Up) || ((opaque)&&(event == kButton1Motion))) {
91 Double_t xmin = gPad->GetUxmin();
92 Double_t xmax = gPad->GetUxmax();
93 Double_t ymin = gPad->GetUymin();
94 Double_t ymax = gPad->GetUymax();
95 Double_t dx = xmax-xmin;
96 Double_t dy = ymax-ymin;
97 Double_t leftMargin = (fX1-gPad->GetX1())/(gPad->GetX2()-gPad->GetX1());
98 Double_t topMargin = (gPad->GetY2()-fY2)/(gPad->GetY2()-gPad->GetY1());
99 Double_t rightMargin = (gPad->GetX2()-fX2)/(gPad->GetX2()-gPad->GetX1());
100 Double_t bottomMargin = (fY1-gPad->GetY1())/(gPad->GetY2()-gPad->GetY1());
102 if (leftMargin < 0) leftMargin = 0;
103 if (topMargin < 0) topMargin = 0;
104 if (rightMargin < 0) rightMargin = 0;
105 if (bottomMargin < 0) bottomMargin = 0;
106 gPad->SetLeftMargin(leftMargin);
107 gPad->SetRightMargin(rightMargin);
108 gPad->SetBottomMargin(bottomMargin);
109 gPad->SetTopMargin(topMargin);
110 Double_t dxr = dx/(1 - gPad->GetLeftMargin() - gPad->GetRightMargin());
111 Double_t dyr = dy/(1 - gPad->GetBottomMargin() - gPad->GetTopMargin());
115 gPad->Range(xmin - dxr*gPad->GetLeftMargin(),
116 ymin - dyr*gPad->GetBottomMargin(),
117 xmax + dxr*gPad->GetRightMargin(),
118 ymax + dyr*gPad->GetTopMargin());
119 gPad->RangeAxis(xmin, ymin, xmax, ymax);
130 void TFrame::Paint(Option_t *option)
132 const TPickerStackGuard stackGuard(
this);
134 if (!gPad->PadInHighlightMode() || (gPad->PadInHighlightMode() &&
this == gPad->GetSelected())) {
135 TWbox::Paint(option);
137 gPad->PaintBox(fX1,fY1,fX2,fY2,
"s");
152 void TFrame::SavePrimitive(std::ostream &, Option_t * )
159 void TFrame::UseCurrentStyle()
161 if (gStyle->IsReading()) {
162 SetFillColor(gStyle->GetFrameFillColor());
163 SetLineColor(gStyle->GetFrameLineColor());
164 SetFillStyle(gStyle->GetFrameFillStyle());
165 SetLineStyle(gStyle->GetFrameLineStyle());
166 SetLineWidth(gStyle->GetFrameLineWidth());
167 SetBorderSize(gStyle->GetFrameBorderSize());
168 SetBorderMode(gStyle->GetFrameBorderMode());
170 gStyle->SetFrameFillColor(GetFillColor());
171 gStyle->SetFrameLineColor(GetLineColor());
172 gStyle->SetFrameFillStyle(GetFillStyle());
173 gStyle->SetFrameLineStyle(GetLineStyle());
174 gStyle->SetFrameLineWidth(GetLineWidth());
175 gStyle->SetFrameBorderSize(GetBorderSize());
176 gStyle->SetFrameBorderMode(GetBorderMode());