Back to home page

EIC code displayed by LXR

 
 

    


Warning, file /include/root/TStyleManager.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // @(#)root/ged:$Id$
0002 // Author: Denis Favre-Miville   08/09/05
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 #ifndef ROOT_TStyleManager
0013 #define ROOT_TStyleManager
0014 
0015 
0016 #include "TGFrame.h"
0017 #include "TGNumberEntry.h"
0018 
0019 class TGButtonGroup;
0020 class TGCheckButton;
0021 class TGColorSelect;
0022 class TGComboBox;
0023 class TGCompositeFrame;
0024 class TGedMarkerSelect;
0025 class TGedPatternSelect;
0026 class TGFileInfo;
0027 class TGFontTypeComboBox;
0028 class TGHButtonGroup;
0029 class TGHorizontal3DLine;
0030 class TGHorizontalFrame;
0031 class TGLabel;
0032 class TGLayoutHints;
0033 class TGLineStyleComboBox;
0034 class TGLineWidthComboBox;
0035 class TGMainFrame;
0036 class TGMatrixLayout;
0037 class TGMenuBar;
0038 class TGPicture;
0039 class TGPictureButton;
0040 class TGPopupMenu;
0041 class TGRadioButton;
0042 class TGStatusBar;
0043 class TGTab;
0044 class TGTextButton;
0045 class TGTextEntry;
0046 class TGToolBar;
0047 class TGVerticalFrame;
0048 class TList;
0049 class TObject;
0050 class TStyle;
0051 class TStylePreview;
0052 class TVirtualPad;
0053 
0054 class TStyleManager : public TGMainFrame {
0055 
0056 private:
0057    static TStyleManager *fgStyleManager;     ///< singleton style manager
0058 
0059    TStyle              *fCurSelStyle;        ///< current selected style
0060    Bool_t               fLastChoice;         ///< kTRUE if the user choose OK in the last TStyleDialog
0061    Bool_t               fRealTimePreview;    ///< kTRUE if auto refreshed preview
0062    Int_t                fCurTabNum;          ///< current opened tab number
0063    Int_t                fCurTabAxisNum;      ///< current opened axis tab number
0064    UInt_t               fSMWidth;            ///< style manager's width
0065    UInt_t               fSMHeight;           ///< style manager's height
0066    Bool_t               fStyleChanged;       ///< kTRUE if the style has been modified
0067 
0068    Bool_t               fMoreAndNotLess;     ///< kTRUE when editor is open
0069    Bool_t               fSigSlotConnected;   ///< kTRUE when signal/slots connected
0070    Bool_t               fAllAndNotCurrent;   ///<kTRUE when apply on 'All canvases'
0071    TList               *fTrashListFrame;     ///< to avoid memory leak
0072    TList               *fTrashListLayout;    ///< to avoid memory leak
0073 
0074    TGMenuBar           *fMenuBar;            ///< the main window menu bar
0075    TGPopupMenu         *fMenuStyle;          ///< the 'Style' popup menu
0076    TGPopupMenu         *fImportCascade;      ///< Cascaded menu 'Import'
0077    TGPopupMenu         *fMenuHelp;           ///< the 'Help' popup menu
0078 
0079    TGToolBar           *fToolBar;            ///< the tool bar
0080    TGPictureButton     *fToolBarNew;         ///< tool bar 'New' button
0081    TGPictureButton     *fToolBarDelete;      ///< tool bar 'Delete' button
0082    TGPictureButton     *fToolBarImportCanvas;///< tool bar 'Import from canvas' button
0083    TGPictureButton     *fToolBarImportMacro; ///< tool bar 'Import from macro' button
0084    TGPictureButton     *fToolBarExport;      ///< tool bar 'Export' button
0085    TGPictureButton     *fToolBarHelp;        ///< tool bar 'Help' button
0086    const TGPicture     *fToolBarNewPic;      ///< tool bar 'New' picture
0087    const TGPicture     *fToolBarDeletePic;   ///< tool bar 'Delete' picture
0088    const TGPicture     *fToolBarImportCanvasPic;///< tool bar 'Import from canvas' picture
0089    const TGPicture     *fToolBarImportMacroPic; ///< tool bar 'Import from macro' picture
0090    const TGPicture     *fToolBarExportPic;   ///< tool bar 'Export' picture
0091    const TGPicture     *fToolBarHelpPic;     ///< tool bar 'Help' picture
0092    TGHorizontal3DLine  *fHorizontal3DLine;   ///< a line under the tool bar
0093 
0094    TGLabel             *fListLabel;          ///< label 'Available Styles:'
0095    TGComboBox          *fListComboBox;       ///< list of available styles
0096    TGFileInfo          *fCurMacro;           ///< current macro
0097    TGLabel             *fCurStylabel;        ///< label 'gStyle is set to:'
0098    TGTextEntry         *fCurStyle;           ///< label showing gStyle's name
0099    TGLabel             *fCurPadLabel;        ///< label 'Canvas:'
0100    TGTextEntry         *fCurPadTextEntry;    ///< label showing current pad's name
0101    TVirtualPad         *fCurPad;             ///< current pad
0102    TGLabel             *fCurObjLabel;        ///< label 'Object:'
0103    TGTextEntry         *fCurObjTextEntry;    ///< label showing current object's name
0104    TObject             *fCurObj;             ///< current object
0105    TGCheckButton       *fPreviewButton;      ///< if checked, preview is visible
0106    TGCheckButton       *fPreviewRealTime;    ///< if checked, real time preview
0107    TStylePreview       *fPreviewWindow;      ///< preview
0108    TGPictureButton     *fMakeDefault;        ///< selected style becom gStyle
0109    const TGPicture     *fMakeDefaultPic;     ///< button picture
0110 
0111    TGHButtonGroup      *fApplyOnGroup;       ///< 'Apply on' button group
0112    TGRadioButton       *fApplyOnAll;         ///< 'Apply on' button group
0113    TGRadioButton       *fApplyOnSel;         ///< 'Apply on' button group
0114    TGTextButton        *fApplyOnButton;      ///< apply style on object(s)
0115 
0116    TGTextButton        *fMoreLess;           ///< open/close the editor
0117    TGStatusBar         *fStatusBar;          ///< status bar
0118 
0119    TGVerticalFrame     *fEditionFrame;       ///< editor
0120    TGTab               *fEditionTab;         ///< editor's tabs
0121    TGTab               *fHistosTab;          ///< histos' tabs
0122    TGTab               *fAxisTab;            ///< axis' tabs
0123    TGHorizontalFrame   *fEditionButtonFrame; ///< editor's buttons
0124 
0125    TGTextButton        *fEditionHelp;           ///< help button
0126    TGTextButton        *fEditionUpdatePreview;  ///< update preview button
0127    TGTextButton        *fEditionReset;          ///< reset button
0128 
0129    TGColorSelect       *fFillColor;          ///< general fill color selection widget
0130    TGedPatternSelect   *fFillStyle;          ///< general fill pattern selection widget
0131    TGLineWidthComboBox *fHatchesLineWidth;   ///< general hatches width combo box
0132    TGNumberEntry       *fHatchesSpacing;     ///< general hatches spacing number entry
0133    TGColorSelect       *fTextColor;          ///< general text color selection widget
0134    TGNumberEntry       *fTextSize;           ///< general text size number entry
0135    TGCheckButton       *fTextSizeInPixels;   ///< general text size check box
0136    TGFontTypeComboBox  *fTextFont;           ///< general text font combo box
0137    TGComboBox          *fTextAlign;          ///< general text align combo box
0138    TGNumberEntry       *fTextAngle;          ///< general text angle number entry
0139    TGColorSelect       *fLineColor;          ///< general line color selection widget
0140    TGLineWidthComboBox *fLineWidth;          ///< general line width combo box
0141    TGLineStyleComboBox *fLineStyle;          ///< general line style combo box
0142    TGTextButton        *fLineStyleEdit;      ///< general line style editor open button
0143    TGColorSelect       *fMarkerColor;        ///< general marker color selection widget
0144    TGedMarkerSelect    *fMarkerStyle;        ///< general marker style entry
0145    TGComboBox          *fMarkerSize;         ///< general marker size combo box
0146    TGNumberEntry       *fScreenFactor;       ///< general screen factor number entry
0147    TGColorSelect       *fCanvasColor;        ///< canvas fill color selection widget
0148    TGNumberEntry       *fCanvasDefX;         ///< canvas abscissa number entry
0149    TGNumberEntry       *fCanvasDefY;         ///< canvas ordinate number entry
0150    TGNumberEntry       *fCanvasDefW;         ///< canvas width number entry
0151    TGNumberEntry       *fCanvasDefH;         ///< canvas height number entry
0152    TGButtonGroup       *fCanvasBorderMode;   ///< canvas border mode button group
0153    TGLineWidthComboBox *fCanvasBorderSize;   ///< canvas border size combo box
0154    TGCheckButton       *fOptDateBool;        ///< canvas date show/hide check box
0155    TGColorSelect       *fAttDateTextColor;   ///< canvas date color selection widget
0156    TGNumberEntry       *fAttDateTextSize;    ///< canvas date size number entry
0157    TGCheckButton       *fAttDateTextSizeInPixels;  ///< canvas date size check box
0158    TGComboBox          *fOptDateFormat;      ///< canvas date format text entry
0159    TGFontTypeComboBox  *fAttDateTextFont;    ///< canvas date font combo box
0160    TGNumberEntry       *fAttDateTextAngle;   ///< canvas date angle number entry
0161    TGComboBox          *fAttDateTextAlign;   ///< canvas date align combo box
0162    TGNumberEntry       *fDateX;              ///< canvas date abscissa number entry
0163    TGNumberEntry       *fDateY;              ///< canvas date ordinate number entry
0164    TGNumberEntry       *fPadLeftMargin;      ///< pad left margin number entry
0165    TGNumberEntry       *fPadRightMargin;     ///< pad right margin number entry
0166    TGNumberEntry       *fPadTopMargin;       ///< pad top margin number entry
0167    TGNumberEntry       *fPadBottomMargin;    ///< pad bottom margin number entry
0168    TGButtonGroup       *fPadBorderMode;      ///< pad border mode button group
0169    TGLineWidthComboBox *fPadBorderSize;      ///< pad border size combo box
0170    TGColorSelect       *fPadColor;           ///< pad fill color selection widget
0171    TGCheckButton       *fPadTickX;           ///< pad ticks along X show/hide check box
0172    TGCheckButton       *fPadTickY;           ///< pad ticks along Y show/hide check box
0173    TGCheckButton       *fPadGridX;           ///< pad grid along X show/hide check box
0174    TGCheckButton       *fPadGridY;           ///< pad grid along Y show/hide check box
0175    TGColorSelect       *fGridColor;          ///< pad grid line color selection widget
0176    TGLineWidthComboBox *fGridWidth;          ///< pad grid line width combo box
0177    TGLineStyleComboBox *fGridStyle;          ///< pad grid line style combo box
0178    TGColorSelect       *fHistFillColor;      ///< histograms fill color selection widget
0179    TGedPatternSelect   *fHistFillStyle;      ///< histograms fill pattern selection widget
0180    TGColorSelect       *fHistLineColor;      ///< histograms fill color selection widget
0181    TGLineWidthComboBox *fHistLineWidth;      ///< histograms line width combo box
0182    TGLineStyleComboBox *fHistLineStyle;      ///< histograms line style combo box
0183    TGNumberEntry       *fBarWidth;           ///< histograms bar width number entry
0184    TGNumberEntry       *fBarOffset;          ///< histograms bar offset number entry
0185    TGCheckButton       *fHistMinimumZero;    ///< histograms minimum zero check box
0186    TGTextEntry         *fPaintTextFormat;    ///< histograms format text entry
0187    TGNumberEntry       *fNumberContours;     ///< histograms number of contours number entry
0188    TGNumberEntry       *fLegoInnerR;         ///< histograms lego inner radius number entry
0189    TGColorSelect       *fFrameFillColor;     ///< frame fill color selection widget
0190    TGedPatternSelect   *fFrameFillStyle;     ///< frame fill pattern selection widget
0191    TGColorSelect       *fFrameLineColor;     ///< frame line color selection widget
0192    TGLineWidthComboBox *fFrameLineWidth;     ///< frame line width combo box
0193    TGLineStyleComboBox *fFrameLineStyle;     ///< frame line style combo box
0194    TGTextButton        *fPaletteEdit;        ///< palette editor open button
0195    TGButtonGroup       *fFrameBorderMode;    ///< frame border mode button group
0196    TGLineWidthComboBox *fFrameBorderSize;    ///< frame border size combo box
0197    TGColorSelect       *fFuncColor;          ///< function color selection widget
0198    TGLineWidthComboBox *fFuncWidth;          ///< function width number entry
0199    TGLineStyleComboBox *fFuncStyle;          ///< function line style combo box
0200    TGCheckButton       *fDrawBorder;         ///< function border show/hide check box
0201    TGNumberEntry       *fEndErrorSize;       ///< end error size number entry
0202    TGNumberEntry       *fErrorX;             ///< error along abscissa number entry
0203    TGNumberEntry       *fTimeOffsetDate;     ///< axis time offset (mm/dd/yyyy) number entry
0204    TGNumberEntry       *fTimeOffsetTime;     ///< axis time offset (hh:mm:ss) number entry
0205    TGCheckButton       *fStripDecimals;      ///< axis label's decimal part show/hide check box
0206    TGTextButton        *fApplyOnXYZ;         ///< axis apply on XYZ text button
0207    TGNumberEntry       *fXTitleSize;         ///< X axis title size number entry
0208    TGCheckButton       *fXTitleSizeInPixels; ///< X axis title size check box
0209    TGColorSelect       *fXTitleColor;        ///< X axis title color selection widget
0210    TGNumberEntry       *fXTitleOffset;       ///< X axis title offset number entry
0211    TGFontTypeComboBox  *fXTitleFont;         ///< X axis title font combo box
0212    TGNumberEntry       *fXLabelSize;         ///< X axis label size number entry
0213    TGCheckButton       *fXLabelSizeInPixels; ///< X axis label size check box
0214    TGColorSelect       *fXLabelColor;        ///< X axis label color selection widget
0215    TGNumberEntry       *fXLabelOffset;       ///< X axis label offset number entry
0216    TGFontTypeComboBox  *fXLabelFont;         ///< X axis label font combo box
0217    TGColorSelect       *fXAxisColor;         ///< X axis color selection widget
0218    TGNumberEntry       *fXTickLength;        ///< X axis tick length number entry
0219    TGCheckButton       *fOptLogx;            ///< X axis logarithmic scale check box
0220    TGNumberEntry       *fXNdivMain;          ///< X axis primary division number entry
0221    TGNumberEntry       *fXNdivSub;           ///< X axis secondary division number entry
0222    TGNumberEntry       *fXNdivSubSub;        ///< X axis tertiary division number entry
0223    TGCheckButton       *fXNdivisionsOptimize;///< X axis division optimization check box
0224    TGNumberEntry       *fYTitleSize;         ///< Y axis title size number entry
0225    TGCheckButton       *fYTitleSizeInPixels; ///< Y axis title size check box
0226    TGColorSelect       *fYTitleColor;        ///< Y axis title color selection widget
0227    TGNumberEntry       *fYTitleOffset;       ///< Y axis title offset number entry
0228    TGFontTypeComboBox  *fYTitleFont;         ///< Y axis title font combo box
0229    TGNumberEntry       *fYLabelSize;         ///< Y axis label size number entry
0230    TGCheckButton       *fYLabelSizeInPixels; ///< Y axis label size check box
0231    TGColorSelect       *fYLabelColor;        ///< Y axis label color selection widget
0232    TGNumberEntry       *fYLabelOffset;       ///< Y axis label offset number entry
0233    TGFontTypeComboBox  *fYLabelFont;         ///< Y axis label font combo box
0234    TGColorSelect       *fYAxisColor;         ///< Y axis color selection widget
0235    TGNumberEntry       *fYTickLength;        ///< Y axis tick length number entry
0236    TGCheckButton       *fOptLogy;            ///< Y axis logarithmic scale check box
0237    TGNumberEntry       *fYNdivMain;          ///< Y axis primary division number entry
0238    TGNumberEntry       *fYNdivSub;           ///< Y axis secondary division number entry
0239    TGNumberEntry       *fYNdivSubSub;        ///< Y axis tertiary division number entry
0240    TGCheckButton       *fYNdivisionsOptimize;///< Y axis division optimization check box
0241    TGNumberEntry       *fZTitleSize;         ///< Z axis title size number entry
0242    TGCheckButton       *fZTitleSizeInPixels; ///< Z axis title size check box
0243    TGColorSelect       *fZTitleColor;        ///< Z axis title color selection widget
0244    TGNumberEntry       *fZTitleOffset;       ///< Z axis title offset number entry
0245    TGFontTypeComboBox  *fZTitleFont;         ///< Z axis title font combo box
0246    TGNumberEntry       *fZLabelSize;         ///< Z axis label size number entry
0247    TGCheckButton       *fZLabelSizeInPixels; ///< Z axis label size check box
0248    TGColorSelect       *fZLabelColor;        ///< Z axis label color selection widget
0249    TGNumberEntry       *fZLabelOffset;       ///< Z axis label offset number entry
0250    TGFontTypeComboBox  *fZLabelFont;         ///< Z axis label font combo box
0251    TGColorSelect       *fZAxisColor;         ///< Z axis color selection widget
0252    TGNumberEntry       *fZTickLength;        ///< Z axis tick length number entry
0253    TGCheckButton       *fOptLogz;            ///< Z axis logarithmic scale check box
0254    TGNumberEntry       *fZNdivMain;          ///< Z axis primary division number entry
0255    TGNumberEntry       *fZNdivSub;           ///< Z axis secondary division number entry
0256    TGNumberEntry       *fZNdivSubSub;        ///< Z axis tertiary division number entry
0257    TGCheckButton       *fZNdivisionsOptimize;///< Z axis division optimization check box
0258    TGCheckButton       *fOptTitle;           ///< title show/hide check box
0259    TGColorSelect       *fTitleColor;         ///< title fill color selection widget
0260    TGedPatternSelect   *fTitleStyle;         ///< title fill pattern selection widget
0261    TGColorSelect       *fTitleTextColor;     ///< title text color selection widget
0262    TGNumberEntry       *fTitleFontSize;      ///< title font size number entry
0263    TGCheckButton       *fTitleFontSizeInPixels; ///< title font size check box
0264    TGFontTypeComboBox  *fTitleFont;          ///< title font combo box
0265    TGComboBox          *fTitleAlign;         ///< title align combo box
0266    TGLabel             *fTitleBorderSizeLabel;  ///< label 'Title's'
0267    TGLineWidthComboBox *fTitleBorderSize;    ///< title border size combo box
0268    TGNumberEntry       *fTitleX;             ///< title abscissa number entry
0269    TGNumberEntry       *fTitleY;             ///< title ordinate number entry
0270    TGNumberEntry       *fTitleW;             ///< title width number entry
0271    TGNumberEntry       *fTitleH;             ///< title height number entry
0272    TGLabel             *fLegendBorderSizeLabel; ///< label 'Legend's'
0273    TGLineWidthComboBox *fLegendBorderSize;   ///< legend border size combo box
0274    TGColorSelect       *fStatColor;          ///< stats fill color selection widget
0275    TGedPatternSelect   *fStatStyle;          ///< stats fill pattern selection widget
0276    TGColorSelect       *fStatTextColor;      ///< stats text color selection widget
0277    TGNumberEntry       *fStatFontSize;       ///< stats font size number entry
0278    TGCheckButton       *fStatFontSizeInPixels;  ///< stats font size check box
0279    TGFontTypeComboBox  *fStatFont;           ///< stats font type combo box
0280    TGNumberEntry       *fStatX;              ///< stats abscissa number entry
0281    TGNumberEntry       *fStatY;              ///< stats ordinate number entry
0282    TGNumberEntry       *fStatW;              ///< stats width number entry
0283    TGNumberEntry       *fStatH;              ///< stats height number entry
0284    TGLabel             *fStatBorderSizeLabel;   ///< label 'stats' shadow
0285    TGLineWidthComboBox *fStatBorderSize;     ///< stats border size combo box
0286    TGCheckButton       *fOptStatName;        ///< stats name show/hide check box
0287    TGCheckButton       *fOptStatEntries;     ///< stats entries show/hide check box
0288    TGCheckButton       *fOptStatOverflow;    ///< stats overflow show/hide check box
0289    TGCheckButton       *fOptStatMean;        ///< stats mean show/hide check box
0290    TGCheckButton       *fOptStatUnderflow;   ///< stats underflow show/hide check box
0291    TGCheckButton       *fOptStatRMS;         ///< stats RMS show/hide check box
0292    TGCheckButton       *fOptStatSkewness;    ///< stats Skewness show/hide check box
0293    TGCheckButton       *fOptStatIntegral;    ///< stats integral show/hide check box
0294    TGCheckButton       *fOptStatKurtosis;    ///< stats kurtosis show/hide check box
0295    TGCheckButton       *fOptStatErrors;      ///< stats errors check box
0296    TGLabel             *fStatFormatLabel;    ///< label 'stats format'
0297    TGTextEntry         *fStatFormat;         ///< stats format text entry
0298    TGCheckButton       *fOptFitValues;       ///< fit values show/hide check box
0299    TGCheckButton       *fOptFitErrors;       ///< fit errors check box
0300    TGCheckButton       *fOptFitProbability;  ///< fit probability show/hide check box
0301    TGCheckButton       *fOptFitChi;          ///< fit Chi show/hide check box
0302    TGLabel             *fFitFormatLabel;     ///< label 'fit format'
0303    TGTextEntry         *fFitFormat;          ///< fit format text entry
0304    TGTextEntry         *fHeaderPS;           ///< ps/pdf header text entry
0305    TGTextEntry         *fTitlePS;            ///< ps/pdf title text entry
0306    TGButtonGroup       *fColorModelPS;       ///< ps/pdf color model button group
0307    TGRadioButton       *fColorModelPSRGB;    ///< RGB radio button
0308    TGRadioButton       *fColorModelPSCMYK;   ///< CMYB radio button
0309    TGNumberEntry       *fLineScalePS;        ///< ps/pdf line scale number entry
0310    TGComboBox          *fPaperSizePredef;    ///< ps/pdf paper size combo box
0311    Bool_t               fPaperSizeEnCm;      ///< kTRUE if the paper size is in cm
0312    TGNumberEntry       *fPaperSizeX;         ///< ps/pdf paper size width number entry
0313    TGNumberEntry       *fPaperSizeY;         ///< ps/pdf paper size height number entry
0314 
0315    TGLayoutHints       *fLayoutExpandX;               ///< often used layout
0316    TGLayoutHints       *fLayoutExpandXMargin;         ///< often used layout
0317    TGLayoutHints       *fLayoutExpandXY;              ///< often used layout
0318    TGLayoutHints       *fLayoutExpandXYMargin;        ///< often used layout
0319    TGLayoutHints       *fLayoutExpandXCenterYMargin;  ///< often used layout
0320 
0321    void AddMenus(TGCompositeFrame *p);
0322    void DoNew();
0323    void DoDelete();
0324    void DoRename();
0325    void DoExport();
0326    void DoExit();
0327    void DoHelp(Int_t i);
0328    void DoImportCanvas();
0329    void CreateMacro();
0330 
0331    void AddToolbar(TGCompositeFrame *p);
0332 
0333    void AddTopLevelInterface(TGCompositeFrame *cf);
0334    void UpdateStatusBar();
0335    void UpdateEditor(Int_t tabNum);
0336    void ConnectAll();
0337    void DisconnectAll();
0338    void ConnectEditor(Int_t tabNum);
0339    void DisconnectEditor(Int_t tabNum);
0340    void DoEditor();
0341 
0342    void AddEdition(TGCompositeFrame *p);
0343 
0344    void CreateTabGeneral(TGCompositeFrame *tab);
0345    void AddGeneralLine(TGCompositeFrame *f);
0346    void AddGeneralFill(TGCompositeFrame *f);
0347    void AddGeneralText(TGCompositeFrame *f);
0348    void AddGeneralMarker(TGCompositeFrame *f);
0349 
0350    void CreateTabCanvas(TGCompositeFrame *tab);
0351    void AddCanvasFill(TGCompositeFrame *f);
0352    void AddCanvasGeometry(TGCompositeFrame *f);
0353    void AddCanvasBorder(TGCompositeFrame *f);
0354    void AddCanvasDate(TGCompositeFrame *f);
0355 
0356    void CreateTabPad(TGCompositeFrame *tab);
0357    void AddPadMargin(TGCompositeFrame *f);
0358    void AddPadBorder(TGCompositeFrame *f);
0359    void AddPadFill(TGCompositeFrame *f);
0360    void AddPadTicks(TGCompositeFrame *f);
0361    void AddPadGrid(TGCompositeFrame *f);
0362 
0363    void CreateTabHistos(TGCompositeFrame *tab);
0364    void CreateTabHistosHistos(TGCompositeFrame *tab);
0365    void AddHistosHistosFill(TGCompositeFrame *f);
0366    void AddHistosHistosLine(TGCompositeFrame *f);
0367    void AddHistosHistosBar(TGCompositeFrame *f);
0368    void AddHistosHistosContours(TGCompositeFrame *f);
0369    void AddHistosHistosAxis(TGCompositeFrame *f);
0370    void AddHistosHistosLegoInnerR(TGCompositeFrame *f);
0371 
0372    void CreateTabHistosFrames(TGCompositeFrame *tab);
0373    void AddHistosFramesFill(TGCompositeFrame *f);
0374    void AddHistosFramesLine(TGCompositeFrame *f);
0375    void AddHistosFramesBorder(TGCompositeFrame *f);
0376 
0377    void CreateTabHistosGraphs(TGCompositeFrame *tab);
0378    void AddHistosGraphsLine(TGCompositeFrame *f);
0379    void AddHistosGraphsBorder(TGCompositeFrame *f);
0380    void AddHistosGraphsErrors(TGCompositeFrame *f);
0381 
0382    void CreateTabAxis(TGCompositeFrame *tab);
0383    void CreateTabAxisX(TGCompositeFrame *tab);
0384    void AddAxisXTitle(TGCompositeFrame *f);
0385    void AddAxisXLine(TGCompositeFrame *f);
0386    void AddAxisXLabels(TGCompositeFrame *f);
0387    void AddAxisXDivisions(TGCompositeFrame *f);
0388 
0389    void CreateTabAxisY(TGCompositeFrame *tab);
0390    void AddAxisYTitle(TGCompositeFrame *f);
0391    void AddAxisYLine(TGCompositeFrame *f);
0392    void AddAxisYLabels(TGCompositeFrame *f);
0393    void AddAxisYDivisions(TGCompositeFrame *f);
0394 
0395    void CreateTabAxisZ(TGCompositeFrame *tab);
0396    void AddAxisZTitle(TGCompositeFrame *f);
0397    void AddAxisZLine(TGCompositeFrame *f);
0398    void AddAxisZLabels(TGCompositeFrame *f);
0399    void AddAxisZDivisions(TGCompositeFrame *f);
0400 
0401    void CreateTabTitle(TGCompositeFrame *tab);
0402    void AddTitleFill(TGCompositeFrame *f);
0403    void AddTitleBorderSize(TGCompositeFrame *f);
0404    void AddTitleText(TGCompositeFrame *f);
0405    void AddTitleGeometry(TGCompositeFrame *f);
0406 
0407    void CreateTabStats(TGCompositeFrame *tab);
0408    void AddStatsFill(TGCompositeFrame *f);
0409    void AddStatsText(TGCompositeFrame *f);
0410    void AddStatsGeometry(TGCompositeFrame *f);
0411    void AddStatsStats(TGCompositeFrame *f);
0412    void AddStatsFit(TGCompositeFrame *f);
0413 
0414    void CreateTabPsPdf(TGCompositeFrame *tab);
0415    void AddPsPdfHeader(TGCompositeFrame *f);
0416    void AddPsPdfTitle(TGCompositeFrame *f);
0417    void AddPsPdfColorModel(TGCompositeFrame *f);
0418    void AddPsPdfPaperSize(TGCompositeFrame *f);
0419    void AddPsPdfLineScale(TGCompositeFrame *f);
0420 
0421    void                 AddTitle(TGCompositeFrame *f, const char *s);
0422    TGColorSelect       *AddColorEntry(TGCompositeFrame *f, Int_t id);
0423    TGedPatternSelect   *AddFillStyleEntry(TGCompositeFrame *f, Int_t id);
0424    TGedMarkerSelect    *AddMarkerStyleEntry(TGCompositeFrame *f, Int_t id);
0425    TGComboBox          *AddMarkerSizeEntry(TGCompositeFrame *f, Int_t id);
0426    TGNumberEntry       *AddNumberEntry(TGCompositeFrame *f, Int_t e1, Int_t e2,
0427                            Int_t e3, Int_t id, const char *s, Double_t init, Int_t digits,
0428                            TGNumberFormat::EStyle nfS, TGNumberFormat::EAttribute nfA,
0429                            TGNumberFormat::ELimit nfL, Double_t min, Double_t max);
0430    TGLineWidthComboBox *AddLineWidthEntry(TGCompositeFrame *f, Int_t id);
0431    TGLineStyleComboBox *AddLineStyleEntry(TGCompositeFrame *f, Int_t id);
0432    TGTextButton        *AddTextButton(TGCompositeFrame *f, const char *s, Int_t id);
0433    TGFontTypeComboBox  *AddFontTypeEntry(TGCompositeFrame *f, Int_t id);
0434    TGComboBox          *AddTextAlignEntry(TGCompositeFrame *f, Int_t id);
0435    TGButtonGroup       *AddBorderModeEntry(TGCompositeFrame *f, Int_t id1, Int_t id2, Int_t id3);
0436    TGComboBox          *AddDateFormatEntry(TGCompositeFrame *f, Int_t id);
0437    TGCheckButton       *AddCheckButton(TGCompositeFrame *f, const char *s, Int_t id, Int_t e1 = 0, Int_t e2 = 2);
0438    TGTextEntry         *AddTextEntry(TGCompositeFrame *f, const char *s, Int_t id);
0439    TGComboBox          *AddPaperSizeEntry(TGCompositeFrame *f, Int_t id);
0440 
0441 public:
0442    TStyleManager(const TGWindow *);
0443    ~TStyleManager() override;
0444 
0445    static void Show();
0446    static void Terminate();
0447    static TStyleManager *&GetSM();
0448 
0449    void Init();
0450    void Hide();
0451 
0452    void SetCurSelStyle(TStyle *style) { fCurSelStyle = style; }
0453    void SetLastChoice(Bool_t choice)  { fLastChoice = choice; }
0454 
0455    void DoMenu(Int_t menuID);                // SLOT
0456    void DoImportMacro(Bool_t create);        // SLOT
0457    void DoListSelect();                      // SLOT
0458    void DoRealTime(Bool_t b);                // SLOT
0459    void DoPreview(Bool_t b);                 // SLOT
0460    void DoPreviewClosed();                   // SLOT
0461    void DoMakeDefault();                     // SLOT
0462    void DoApplyOnSelect(Int_t i);            // SLOT
0463    void DoApplyOn();                         // SLOT
0464    void DoMoreLess();                        // SLOT
0465    void DoEditionUpdatePreview();            // SLOT
0466    void DoChangeTab(Int_t i);                // SLOT
0467    void DoChangeAxisTab(Int_t i);            // SLOT
0468    void BuildList(TStyle *style = nullptr);
0469    void DoSelectNoCanvas();                  // SLOT
0470    void DoSelectCanvas(TVirtualPad *pad,
0471          TObject *obj, Int_t mouseButton);   // SLOT
0472    void CloseWindow() override;                       // SLOT
0473 
0474 // GENERAL
0475    void ModFillColor();                      // SLOT
0476    void ModFillStyle();                      // SLOT
0477    void ModHatchesLineWidth();               // SLOT
0478    void ModHatchesSpacing();                 // SLOT
0479    void ModMarkerColor();                    // SLOT
0480    void ModMarkerStyle();                    // SLOT
0481    void ModMarkerSize();                     // SLOT
0482    void ModScreenFactor();                   // SLOT
0483    void ModLineColor();                      // SLOT
0484    void ModLineWidth();                      // SLOT
0485    void ModLineStyle();                      // SLOT
0486    void ModLineStyleEdit();                  // SLOT
0487    void ModTextColor();                      // SLOT
0488    void ModTextSize();                       // SLOT
0489    void ModTextSizeInPixels(Bool_t b);       // SLOT
0490    void ModTextFont();                       // SLOT
0491    void ModTextAlign();                      // SLOT
0492    void ModTextAngle();                      // SLOT
0493 
0494 // CANVAS
0495    void ModCanvasColor();                    // SLOT
0496    void ModCanvasDefX();                     // SLOT
0497    void ModCanvasDefY();                     // SLOT
0498    void ModCanvasDefW();                     // SLOT
0499    void ModCanvasDefH();                     // SLOT
0500    void ModCanvasBorderMode();               // SLOT
0501    void ModCanvasBorderSize();               // SLOT
0502    void ModOptDateBool();                    // SLOT
0503    void ModAttDateTextColor();               // SLOT
0504    void ModAttDateTextSize();                // SLOT
0505    void ModAttDateTextSizeInPixels(Bool_t b);// SLOT
0506    void ModOptDateFormat();                  // SLOT
0507    void ModAttDateTextFont();                // SLOT
0508    void ModAttDateTextAngle();               // SLOT
0509    void ModAttDateTextAlign();               // SLOT
0510    void ModDateX();                          // SLOT
0511    void ModDateY();                          // SLOT
0512 
0513 // PAD
0514    void ModPadTopMargin();                   // SLOT
0515    void ModPadBottomMargin();                // SLOT
0516    void ModPadLeftMargin();                  // SLOT
0517    void ModPadRightMargin();                 // SLOT
0518    void ModPadBorderMode();                  // SLOT
0519    void ModPadBorderSize();                  // SLOT
0520    void ModPadColor();                       // SLOT
0521    void ModPadTickX();                       // SLOT
0522    void ModPadTickY();                       // SLOT
0523    void ModPadGridX();                       // SLOT
0524    void ModPadGridY();                       // SLOT
0525    void ModGridColor();                      // SLOT
0526    void ModGridWidth();                      // SLOT
0527    void ModGridStyle();                      // SLOT
0528 
0529  // HISTOS HISTOS
0530    void ModHistFillColor();                  // SLOT
0531    void ModHistFillStyle();                  // SLOT
0532    void ModHistLineColor();                  // SLOT
0533    void ModHistLineWidth();                  // SLOT
0534    void ModHistLineStyle();                  // SLOT
0535    void ModBarWidth();                       // SLOT
0536    void ModBarOffset();                      // SLOT
0537    void ModHistMinimumZero();                // SLOT
0538    void ModPaintTextFormat();                // SLOT
0539    void ModNumberContours();                 // SLOT
0540    void ModLegoInnerR();                     // SLOT
0541 
0542 // HISTOS FRAMES
0543    void ModFrameFillColor();                 // SLOT
0544    void ModFrameFillStyle();                 // SLOT
0545    void ModFrameLineColor();                 // SLOT
0546    void ModFrameLineWidth();                 // SLOT
0547    void ModFrameLineStyle();                 // SLOT
0548    void ModPaletteEdit();                    // SLOT
0549    void ModFrameBorderMode();                // SLOT
0550    void ModFrameBorderSize();                // SLOT
0551 
0552 // HISTOS GRAPHS
0553    void ModFuncColor();                      // SLOT
0554    void ModFuncWidth();                      // SLOT
0555    void ModFuncStyle();                      // SLOT
0556    void ModDrawBorder();                     // SLOT
0557    void ModEndErrorSize();                   // SLOT
0558    void ModErrorX();                         // SLOT
0559 
0560 // AXIS
0561    void ModTimeOffset();                     // SLOT
0562    void ModStripDecimals();                  // SLOT
0563    void ModApplyOnXYZ();                     // SLOT
0564 
0565 // AXIS X AXIS
0566    void ModXTitleSize();                     // SLOT
0567    void ModXTitleSizeInPixels(Bool_t b);     // SLOT
0568    void ModXTitleColor();                    // SLOT
0569    void ModXTitleOffset();                   // SLOT
0570    void ModXTitleFont();                     // SLOT
0571    void ModXLabelSize();                     // SLOT
0572    void ModXLabelSizeInPixels(Bool_t b);     // SLOT
0573    void ModXLabelColor();                    // SLOT
0574    void ModXLabelOffset();                   // SLOT
0575    void ModXLabelFont();                     // SLOT
0576    void ModXAxisColor();                     // SLOT
0577    void ModXTickLength();                    // SLOT
0578    void ModOptLogx();                        // SLOT
0579    void ModXNdivisions();                    // SLOT
0580 
0581 // AXIS Y AXIS
0582    void ModYTitleSize();                     // SLOT
0583    void ModYTitleSizeInPixels(Bool_t b);     // SLOT
0584    void ModYTitleColor();                    // SLOT
0585    void ModYTitleOffset();                   // SLOT
0586    void ModYTitleFont();                     // SLOT
0587    void ModYLabelSize();                     // SLOT
0588    void ModYLabelSizeInPixels(Bool_t b);     // SLOT
0589    void ModYLabelColor();                    // SLOT
0590    void ModYLabelOffset();                   // SLOT
0591    void ModYLabelFont();                     // SLOT
0592    void ModYAxisColor();                     // SLOT
0593    void ModYTickLength();                    // SLOT
0594    void ModOptLogy();                        // SLOT
0595    void ModYNdivisions();                    // SLOT
0596 
0597 // AXIS Z AXIS
0598    void ModZTitleSize();                     // SLOT
0599    void ModZTitleSizeInPixels(Bool_t b);     // SLOT
0600    void ModZTitleColor();                    // SLOT
0601    void ModZTitleOffset();                   // SLOT
0602    void ModZTitleFont();                     // SLOT
0603    void ModZLabelSize();                     // SLOT
0604    void ModZLabelSizeInPixels(Bool_t b);     // SLOT
0605    void ModZLabelColor();                    // SLOT
0606    void ModZLabelOffset();                   // SLOT
0607    void ModZLabelFont();                     // SLOT
0608    void ModZAxisColor();                     // SLOT
0609    void ModZTickLength();                    // SLOT
0610    void ModOptLogz();                        // SLOT
0611    void ModZNdivisions();                    // SLOT
0612 
0613 // TITLES
0614    void ModOptTitle();                       // SLOT
0615    void ModTitleFillColor();                 // SLOT
0616    void ModTitleStyle();                     // SLOT
0617    void ModTitleTextColor();                 // SLOT
0618    void ModTitleFontSize();                  // SLOT
0619    void ModTitleFontSizeInPixels(Bool_t b);  // SLOT
0620    void ModTitleFont();                      // SLOT
0621    void ModTitleAlign();                     // SLOT
0622    void ModTitleBorderSize();                // SLOT
0623    void ModTitleX();                         // SLOT
0624    void ModTitleY();                         // SLOT
0625    void ModTitleW();                         // SLOT
0626    void ModTitleH();                         // SLOT
0627    void ModLegendBorderSize();               // SLOT
0628 
0629 // STATS
0630    void ModStatColor(Pixel_t color);         // SLOT
0631    void ModStatStyle(Style_t pattern);       // SLOT
0632    void ModStatTextColor(Pixel_t color);     // SLOT
0633    void ModStatFontSize();                   // SLOT
0634    void ModStatFontSizeInPixels(Bool_t b);   // SLOT
0635    void ModStatFont();                       // SLOT
0636    void ModStatX();                          // SLOT
0637    void ModStatY();                          // SLOT
0638    void ModStatW();                          // SLOT
0639    void ModStatH();                          // SLOT
0640    void ModStatBorderSize();                 // SLOT
0641    void ModOptStat();                        // SLOT
0642    void ModStatFormat(const char *sformat);  // SLOT
0643    void ModOptFit();                         // SLOT
0644    void ModFitFormat(const char *fitformat); // SLOT
0645 
0646 // PS / PDF
0647    void ModHeaderPS();                       // SLOT
0648    void ModTitlePS();                        // SLOT
0649    void ModColorModelPS();                   // SLOT
0650    void ModLineScalePS();                    // SLOT
0651    void ModPaperSizePredef();                // SLOT
0652    void ModPaperSizeXY();                    // SLOT
0653 
0654    ClassDefOverride(TStyleManager, 0) // Graphical User Interface for managing styles
0655 };
0656 
0657 #endif