// @(#)root/base:$Id$
// Author: Rene Brun   04/01/95

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#include "Strlen.h"
#include "TAttPad.h"
#include "TBuffer.h"
#include "TStyle.h"
#include "TClass.h"

ClassImp(TAttPad)

//______________________________________________________________________________
//
//  Manages default Pad attributes. Referenced by TStyle.
//

//______________________________________________________________________________
TAttPad::TAttPad()
{
   //constructor
   ResetAttPad();
}

//______________________________________________________________________________
TAttPad::~TAttPad()
{
   //destructor
}

//______________________________________________________________________________
void TAttPad::Copy(TAttPad &attpad) const
{
   //copy function
   attpad.fLeftMargin   = fLeftMargin;
   attpad.fRightMargin  = fRightMargin;
   attpad.fBottomMargin = fBottomMargin;
   attpad.fTopMargin    = fTopMargin;
   attpad.fXfile   = fXfile;
   attpad.fYfile   = fYfile;
   attpad.fAfile   = fAfile;
   attpad.fXstat   = fXstat;
   attpad.fYstat   = fYstat;
   attpad.fAstat   = fAstat;
   attpad.fFrameFillColor = fFrameFillColor;
   attpad.fFrameFillStyle = fFrameFillStyle;
   attpad.fFrameLineColor = fFrameLineColor;
   attpad.fFrameLineStyle = fFrameLineStyle;
   attpad.fFrameLineWidth = fFrameLineWidth;
   attpad.fFrameBorderSize= fFrameBorderSize;
   attpad.fFrameBorderMode= fFrameBorderMode;
}

//______________________________________________________________________________
void TAttPad::Print(Option_t *) const
{
   //print function
}

//______________________________________________________________________________
void TAttPad::ResetAttPad(Option_t *)
{
   //reset pad attributes
   fLeftMargin   = gStyle->GetPadLeftMargin();
   fRightMargin  = gStyle->GetPadRightMargin();
   fBottomMargin = gStyle->GetPadBottomMargin();
   fTopMargin    = gStyle->GetPadTopMargin();
   fXfile  = 2;
   fYfile  = 2;
   fAfile  = 1;
   fXstat  = 0.99;
   fYstat  = 0.99;
   fAstat  = 2;
   fFrameLineColor = gStyle->GetFrameLineColor();
   fFrameFillColor = gStyle->GetFrameFillColor();
   fFrameFillStyle = gStyle->GetFrameFillStyle();
   fFrameLineStyle = gStyle->GetFrameLineStyle();
   fFrameLineWidth = gStyle->GetFrameLineWidth();
   fFrameBorderSize= gStyle->GetFrameBorderSize();
   fFrameBorderMode= gStyle->GetFrameBorderMode();
}

//______________________________________________________________________________
void TAttPad::SetBottomMargin(Float_t margin)
{
//*-*-*-*-*-*-*-*-*Set Pad bottom margin in fraction of the pad height*-*-*-*
//*-*              ===================================================
   if (margin < 0 || margin >=1) margin = 0.1;
   if (margin + fTopMargin >= 1) return;
   fBottomMargin = margin;
}

//______________________________________________________________________________
void TAttPad::SetLeftMargin(Float_t margin)
{
//*-*-*-*-*-*-*-*-*Set Pad left margin in fraction of the pad width*-*-*-*-*
//*-*              ================================================
   if (margin < 0 || margin >=1) margin = 0.1;
   if (margin + fRightMargin >= 1) return;
   fLeftMargin = margin;
}

//______________________________________________________________________________
void TAttPad::SetRightMargin(Float_t margin)
{
//*-*-*-*-*-*-*-*-*Set Pad right margin in fraction of the pad width*-*-*-*-*
//*-*              =================================================
   if (margin < 0 || margin >=1) margin = 0.1;
   if (margin + fLeftMargin >= 1) return;
   fRightMargin = margin;
}

