#include "Riostream.h"
#include "TROOT.h"
#include "TVirtualPad.h"
#include "TFrame.h"
#include "TStyle.h"
ClassImp(TFrame)
TFrame::TFrame(): TWbox()
{
   
}
TFrame::TFrame(Double_t x1, Double_t y1,Double_t x2, Double_t  y2)
       :TWbox(x1,y1,x2,y2)
{
   
}
TFrame::TFrame(const TFrame &frame) : TWbox(frame)
{
   
   ((TFrame&)frame).Copy(*this);
}
TFrame::~TFrame()
{
   
}
void TFrame::Copy(TObject &frame) const
{
   
   TWbox::Copy(frame);
}
void TFrame::Draw(Option_t *option)
{
   
   AppendPad(option);
}
void TFrame::ExecuteEvent(Int_t event, Int_t px, Int_t py)
{
   
   
   
   if (!gPad->IsEditable()) return;
   TWbox::ExecuteEvent(event, px, py);
   if (event != kButton1Up) return;
   
   Double_t xmin         = gPad->GetUxmin();
   Double_t xmax         = gPad->GetUxmax();
   Double_t ymin         = gPad->GetUymin();
   Double_t ymax         = gPad->GetUymax();
   Double_t dx           = xmax-xmin;
   Double_t dy           = ymax-ymin;
   Double_t leftMargin   = (fX1-gPad->GetX1())/(gPad->GetX2()-gPad->GetX1());
   Double_t topMargin    = (gPad->GetY2()-fY2)/(gPad->GetY2()-gPad->GetY1());
   Double_t rightMargin  = (gPad->GetX2()-fX2)/(gPad->GetX2()-gPad->GetX1());
   Double_t bottomMargin = (fY1-gPad->GetY1())/(gPad->GetY2()-gPad->GetY1());
   
   if (leftMargin   < 0) leftMargin   = 0;
   if (topMargin    < 0) topMargin    = 0;
   if (rightMargin  < 0) rightMargin  = 0;
   if (bottomMargin < 0) bottomMargin = 0;
   gPad->SetLeftMargin(leftMargin);
   gPad->SetRightMargin(rightMargin);
   gPad->SetBottomMargin(bottomMargin);
   gPad->SetTopMargin(topMargin);
   Double_t dxr  = dx/(1 - gPad->GetLeftMargin() - gPad->GetRightMargin());
   Double_t dyr  = dy/(1 - gPad->GetBottomMargin() - gPad->GetTopMargin());
   
   
   gPad->Range(xmin - dxr*gPad->GetLeftMargin(),
                      ymin - dyr*gPad->GetBottomMargin(),
                      xmax + dxr*gPad->GetRightMargin(),
                      ymax + dyr*gPad->GetTopMargin());
   gPad->RangeAxis(xmin, ymin, xmax, ymax);
   fX1 = xmin;
   fY1 = ymin;
   fX2 = xmax;
   fY2 = ymax;
}
void TFrame::Paint(Option_t *option)
{
   
   TWbox::Paint(option);
      
   gPad->PaintBox(fX1,fY1,fX2,fY2,"s");
}
void TFrame::Pop()
{
   
}
void TFrame::SavePrimitive(ostream &, Option_t * )
{
    
}
void TFrame::UseCurrentStyle()
{
   
   if (gStyle->IsReading()) {
      SetFillColor(gStyle->GetFrameFillColor());
      SetLineColor(gStyle->GetFrameLineColor());
      SetFillStyle(gStyle->GetFrameFillStyle());
      SetLineStyle(gStyle->GetFrameLineStyle());
      SetLineWidth(gStyle->GetFrameLineWidth());
      SetBorderSize(gStyle->GetFrameBorderSize());
      SetBorderMode(gStyle->GetFrameBorderMode());
   } else {
      gStyle->SetFrameFillColor(GetFillColor());
      gStyle->SetFrameLineColor(GetLineColor());
      gStyle->SetFrameFillStyle(GetFillStyle());
      gStyle->SetFrameLineStyle(GetLineStyle());
      gStyle->SetFrameLineWidth(GetLineWidth());
      gStyle->SetFrameBorderSize(GetBorderSize());
      gStyle->SetFrameBorderMode(GetBorderMode());
   }
}
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.