00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TStyle
00013 #define ROOT_TStyle
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef ROOT_TNamed
00026 #include "TNamed.h"
00027 #endif
00028 #ifndef ROOT_TAttAxis
00029 #include "TAttAxis.h"
00030 #endif
00031 #ifndef ROOT_TAttLine
00032 #include "TAttLine.h"
00033 #endif
00034 #ifndef ROOT_TAttFill
00035 #include "TAttFill.h"
00036 #endif
00037 #ifndef ROOT_TAttText
00038 #include "TAttText.h"
00039 #endif
00040 #ifndef ROOT_TAttMarker
00041 #include "TAttMarker.h"
00042 #endif
00043 #ifndef ROOT_TArrayI
00044 #include "TArrayI.h"
00045 #endif
00046
00047 class TBrowser;
00048
00049 class TStyle : public TNamed, public TAttLine, public TAttFill, public TAttMarker, public TAttText {
00050
00051 private:
00052 TAttAxis fXaxis;
00053 TAttAxis fYaxis;
00054 TAttAxis fZaxis;
00055 Float_t fBarWidth;
00056 Float_t fBarOffset;
00057 Int_t fColorModelPS;
00058 Int_t fDrawBorder;
00059 Int_t fOptLogx;
00060 Int_t fOptLogy;
00061 Int_t fOptLogz;
00062 Int_t fOptDate;
00063 Int_t fOptStat;
00064 Int_t fOptTitle;
00065 Int_t fOptFile;
00066 Int_t fOptFit;
00067 Int_t fShowEventStatus;
00068 Int_t fShowEditor;
00069 Int_t fShowToolBar;
00070
00071 Int_t fNumberContours;
00072 TAttText fAttDate;
00073 Float_t fDateX;
00074 Float_t fDateY;
00075 Float_t fEndErrorSize;
00076 Float_t fErrorX;
00077 Color_t fFuncColor;
00078 Style_t fFuncStyle;
00079 Width_t fFuncWidth;
00080 Color_t fGridColor;
00081 Style_t fGridStyle;
00082 Width_t fGridWidth;
00083 Width_t fLegendBorderSize;
00084 Int_t fHatchesLineWidth;
00085 Double_t fHatchesSpacing;
00086 Color_t fFrameFillColor;
00087 Color_t fFrameLineColor;
00088 Style_t fFrameFillStyle;
00089 Style_t fFrameLineStyle;
00090 Width_t fFrameLineWidth;
00091 Width_t fFrameBorderSize;
00092 Int_t fFrameBorderMode;
00093 Color_t fHistFillColor;
00094 Color_t fHistLineColor;
00095 Style_t fHistFillStyle;
00096 Style_t fHistLineStyle;
00097 Width_t fHistLineWidth;
00098 Bool_t fHistMinimumZero;
00099 Double_t fHistTopMargin;
00100 Bool_t fCanvasPreferGL;
00101 Color_t fCanvasColor;
00102 Width_t fCanvasBorderSize;
00103 Int_t fCanvasBorderMode;
00104 Int_t fCanvasDefH;
00105 Int_t fCanvasDefW;
00106 Int_t fCanvasDefX;
00107 Int_t fCanvasDefY;
00108 Color_t fPadColor;
00109 Width_t fPadBorderSize;
00110 Int_t fPadBorderMode;
00111 Float_t fPadBottomMargin;
00112 Float_t fPadTopMargin;
00113 Float_t fPadLeftMargin;
00114 Float_t fPadRightMargin;
00115 Bool_t fPadGridX;
00116 Bool_t fPadGridY;
00117 Int_t fPadTickX;
00118 Int_t fPadTickY;
00119 Float_t fPaperSizeX;
00120 Float_t fPaperSizeY;
00121 Float_t fScreenFactor;
00122 Color_t fStatColor;
00123 Color_t fStatTextColor;
00124 Width_t fStatBorderSize;
00125 Style_t fStatFont;
00126 Float_t fStatFontSize;
00127 Style_t fStatStyle;
00128 TString fStatFormat;
00129 Float_t fStatX;
00130 Float_t fStatY;
00131 Float_t fStatW;
00132 Float_t fStatH;
00133 Bool_t fStripDecimals;
00134 Int_t fTitleAlign;
00135 Color_t fTitleColor;
00136 Color_t fTitleTextColor;
00137 Width_t fTitleBorderSize;
00138 Style_t fTitleFont;
00139 Float_t fTitleFontSize;
00140 Style_t fTitleStyle;
00141 Float_t fTitleX;
00142 Float_t fTitleY;
00143 Float_t fTitleW;
00144 Float_t fTitleH;
00145 Float_t fLegoInnerR;
00146 TString fLineStyle[30];
00147 TString fHeaderPS;
00148 TString fTitlePS;
00149 TString fFitFormat;
00150 TString fPaintTextFormat;
00151 Float_t fLineScalePS;
00152 Double_t fTimeOffset;
00153 Bool_t fIsReading;
00154 public:
00155 enum EPaperSize { kA4, kUSLetter };
00156
00157 TStyle();
00158 TStyle(const char *name, const char *title);
00159 TStyle(const TStyle &style);
00160 virtual ~TStyle();
00161 Int_t AxisChoice(Option_t *axis) const;
00162 virtual void Browse(TBrowser *b);
00163 static void BuildStyles();
00164 virtual void Copy(TObject &style) const;
00165 virtual void cd();
00166
00167 virtual Int_t DistancetoPrimitive(Int_t px, Int_t py);
00168 Int_t GetNdivisions(Option_t *axis="X") const;
00169 TAttText *GetAttDate() {return &fAttDate;}
00170 Color_t GetAxisColor(Option_t *axis="X") const;
00171 Color_t GetLabelColor(Option_t *axis="X") const;
00172 Style_t GetLabelFont(Option_t *axis="X") const;
00173 Float_t GetLabelOffset(Option_t *axis="X") const;
00174 Float_t GetLabelSize(Option_t *axis="X") const;
00175 Color_t GetTitleColor(Option_t *axis="X") const;
00176 Style_t GetTitleFont(Option_t *axis="X") const;
00177 Float_t GetTitleOffset(Option_t *axis="X") const;
00178 Float_t GetTitleSize(Option_t *axis="X") const;
00179 Float_t GetTickLength(Option_t *axis="X") const;
00180
00181 Float_t GetBarOffset() const {return fBarOffset;}
00182 Float_t GetBarWidth() const {return fBarWidth;}
00183 Int_t GetDrawBorder() const {return fDrawBorder;}
00184 Float_t GetEndErrorSize() const {return fEndErrorSize;}
00185 Float_t GetErrorX() const {return fErrorX;}
00186 Bool_t GetCanvasPreferGL() const {return fCanvasPreferGL;}
00187 Color_t GetCanvasColor() const {return fCanvasColor;}
00188 Width_t GetCanvasBorderSize() const {return fCanvasBorderSize;}
00189 Int_t GetCanvasBorderMode() const {return fCanvasBorderMode;}
00190 Int_t GetCanvasDefH() const {return fCanvasDefH;}
00191 Int_t GetCanvasDefW() const {return fCanvasDefW;}
00192 Int_t GetCanvasDefX() const {return fCanvasDefX;}
00193 Int_t GetCanvasDefY() const {return fCanvasDefY;}
00194 Int_t GetColorPalette(Int_t i) const;
00195 Int_t GetColorModelPS() const {return fColorModelPS;}
00196 Float_t GetDateX() const {return fDateX;}
00197 Float_t GetDateY() const {return fDateY;}
00198 const char *GetFitFormat() const {return fFitFormat.Data();}
00199 Int_t GetHatchesLineWidth() const {return fHatchesLineWidth;}
00200 Double_t GetHatchesSpacing() const {return fHatchesSpacing;}
00201 Width_t GetLegendBorderSize() const {return fLegendBorderSize;}
00202 Int_t GetNumberOfColors() const;
00203 Color_t GetPadColor() const {return fPadColor;}
00204 Width_t GetPadBorderSize() const {return fPadBorderSize;}
00205 Int_t GetPadBorderMode() const {return fPadBorderMode;}
00206 Float_t GetPadBottomMargin() const {return fPadBottomMargin;}
00207 Float_t GetPadTopMargin() const {return fPadTopMargin;}
00208 Float_t GetPadLeftMargin() const {return fPadLeftMargin;}
00209 Float_t GetPadRightMargin() const {return fPadRightMargin;}
00210 Bool_t GetPadGridX() const {return fPadGridX;}
00211 Bool_t GetPadGridY() const {return fPadGridY;}
00212 Int_t GetPadTickX() const {return fPadTickX;}
00213 Int_t GetPadTickY() const {return fPadTickY;}
00214 Color_t GetFuncColor() const {return fFuncColor;}
00215 Style_t GetFuncStyle() const {return fFuncStyle;}
00216 Width_t GetFuncWidth() const {return fFuncWidth;}
00217 Color_t GetGridColor() const {return fGridColor;}
00218 Style_t GetGridStyle() const {return fGridStyle;}
00219 Width_t GetGridWidth() const {return fGridWidth;}
00220 Color_t GetFrameFillColor() const {return fFrameFillColor;}
00221 Color_t GetFrameLineColor() const {return fFrameLineColor;}
00222 Style_t GetFrameFillStyle() const {return fFrameFillStyle;}
00223 Style_t GetFrameLineStyle() const {return fFrameLineStyle;}
00224 Width_t GetFrameLineWidth() const {return fFrameLineWidth;}
00225 Width_t GetFrameBorderSize() const {return fFrameBorderSize;}
00226 Int_t GetFrameBorderMode() const {return fFrameBorderMode;}
00227 Color_t GetHistFillColor() const {return fHistFillColor;}
00228 Color_t GetHistLineColor() const {return fHistLineColor;}
00229 Style_t GetHistFillStyle() const {return fHistFillStyle;}
00230 Style_t GetHistLineStyle() const {return fHistLineStyle;}
00231 Width_t GetHistLineWidth() const {return fHistLineWidth;}
00232 Bool_t GetHistMinimumZero() const {return fHistMinimumZero;}
00233 Double_t GetHistTopMargin() const {return fHistTopMargin;}
00234 Float_t GetLegoInnerR() const {return fLegoInnerR;}
00235 Int_t GetNumberContours() const {return fNumberContours;}
00236 Int_t GetOptDate() const {return fOptDate;}
00237 Int_t GetOptFile() const {return fOptFile;}
00238 Int_t GetOptFit() const {return fOptFit;}
00239 Int_t GetOptStat() const {return fOptStat;}
00240 Int_t GetOptTitle() const {return fOptTitle;}
00241 Int_t GetOptLogx() const {return fOptLogx;}
00242 Int_t GetOptLogy() const {return fOptLogy;}
00243 Int_t GetOptLogz() const {return fOptLogz;}
00244 const char *GetPaintTextFormat() const {return fPaintTextFormat.Data();}
00245 void GetPaperSize(Float_t &xsize, Float_t &ysize) const;
00246 Int_t GetShowEventStatus() const {return fShowEventStatus;}
00247 Int_t GetShowEditor() const {return fShowEditor;}
00248 Int_t GetShowToolBar() const {return fShowToolBar;}
00249
00250 Float_t GetScreenFactor() const {return fScreenFactor;}
00251 Color_t GetStatColor() const {return fStatColor;}
00252 Color_t GetStatTextColor() const {return fStatTextColor;}
00253 Width_t GetStatBorderSize() const {return fStatBorderSize;}
00254 Style_t GetStatFont() const {return fStatFont;}
00255 Float_t GetStatFontSize() const {return fStatFontSize;}
00256 Style_t GetStatStyle() const {return fStatStyle;}
00257 const char *GetStatFormat() const {return fStatFormat.Data();}
00258 Float_t GetStatX() const {return fStatX;}
00259 Float_t GetStatY() const {return fStatY;}
00260 Float_t GetStatW() const {return fStatW;}
00261 Float_t GetStatH() const {return fStatH;}
00262 Int_t GetStripDecimals() const {return fStripDecimals;}
00263 Double_t GetTimeOffset() const {return fTimeOffset;}
00264 Int_t GetTitleAlign() {return fTitleAlign;}
00265 Color_t GetTitleFillColor() const {return fTitleColor;}
00266 Color_t GetTitleTextColor() const {return fTitleTextColor;}
00267 Style_t GetTitleStyle() const {return fTitleStyle;}
00268 Float_t GetTitleFontSize() const {return fTitleFontSize;}
00269 Width_t GetTitleBorderSize() const {return fTitleBorderSize;}
00270 Float_t GetTitleXOffset() const {return GetTitleOffset("X");}
00271 Float_t GetTitleXSize() const {return GetTitleSize("X");}
00272 Float_t GetTitleYOffset() const {return GetTitleOffset("Y");}
00273 Float_t GetTitleYSize() const {return GetTitleSize("Y");}
00274 Float_t GetTitleX() const {return fTitleX;}
00275 Float_t GetTitleY() const {return fTitleY;}
00276 Float_t GetTitleW() const {return fTitleW;}
00277 Float_t GetTitleH() const {return fTitleH;}
00278 const char *GetHeaderPS() const {return fHeaderPS.Data();}
00279 const char *GetTitlePS() const {return fTitlePS.Data();}
00280 const char *GetLineStyleString(Int_t i=1) const;
00281 Float_t GetLineScalePS() const {return fLineScalePS;}
00282 Bool_t IsReading() const {return fIsReading;}
00283 virtual void Paint(Option_t *option="");
00284 virtual void Reset(Option_t *option="");
00285
00286 void SetColorModelPS(Int_t c=0);
00287 void SetFitFormat(const char *format="5.4g") {fFitFormat = format;}
00288 void SetHeaderPS(const char *header);
00289 void SetHatchesLineWidth(Int_t l) {fHatchesLineWidth = l;}
00290 void SetHatchesSpacing(Double_t h) {fHatchesSpacing = TMath::Max(0.1,h);}
00291 void SetTitlePS(const char *pstitle);
00292 void SetLineScalePS(Float_t scale=3) {fLineScalePS=scale;}
00293 void SetLineStyleString(Int_t i, const char *text);
00294 void SetNdivisions(Int_t n=510, Option_t *axis="X");
00295 void SetAxisColor(Color_t color=1, Option_t *axis="X");
00296 void SetLabelColor(Color_t color=1, Option_t *axis="X");
00297 void SetLabelFont(Style_t font=62, Option_t *axis="X");
00298 void SetLabelOffset(Float_t offset=0.005, Option_t *axis="X");
00299 void SetLabelSize(Float_t size=0.04, Option_t *axis="X");
00300 void SetLegoInnerR(Float_t rad=0.5) {fLegoInnerR = rad;}
00301 void SetScreenFactor(Float_t factor=1) {fScreenFactor = factor;}
00302 void SetTickLength(Float_t length=0.03, Option_t *axis="X");
00303 void SetTitleColor(Color_t color=1, Option_t *axis="X");
00304 void SetTitleFont(Style_t font=62, Option_t *axis="X");
00305 void SetTitleOffset(Float_t offset=1, Option_t *axis="X");
00306 void SetTitleSize(Float_t size=0.02, Option_t *axis="X");
00307 void SetNumberContours(Int_t number=20);
00308 void SetOptDate(Int_t datefl=1);
00309 void SetOptFile(Int_t file=1) {fOptFile = file;}
00310 void SetOptFit(Int_t fit=1);
00311 void SetOptLogx(Int_t logx=1) {fOptLogx = logx;}
00312 void SetOptLogy(Int_t logy=1) {fOptLogy = logy;}
00313 void SetOptLogz(Int_t logz=1) {fOptLogz = logz;}
00314 void SetOptStat(Int_t stat=1);
00315 void SetOptStat(Option_t *stat);
00316 void SetOptTitle(Int_t tit=1) {fOptTitle = tit;}
00317 void SetBarOffset(Float_t baroff=0.5) {fBarOffset = baroff;}
00318 void SetBarWidth(Float_t barwidth=0.5) {fBarWidth = barwidth;}
00319 void SetDateX(Float_t x=0.01) {fDateX = x;}
00320 void SetDateY(Float_t y=0.01) {fDateY = y;}
00321 void SetEndErrorSize(Float_t np=2);
00322 void SetErrorX(Float_t errorx=0.5) {fErrorX = errorx;}
00323 void SetCanvasPreferGL(Bool_t prefer = kTRUE) {fCanvasPreferGL=prefer;}
00324 void SetDrawBorder(Int_t drawborder=1) {fDrawBorder = drawborder;}
00325 void SetCanvasColor(Color_t color=19) {fCanvasColor = color;}
00326 void SetCanvasBorderSize(Width_t size=1) {fCanvasBorderSize = size;}
00327 void SetCanvasBorderMode(Int_t mode=1) {fCanvasBorderMode = mode;}
00328 void SetCanvasDefH(Int_t h=500) {fCanvasDefH = h;}
00329 void SetCanvasDefW(Int_t w=700) {fCanvasDefW = w;}
00330 void SetCanvasDefX(Int_t topx=10) {fCanvasDefX = topx;}
00331 void SetCanvasDefY(Int_t topy=10) {fCanvasDefY = topy;}
00332 void SetLegendBorderSize(Width_t size=4) {fLegendBorderSize = size;}
00333 void SetPadColor(Color_t color=19) {fPadColor = color;}
00334 void SetPadBorderSize(Width_t size=1) {fPadBorderSize = size;}
00335 void SetPadBorderMode(Int_t mode=1) {fPadBorderMode = mode;}
00336 void SetPadBottomMargin(Float_t margin=0.1) {fPadBottomMargin=margin;}
00337 void SetPadTopMargin(Float_t margin=0.1) {fPadTopMargin=margin;}
00338 void SetPadLeftMargin(Float_t margin=0.1) {fPadLeftMargin=margin;}
00339 void SetPadRightMargin(Float_t margin=0.1) {fPadRightMargin=margin;}
00340 void SetPadGridX(Bool_t gridx) {fPadGridX = gridx;}
00341 void SetPadGridY(Bool_t gridy) {fPadGridY = gridy;}
00342 void SetPadTickX(Int_t tickx) {fPadTickX = tickx;}
00343 void SetPadTickY(Int_t ticky) {fPadTickY = ticky;}
00344 void SetFuncStyle(Style_t style=1) {fFuncStyle = style;}
00345 void SetFuncColor(Color_t color=1) {fFuncColor = color;}
00346 void SetFuncWidth(Width_t width=4) {fFuncWidth = width;}
00347 void SetGridStyle(Style_t style=3) {fGridStyle = style;}
00348 void SetGridColor(Color_t color=0) {fGridColor = color;}
00349 void SetGridWidth(Width_t width=1) {fGridWidth = width;}
00350 void SetFrameFillColor(Color_t color=1) {fFrameFillColor = color;}
00351 void SetFrameLineColor(Color_t color=1) {fFrameLineColor = color;}
00352 void SetFrameFillStyle(Style_t styl=0) {fFrameFillStyle = styl;}
00353 void SetFrameLineStyle(Style_t styl=0) {fFrameLineStyle = styl;}
00354 void SetFrameLineWidth(Width_t width=1) {fFrameLineWidth = width;}
00355 void SetFrameBorderSize(Width_t size=1) {fFrameBorderSize = size;}
00356 void SetFrameBorderMode(Int_t mode=1) {fFrameBorderMode = mode;}
00357 void SetHistFillColor(Color_t color=1) {fHistFillColor = color;}
00358 void SetHistLineColor(Color_t color=1) {fHistLineColor = color;}
00359 void SetHistFillStyle(Style_t styl=0) {fHistFillStyle = styl;}
00360 void SetHistLineStyle(Style_t styl=0) {fHistLineStyle = styl;}
00361 void SetHistLineWidth(Width_t width=1) {fHistLineWidth = width;}
00362 void SetHistMinimumZero(Bool_t zero=kTRUE);
00363 void SetHistTopMargin(Double_t hmax=0.05) {fHistTopMargin = hmax;}
00364 void SetPaintTextFormat(const char *format="g") {fPaintTextFormat = format;}
00365 void SetPaperSize(EPaperSize size);
00366 void SetPaperSize(Float_t xsize=20, Float_t ysize=26);
00367 void SetStatColor(Int_t color=19) {fStatColor=color;}
00368 void SetStatTextColor(Int_t color=1) {fStatTextColor=color;}
00369 void SetStatStyle(Style_t style=1001) {fStatStyle=style;}
00370 void SetStatBorderSize(Width_t size=2) {fStatBorderSize=size;}
00371 void SetStatFont(Style_t font=62) {fStatFont=font;}
00372 void SetStatFontSize(Float_t size=0) {fStatFontSize=size;}
00373 void SetStatFormat(const char *format="6.4g") {fStatFormat = format;}
00374 void SetStatX(Float_t x=0) {fStatX=x;}
00375 void SetStatY(Float_t y=0) {fStatY=y;}
00376 void SetStatW(Float_t w=0.19) {fStatW=w;}
00377 void SetStatH(Float_t h=0.1) {fStatH=h;}
00378 void SetStripDecimals(Bool_t strip=kTRUE);
00379 void SetTimeOffset(Double_t toffset);
00380 void SetTitleAlign(Int_t a=13) {fTitleAlign=a;}
00381 void SetTitleFillColor(Color_t color=1) {fTitleColor=color;}
00382 void SetTitleTextColor(Color_t color=1) {fTitleTextColor=color;}
00383 void SetTitleStyle(Style_t style=1001) {fTitleStyle=style;}
00384 void SetTitleFontSize(Float_t size=0) {fTitleFontSize=size;}
00385 void SetTitleBorderSize(Width_t size=2) {fTitleBorderSize=size;}
00386 void SetTitleXOffset(Float_t offset=1) {SetTitleOffset(offset,"X");}
00387 void SetTitleXSize(Float_t size=0.02) {SetTitleSize(size,"X");}
00388 void SetTitleYOffset(Float_t offset=1) {SetTitleOffset(offset,"Y");}
00389 void SetTitleYSize(Float_t size=0.02) {SetTitleSize(size,"Y");}
00390 void SetTitleX(Float_t x=0) {fTitleX=x;}
00391 void SetTitleY(Float_t y=0.985) {fTitleY=y;}
00392 void SetTitleW(Float_t w=0) {fTitleW=w;}
00393 void SetTitleH(Float_t h=0) {fTitleH=h;}
00394 void ToggleEventStatus() { fShowEventStatus = fShowEventStatus ? 0 : 1; }
00395 void ToggleEditor() { fShowEditor = fShowEditor ? 0 : 1; }
00396 void ToggleToolBar() { fShowToolBar = fShowToolBar ? 0 : 1; }
00397 void SetIsReading(Bool_t reading=kTRUE);
00398 void SetPalette(Int_t ncolors=0, Int_t *colors=0);
00399 void SavePrimitive(ostream &out, Option_t * = "");
00400 void SaveSource(const char *filename, Option_t *option=0);
00401
00402 ClassDef(TStyle, 13);
00403 };
00404
00405
00406 R__EXTERN TStyle *gStyle;
00407
00408 #endif