//______________________________________________________________________________
void TAttPad::SetTopMargin(Float_t margin)
{
//*-*-*-*-*-*-*-*-*Set Pad top margin in fraction of the pad height*-*-*-*-*
//*-*              ================================================
   if (margin < 0 || margin >=1) margin = 0.1;
   if (margin + fBottomMargin >= 1) return;
   fTopMargin = margin;
}

//______________________________________________________________________________
void TAttPad::SetMargin(Float_t left, Float_t right, Float_t bottom, Float_t top)
{
//*-*-*-*-*-*-*-*-*Set all margins

   SetLeftMargin(left);
   SetRightMargin(right);
   SetBottomMargin(bottom);
   SetTopMargin(top);
}

//______________________________________________________________________________
void TAttPad::Streamer(TBuffer &R__b)
{
   // Stream an object of class TAttPad.

   if (R__b.IsReading()) {
      UInt_t R__s, R__c;
      Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
      if (R__v > 2) {
         R__b.ReadClassBuffer(TAttPad::Class(), this, R__v, R__s, R__c);
         return;
      }
      //====process old versions before automatic schema evolution
      R__b >> fLeftMargin;
      R__b >> fRightMargin;
      R__b >> fBottomMargin;
      R__b >> fTopMargin;
      R__b >> fXfile;
      R__b >> fYfile;
      R__b >> fAfile;
      R__b >> fXstat;
      R__b >> fYstat;
      R__b >> fAstat;
      if (R__v > 1) {
         R__b >> fFrameFillColor;
         R__b >> fFrameLineColor;
         R__b >> fFrameFillStyle;
         R__b >> fFrameLineStyle;
         R__b >> fFrameLineWidth;
         R__b >> fFrameBorderSize;
         R__b >> fFrameBorderMode;
      }
      //====end of old versions

   } else {
      R__b.WriteClassBuffer(TAttPad::Class(),this);
   }
}
 TAttPad.cxx:1
 TAttPad.cxx:2
 TAttPad.cxx:3
 TAttPad.cxx:4
 TAttPad.cxx:5
 TAttPad.cxx:6
 TAttPad.cxx:7
 TAttPad.cxx:8
 TAttPad.cxx:9
 TAttPad.cxx:10
 TAttPad.cxx:11
 TAttPad.cxx:12
 TAttPad.cxx:13
 TAttPad.cxx:14
 TAttPad.cxx:15
 TAttPad.cxx:16
 TAttPad.cxx:17
 TAttPad.cxx:18
 TAttPad.cxx:19
 TAttPad.cxx:20
 TAttPad.cxx:21
 TAttPad.cxx:22
 TAttPad.cxx:23
 TAttPad.cxx:24
 TAttPad.cxx:25
 TAttPad.cxx:26
 TAttPad.cxx:27
 TAttPad.cxx:28
 TAttPad.cxx:29
 TAttPad.cxx:30
 TAttPad.cxx:31
 TAttPad.cxx:32
 TAttPad.cxx:33
 TAttPad.cxx:34
 TAttPad.cxx:35
 TAttPad.cxx:36
 TAttPad.cxx:37
 TAttPad.cxx:38
 TAttPad.cxx:39
 TAttPad.cxx:40
 TAttPad.cxx:41
 TAttPad.cxx:42
 TAttPad.cxx:43
 TAttPad.cxx:44
 TAttPad.cxx:45
 TAttPad.cxx:46
 TAttPad.cxx:47
 TAttPad.cxx:48
 TAttPad.cxx:49
 TAttPad.cxx:50
 TAttPad.cxx:51
 TAttPad.cxx:52
 TAttPad.cxx:53
 TAttPad.cxx:54
 TAttPad.cxx:55
 TAttPad.cxx:56
 TAttPad.cxx:57
 TAttPad.cxx:58
 TAttPad.cxx:59
 TAttPad.cxx:60
 TAttPad.cxx:61
 TAttPad.cxx:62
 TAttPad.cxx:63
 TAttPad.cxx:64
 TAttPad.cxx:65
 TAttPad.cxx:66
 TAttPad.cxx:67
 TAttPad.cxx:68
 TAttPad.cxx:69
 TAttPad.cxx:70
 TAttPad.cxx:71
 TAttPad.cxx:72
 TAttPad.cxx:73
 TAttPad.cxx:74
 TAttPad.cxx:75
 TAttPad.cxx:76
 TAttPad.cxx:77
 TAttPad.cxx:78
 TAttPad.cxx:79
 TAttPad.cxx:80
 TAttPad.cxx:81
 TAttPad.cxx:82
 TAttPad.cxx:83
 TAttPad.cxx:84
 TAttPad.cxx:85
 TAttPad.cxx:86
 TAttPad.cxx:87
 TAttPad.cxx:88
 TAttPad.cxx:89
 TAttPad.cxx:90
 TAttPad.cxx:91
 TAttPad.cxx:92
 TAttPad.cxx:93
 TAttPad.cxx:94
 TAttPad.cxx:95
 TAttPad.cxx:96
 TAttPad.cxx:97
 TAttPad.cxx:98
 TAttPad.cxx:99
 TAttPad.cxx:100
 TAttPad.cxx:101
 TAttPad.cxx:102
 TAttPad.cxx:103
 TAttPad.cxx:104
 TAttPad.cxx:105
 TAttPad.cxx:106
 TAttPad.cxx:107
 TAttPad.cxx:108
 TAttPad.cxx:109
 TAttPad.cxx:110
 TAttPad.cxx:111
 TAttPad.cxx:112
 TAttPad.cxx:113
 TAttPad.cxx:114
 TAttPad.cxx:115
 TAttPad.cxx:116
 TAttPad.cxx:117
 TAttPad.cxx:118
 TAttPad.cxx:119
 TAttPad.cxx:120
 TAttPad.cxx:121
 TAttPad.cxx:122
 TAttPad.cxx:123
 TAttPad.cxx:124
 TAttPad.cxx:125
 TAttPad.cxx:126
 TAttPad.cxx:127
 TAttPad.cxx:128
 TAttPad.cxx:129
 TAttPad.cxx:130
 TAttPad.cxx:131
 TAttPad.cxx:132
 TAttPad.cxx:133
 TAttPad.cxx:134
 TAttPad.cxx:135
 TAttPad.cxx:136
 TAttPad.cxx:137
 TAttPad.cxx:138
 TAttPad.cxx:139
 TAttPad.cxx:140
 TAttPad.cxx:141
 TAttPad.cxx:142
 TAttPad.cxx:143
 TAttPad.cxx:144
 TAttPad.cxx:145
 TAttPad.cxx:146
 TAttPad.cxx:147
 TAttPad.cxx:148
 TAttPad.cxx:149
 TAttPad.cxx:150
 TAttPad.cxx:151
 TAttPad.cxx:152
 TAttPad.cxx:153
 TAttPad.cxx:154
 TAttPad.cxx:155
 TAttPad.cxx:156
 TAttPad.cxx:157
 TAttPad.cxx:158
 TAttPad.cxx:159
 TAttPad.cxx:160
 TAttPad.cxx:161
 TAttPad.cxx:162
 TAttPad.cxx:163
 TAttPad.cxx:164
 TAttPad.cxx:165
 TAttPad.cxx:166
 TAttPad.cxx:167
 TAttPad.cxx:168
 TAttPad.cxx:169
 TAttPad.cxx:170
 TAttPad.cxx:171
 TAttPad.cxx:172
 TAttPad.cxx:173
 TAttPad.cxx:174
 TAttPad.cxx:175
 TAttPad.cxx:176
 TAttPad.cxx:177
 TAttPad.cxx:178