Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TStyleManager.h
Go to the documentation of this file.
1 // @(#)root/ged:$Id$
2 // Author: Denis Favre-Miville 08/09/05
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2004, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TStyleManager
13 #define ROOT_TStyleManager
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TStyleManager //
18 // //
19 // This class provides a Graphical User Interface to manage styles //
20 // in ROOT. It allows the user to edit styles, import / export //
21 // them to macros, apply a style on the selected object or on //
22 // all canvases, change gStyle. //
23 // //
24 //////////////////////////////////////////////////////////////////////////
25 
26 #include "TGFrame.h"
27 #include "TGNumberEntry.h"
28 
29 class TGButtonGroup;
30 class TGCheckButton;
31 class TGColorSelect;
32 class TGComboBox;
33 class TGCompositeFrame;
34 class TGedMarkerSelect;
35 class TGedPatternSelect;
36 class TGFileInfo;
37 class TGFontTypeComboBox;
38 class TGHButtonGroup;
39 class TGHorizontal3DLine;
40 class TGHorizontalFrame;
41 class TGLabel;
42 class TGLayoutHints;
43 class TGLineStyleComboBox;
44 class TGLineWidthComboBox;
45 class TGMainFrame;
46 class TGMatrixLayout;
47 class TGMenuBar;
48 class TGPicture;
49 class TGPictureButton;
50 class TGPopupMenu;
51 class TGRadioButton;
52 class TGStatusBar;
53 class TGTab;
54 class TGTextButton;
55 class TGTextEntry;
56 class TGToolBar;
57 class TGVerticalFrame;
58 class TList;
59 class TObject;
60 class TStyle;
61 class TStylePreview;
62 class TVirtualPad;
63 
64 class TStyleManager : public TGMainFrame {
65 
66 private:
67  static TStyleManager *fgStyleManager; // singleton style manager
68 
69  TStyle *fCurSelStyle; // current selected style
70  Bool_t fLastChoice; //=kTRUE if the user choose OK in the last TStyleDialog
71  Bool_t fRealTimePreview; //=kTRUE if auto refreshed preview
72  Int_t fCurTabNum; // current opened tab number
73  Int_t fCurTabAxisNum; // current opened axis tab number
74  UInt_t fSMWidth; // style manager's width
75  UInt_t fSMHeight; // style manager's height
76  Bool_t fStyleChanged; //=kTRUE if the style has been modified
77 
78  Bool_t fMoreAndNotLess; //=kTRUE when editor is open
79  Bool_t fSigSlotConnected; //=kTRUE when signal/slots connected
80  Bool_t fAllAndNotCurrent; //=kTRUE when apply on 'All canvases'
81  TList *fTrashListFrame; // to avoid memory leak
82  TList *fTrashListLayout; // to avoid memory leak
83 
84  TGMenuBar *fMenuBar; // the main window menu bar
85  TGPopupMenu *fMenuStyle; // the 'Style' popup menu
86  TGPopupMenu *fImportCascade; // Cascaded menu 'Import'
87  TGPopupMenu *fMenuHelp; // the 'Help' popup menu
88 
89  TGToolBar *fToolBar; // the tool bar
90  TGPictureButton *fToolBarNew; // tool bar 'New' button
91  TGPictureButton *fToolBarDelete; // tool bar 'Delete' button
92  TGPictureButton *fToolBarImportCanvas;// tool bar 'Import from canvas' button
93  TGPictureButton *fToolBarImportMacro; // tool bar 'Import from macro' button
94  TGPictureButton *fToolBarExport; // tool bar 'Export' button
95  TGPictureButton *fToolBarHelp; // tool bar 'Help' button
96  const TGPicture *fToolBarNewPic; // tool bar 'New' picture
97  const TGPicture *fToolBarDeletePic; // tool bar 'Delete' picture
98  const TGPicture *fToolBarImportCanvasPic;// tool bar 'Import from canvas' picture
99  const TGPicture *fToolBarImportMacroPic; // tool bar 'Import from macro' picture
100  const TGPicture *fToolBarExportPic; // tool bar 'Export' picture
101  const TGPicture *fToolBarHelpPic; // tool bar 'Help' picture
102  TGHorizontal3DLine *fHorizontal3DLine; // a line under the tool bar
103 
104  TGLabel *fListLabel; // label 'Available Styles:'
105  TGComboBox *fListComboBox; // list of available styles
106  TGFileInfo *fCurMacro; // current macro
107  TGLabel *fCurStylabel; // label 'gStyle is set to:'
108  TGTextEntry *fCurStyle; // label showing gStyle's name
109  TGLabel *fCurPadLabel; // label 'Canvas:'
110  TGTextEntry *fCurPadTextEntry; // label showing current pad's name
111  TVirtualPad *fCurPad; // current pad
112  TGLabel *fCurObjLabel; // label 'Object:'
113  TGTextEntry *fCurObjTextEntry; // label showing current object's name
114  TObject *fCurObj; // current object
115  TGCheckButton *fPreviewButton; // if checked, preview is visible
116  TGCheckButton *fPreviewRealTime; // if checked, real time preview
117  TStylePreview *fPreviewWindow; // preview
118  TGPictureButton *fMakeDefault; // selected style becom gStyle
119  const TGPicture *fMakeDefaultPic; // button picture
120 
121  TGHButtonGroup *fApplyOnGroup; // 'Apply on' button group
122  TGRadioButton *fApplyOnAll; // 'Apply on' button group
123  TGRadioButton *fApplyOnSel; // 'Apply on' button group
124  TGTextButton *fApplyOnButton; // apply style on object(s)
125 
126  TGTextButton *fMoreLess; // open/close the editor
127  TGStatusBar *fStatusBar; // status bar
128 
129  TGVerticalFrame *fEditionFrame; // editor
130  TGTab *fEditionTab; // editor's tabs
131  TGTab *fHistosTab; // histos' tabs
132  TGTab *fAxisTab; // axis' tabs
133  TGHorizontalFrame *fEditionButtonFrame; // editor's buttons
134 
135  TGTextButton *fEditionHelp; // help button
136  TGTextButton *fEditionUpdatePreview; // update preview button
137  TGTextButton *fEditionReset; // reset button
138 
139  TGColorSelect *fFillColor; // general fill color selection widget
140  TGedPatternSelect *fFillStyle; // general fill pattern selection widget
141  TGLineWidthComboBox *fHatchesLineWidth; // general hatches width combo box
142  TGNumberEntry *fHatchesSpacing; // general hatches spacing number entry
143  TGColorSelect *fTextColor; // general text color selection widget
144  TGNumberEntry *fTextSize; // general text size number entry
145  TGCheckButton *fTextSizeInPixels; // general text size check box
146  TGFontTypeComboBox *fTextFont; // general text font combo box
147  TGComboBox *fTextAlign; // general text align combo box
148  TGNumberEntry *fTextAngle; // general text angle number entry
149  TGColorSelect *fLineColor; // general line color selection widget
150  TGLineWidthComboBox *fLineWidth; // general line width combo box
151  TGLineStyleComboBox *fLineStyle; // general line style combo box
152  TGTextButton *fLineStyleEdit; // general line style editor open button
153  TGColorSelect *fMarkerColor; // general marker color selection widget
154  TGedMarkerSelect *fMarkerStyle; // general marker style entry
155  TGComboBox *fMarkerSize; // general marker size combo box
156  TGNumberEntry *fScreenFactor; // general screen factor number entry
157  TGColorSelect *fCanvasColor; // canvas fill color selection widget
158  TGNumberEntry *fCanvasDefX; // canvas abscissa number entry
159  TGNumberEntry *fCanvasDefY; // canvas ordinate number entry
160  TGNumberEntry *fCanvasDefW; // canvas width number entry
161  TGNumberEntry *fCanvasDefH; // canvas height number entry
162  TGButtonGroup *fCanvasBorderMode; // canvas border mode button group
163  TGLineWidthComboBox *fCanvasBorderSize; // canvas border size combo box
164  TGCheckButton *fOptDateBool; // canvas date show/hide check box
165  TGColorSelect *fAttDateTextColor; // canvas date color selection widget
166  TGNumberEntry *fAttDateTextSize; // canvas date size number entry
167  TGCheckButton *fAttDateTextSizeInPixels; // canvas date size check box
168  TGComboBox *fOptDateFormat; // canvas date format text entry
169  TGFontTypeComboBox *fAttDateTextFont; // canvas date font combo box
170  TGNumberEntry *fAttDateTextAngle; // canvas date angle number entry
171  TGComboBox *fAttDateTextAlign; // canvas date align combo box
172  TGNumberEntry *fDateX; // canvas date abscissa number entry
173  TGNumberEntry *fDateY; // canvas date ordinate number entry
174  TGNumberEntry *fPadLeftMargin; // pad left margin number entry
175  TGNumberEntry *fPadRightMargin; // pad right margin number entry
176  TGNumberEntry *fPadTopMargin; // pad top margin number entry
177  TGNumberEntry *fPadBottomMargin; // pad bottom margin number entry
178  TGButtonGroup *fPadBorderMode; // pad border mode button group
179  TGLineWidthComboBox *fPadBorderSize; // pad border size combo box
180  TGColorSelect *fPadColor; // pad fill color selection widget
181  TGCheckButton *fPadTickX; // pad ticks along X show/hide check box
182  TGCheckButton *fPadTickY; // pad ticks along Y show/hide check box
183  TGCheckButton *fPadGridX; // pad grid along X show/hide check box
184  TGCheckButton *fPadGridY; // pad grid along Y show/hide check box
185  TGColorSelect *fGridColor; // pad grid line color selection widget
186  TGLineWidthComboBox *fGridWidth; // pad grid line width combo box
187  TGLineStyleComboBox *fGridStyle; // pad grid line style combo box
188  TGColorSelect *fHistFillColor; // histograms fill color selection widget
189  TGedPatternSelect *fHistFillStyle; // histograms fill pattern selection widget
190  TGColorSelect *fHistLineColor; // histograms fill color selection widget
191  TGLineWidthComboBox *fHistLineWidth; // histograms line width combo box
192  TGLineStyleComboBox *fHistLineStyle; // histograms line style combo box
193  TGNumberEntry *fBarWidth; // histograms bar width number entry
194  TGNumberEntry *fBarOffset; // histograms bar offset number entry
195  TGCheckButton *fHistMinimumZero; // histograms minimum zero check box
196  TGTextEntry *fPaintTextFormat; // histograms format text entry
197  TGNumberEntry *fNumberContours; // histograms number of contours number entry
198  TGNumberEntry *fLegoInnerR; // histograms lego inner radius number entry
199  TGColorSelect *fFrameFillColor; // frame fill color selection widget
200  TGedPatternSelect *fFrameFillStyle; // frame fill pattern selection widget
201  TGColorSelect *fFrameLineColor; // frame line color selection widget
202  TGLineWidthComboBox *fFrameLineWidth; // frame line width combo box
203  TGLineStyleComboBox *fFrameLineStyle; // frame line style combo box
204  TGTextButton *fPaletteEdit; // palette editor open button
205  TGButtonGroup *fFrameBorderMode; // frame border mode button group
206  TGLineWidthComboBox *fFrameBorderSize; // frame border size combo box
207  TGColorSelect *fFuncColor; // function color selection widget
208  TGLineWidthComboBox *fFuncWidth; // function width number entry
209  TGLineStyleComboBox *fFuncStyle; // function line style combo box
210  TGCheckButton *fDrawBorder; // function border show/hide check box
211  TGNumberEntry *fEndErrorSize; // end error size number entry
212  TGNumberEntry *fErrorX; // error along abscissa number entry
213  TGNumberEntry *fTimeOffsetDate; // axis time offset (mm/dd/yyyy) number entry
214  TGNumberEntry *fTimeOffsetTime; // axis time offset (hh:mm:ss) number entry
215  TGCheckButton *fStripDecimals; // axis label's decimal part show/hide check box
216  TGTextButton *fApplyOnXYZ; // axis apply on XYZ text button
217  TGNumberEntry *fXTitleSize; // X axis title size number entry
218  TGCheckButton *fXTitleSizeInPixels; // X axis title size check box
219  TGColorSelect *fXTitleColor; // X axis title color selection widget
220  TGNumberEntry *fXTitleOffset; // X axis title offset number entry
221  TGFontTypeComboBox *fXTitleFont; // X axis title font combo box
222  TGNumberEntry *fXLabelSize; // X axis label size number entry
223  TGCheckButton *fXLabelSizeInPixels; // X axis label size check box
224  TGColorSelect *fXLabelColor; // X axis label color selection widget
225  TGNumberEntry *fXLabelOffset; // X axis label offset number entry
226  TGFontTypeComboBox *fXLabelFont; // X axis label font combo box
227  TGColorSelect *fXAxisColor; // X axis color selection widget
228  TGNumberEntry *fXTickLength; // X axis tick length number entry
229  TGCheckButton *fOptLogx; // X axis logarithmic scale check box
230  TGNumberEntry *fXNdivMain; // X axis primary division number entry
231  TGNumberEntry *fXNdivSub; // X axis secondary division number entry
232  TGNumberEntry *fXNdivSubSub; // X axis tertiary division number entry
233  TGCheckButton *fXNdivisionsOptimize;// X axis division optimization check box
234  TGNumberEntry *fYTitleSize; // Y axis title size number entry
235  TGCheckButton *fYTitleSizeInPixels; // Y axis title size check box
236  TGColorSelect *fYTitleColor; // Y axis title color selection widget
237  TGNumberEntry *fYTitleOffset; // Y axis title offset number entry
238  TGFontTypeComboBox *fYTitleFont; // Y axis title font combo box
239  TGNumberEntry *fYLabelSize; // Y axis label size number entry
240  TGCheckButton *fYLabelSizeInPixels; // Y axis label size check box
241  TGColorSelect *fYLabelColor; // Y axis label color selection widget
242  TGNumberEntry *fYLabelOffset; // Y axis label offset number entry
243  TGFontTypeComboBox *fYLabelFont; // Y axis label font combo box
244  TGColorSelect *fYAxisColor; // Y axis color selection widget
245  TGNumberEntry *fYTickLength; // Y axis tick length number entry
246  TGCheckButton *fOptLogy; // Y axis logarithmic scale check box
247  TGNumberEntry *fYNdivMain; // Y axis primary division number entry
248  TGNumberEntry *fYNdivSub; // Y axis secondary division number entry
249  TGNumberEntry *fYNdivSubSub; // Y axis tertiary division number entry
250  TGCheckButton *fYNdivisionsOptimize;// Y axis division optimization check box
251  TGNumberEntry *fZTitleSize; // Z axis title size number entry
252  TGCheckButton *fZTitleSizeInPixels; // Z axis title size check box
253  TGColorSelect *fZTitleColor; // Z axis title color selection widget
254  TGNumberEntry *fZTitleOffset; // Z axis title offset number entry
255  TGFontTypeComboBox *fZTitleFont; // Z axis title font combo box
256  TGNumberEntry *fZLabelSize; // Z axis label size number entry
257  TGCheckButton *fZLabelSizeInPixels; // Z axis label size check box
258  TGColorSelect *fZLabelColor; // Z axis label color selection widget
259  TGNumberEntry *fZLabelOffset; // Z axis label offset number entry
260  TGFontTypeComboBox *fZLabelFont; // Z axis label font combo box
261  TGColorSelect *fZAxisColor; // Z axis color selection widget
262  TGNumberEntry *fZTickLength; // Z axis tick length number entry
263  TGCheckButton *fOptLogz; // Z axis logarithmic scale check box
264  TGNumberEntry *fZNdivMain; // Z axis primary division number entry
265  TGNumberEntry *fZNdivSub; // Z axis secondary division number entry
266  TGNumberEntry *fZNdivSubSub; // Z axis tertiary division number entry
267  TGCheckButton *fZNdivisionsOptimize;// Z axis division optimization check box
268  TGCheckButton *fOptTitle; // title show/hide check box
269  TGColorSelect *fTitleColor; // title fill color selection widget
270  TGedPatternSelect *fTitleStyle; // title fill pattern selection widget
271  TGColorSelect *fTitleTextColor; // title text color selection widget
272  TGNumberEntry *fTitleFontSize; // title font size number entry
273  TGCheckButton *fTitleFontSizeInPixels; // title font size check box
274  TGFontTypeComboBox *fTitleFont; // title font combo box
275  TGComboBox *fTitleAlign; // title align combo box
276  TGLabel *fTitleBorderSizeLabel; // label 'Title's'
277  TGLineWidthComboBox *fTitleBorderSize; // title border size combo box
278  TGNumberEntry *fTitleX; // title abscissa number entry
279  TGNumberEntry *fTitleY; // title ordinate number entry
280  TGNumberEntry *fTitleW; // title width number entry
281  TGNumberEntry *fTitleH; // title height number entry
282  TGLabel *fLegendBorderSizeLabel; // label 'Legend's'
283  TGLineWidthComboBox *fLegendBorderSize; // legend border size combo box
284  TGColorSelect *fStatColor; // stats fill color selection widget
285  TGedPatternSelect *fStatStyle; // stats fill pattern selection widget
286  TGColorSelect *fStatTextColor; // stats text color selection widget
287  TGNumberEntry *fStatFontSize; // stats font size number entry
288  TGCheckButton *fStatFontSizeInPixels; // stats font size check box
289  TGFontTypeComboBox *fStatFont; // stats font type combo box
290  TGNumberEntry *fStatX; // stats abscissa number entry
291  TGNumberEntry *fStatY; // stats ordinate number entry
292  TGNumberEntry *fStatW; // stats width number entry
293  TGNumberEntry *fStatH; // stats height number entry
294  TGLabel *fStatBorderSizeLabel; // label 'stats' shadow
295  TGLineWidthComboBox *fStatBorderSize; // stats border size combo box
296  TGCheckButton *fOptStatName; // stats name show/hide check box
297  TGCheckButton *fOptStatEntries; // stats entries show/hide check box
298  TGCheckButton *fOptStatOverflow; // stats overflow show/hide check box
299  TGCheckButton *fOptStatMean; // stats mean show/hide check box
300  TGCheckButton *fOptStatUnderflow; // stats underflow show/hide check box
301  TGCheckButton *fOptStatRMS; // stats RMS show/hide check box
302  TGCheckButton *fOptStatSkewness; // stats Skewness show/hide check box
303  TGCheckButton *fOptStatIntegral; // stats integral show/hide check box
304  TGCheckButton *fOptStatKurtosis; // stats kurtosis show/hide check box
305  TGCheckButton *fOptStatErrors; // stats errors check box
306  TGLabel *fStatFormatLabel; // label 'stats format'
307  TGTextEntry *fStatFormat; // stats format text entry
308  TGCheckButton *fOptFitValues; // fit values show/hide check box
309  TGCheckButton *fOptFitErrors; // fit errors check box
310  TGCheckButton *fOptFitProbability; // fit probability show/hide check box
311  TGCheckButton *fOptFitChi; // fit Chi show/hide check box
312  TGLabel *fFitFormatLabel; // label 'fit format'
313  TGTextEntry *fFitFormat; // fit format text entry
314  TGTextEntry *fHeaderPS; // ps/pdf header text entry
315  TGTextEntry *fTitlePS; // ps/pdf title text entry
316  TGButtonGroup *fColorModelPS; // ps/pdf color model button group
317  TGRadioButton *fColorModelPSRGB; // RGB radio button
318  TGRadioButton *fColorModelPSCMYK; // CMYB radio button
319  TGNumberEntry *fLineScalePS; // ps/pdf line scale number entry
320  TGComboBox *fPaperSizePredef; // ps/pdf paper size combo box
321  Bool_t fPaperSizeEnCm; //=kTRUE if the paper size is in cm
322  TGNumberEntry *fPaperSizeX; // ps/pdf paper size width number entry
323  TGNumberEntry *fPaperSizeY; // ps/pdf paper size height number entry
324 
325  TGLayoutHints *fLayoutExpandX; // often used layout
326  TGLayoutHints *fLayoutExpandXMargin; // often used layout
327  TGLayoutHints *fLayoutExpandXY; // often used layout
328  TGLayoutHints *fLayoutExpandXYMargin; // often used layout
329  TGLayoutHints *fLayoutExpandXCenterYMargin; // often used layout
330 
331  void AddMenus(TGCompositeFrame *p);
332  void DoNew();
333  void DoDelete();
334  void DoRename();
335  void DoExport();
336  void DoExit();
337  void DoHelp(Int_t i);
338  void DoImportCanvas();
339  void CreateMacro();
340 
341  void AddToolbar(TGCompositeFrame *p);
342 
343  void AddTopLevelInterface(TGCompositeFrame *cf);
344  void UpdateStatusBar();
345  void UpdateEditor(Int_t tabNum);
346  void ConnectAll();
347  void DisconnectAll();
348  void ConnectEditor(Int_t tabNum);
349  void DisconnectEditor(Int_t tabNum);
350  void DoEditor();
351 
352  void AddEdition(TGCompositeFrame *p);
353 
354  void CreateTabGeneral(TGCompositeFrame *tab);
355  void AddGeneralLine(TGCompositeFrame *f);
356  void AddGeneralFill(TGCompositeFrame *f);
357  void AddGeneralText(TGCompositeFrame *f);
358  void AddGeneralMarker(TGCompositeFrame *f);
359 
360  void CreateTabCanvas(TGCompositeFrame *tab);
361  void AddCanvasFill(TGCompositeFrame *f);
362  void AddCanvasGeometry(TGCompositeFrame *f);
363  void AddCanvasBorder(TGCompositeFrame *f);
364  void AddCanvasDate(TGCompositeFrame *f);
365 
366  void CreateTabPad(TGCompositeFrame *tab);
367  void AddPadMargin(TGCompositeFrame *f);
368  void AddPadBorder(TGCompositeFrame *f);
369  void AddPadFill(TGCompositeFrame *f);
370  void AddPadTicks(TGCompositeFrame *f);
371  void AddPadGrid(TGCompositeFrame *f);
372 
373  void CreateTabHistos(TGCompositeFrame *tab);
374  void CreateTabHistosHistos(TGCompositeFrame *tab);
375  void AddHistosHistosFill(TGCompositeFrame *f);
376  void AddHistosHistosLine(TGCompositeFrame *f);
377  void AddHistosHistosBar(TGCompositeFrame *f);
378  void AddHistosHistosContours(TGCompositeFrame *f);
379  void AddHistosHistosAxis(TGCompositeFrame *f);
380  void AddHistosHistosLegoInnerR(TGCompositeFrame *f);
381 
382  void CreateTabHistosFrames(TGCompositeFrame *tab);
383  void AddHistosFramesFill(TGCompositeFrame *f);
384  void AddHistosFramesLine(TGCompositeFrame *f);
385  void AddHistosFramesBorder(TGCompositeFrame *f);
386 
387  void CreateTabHistosGraphs(TGCompositeFrame *tab);
388  void AddHistosGraphsLine(TGCompositeFrame *f);
389  void AddHistosGraphsBorder(TGCompositeFrame *f);
390  void AddHistosGraphsErrors(TGCompositeFrame *f);
391 
392  void CreateTabAxis(TGCompositeFrame *tab);
393  void CreateTabAxisX(TGCompositeFrame *tab);
394  void AddAxisXTitle(TGCompositeFrame *f);
395  void AddAxisXLine(TGCompositeFrame *f);
396  void AddAxisXLabels(TGCompositeFrame *f);
397  void AddAxisXDivisions(TGCompositeFrame *f);
398 
399  void CreateTabAxisY(TGCompositeFrame *tab);
400  void AddAxisYTitle(TGCompositeFrame *f);
401  void AddAxisYLine(TGCompositeFrame *f);
402  void AddAxisYLabels(TGCompositeFrame *f);
403  void AddAxisYDivisions(TGCompositeFrame *f);
404 
405  void CreateTabAxisZ(TGCompositeFrame *tab);
406  void AddAxisZTitle(TGCompositeFrame *f);
407  void AddAxisZLine(TGCompositeFrame *f);
408  void AddAxisZLabels(TGCompositeFrame *f);
409  void AddAxisZDivisions(TGCompositeFrame *f);
410 
411  void CreateTabTitle(TGCompositeFrame *tab);
412  void AddTitleFill(TGCompositeFrame *f);
413  void AddTitleBorderSize(TGCompositeFrame *f);
414  void AddTitleText(TGCompositeFrame *f);
415  void AddTitleGeometry(TGCompositeFrame *f);
416 
417  void CreateTabStats(TGCompositeFrame *tab);
418  void AddStatsFill(TGCompositeFrame *f);
419  void AddStatsText(TGCompositeFrame *f);
420  void AddStatsGeometry(TGCompositeFrame *f);
421  void AddStatsStats(TGCompositeFrame *f);
422  void AddStatsFit(TGCompositeFrame *f);
423 
424  void CreateTabPsPdf(TGCompositeFrame *tab);
425  void AddPsPdfHeader(TGCompositeFrame *f);
426  void AddPsPdfTitle(TGCompositeFrame *f);
427  void AddPsPdfColorModel(TGCompositeFrame *f);
428  void AddPsPdfPaperSize(TGCompositeFrame *f);
429  void AddPsPdfLineScale(TGCompositeFrame *f);
430 
431  void AddTitle(TGCompositeFrame *f, const char *s);
432  TGColorSelect *AddColorEntry(TGCompositeFrame *f, Int_t id);
433  TGedPatternSelect *AddFillStyleEntry(TGCompositeFrame *f, Int_t id);
434  TGedMarkerSelect *AddMarkerStyleEntry(TGCompositeFrame *f, Int_t id);
435  TGComboBox *AddMarkerSizeEntry(TGCompositeFrame *f, Int_t id);
436  TGNumberEntry *AddNumberEntry(TGCompositeFrame *f, Int_t e1, Int_t e2,
437  Int_t e3, Int_t id, const char *s, Double_t init, Int_t digits,
438  TGNumberFormat::EStyle nfS, TGNumberFormat::EAttribute nfA,
439  TGNumberFormat::ELimit nfL, Double_t min, Double_t max);
440  TGLineWidthComboBox *AddLineWidthEntry(TGCompositeFrame *f, Int_t id);
441  TGLineStyleComboBox *AddLineStyleEntry(TGCompositeFrame *f, Int_t id);
442  TGTextButton *AddTextButton(TGCompositeFrame *f, const char *s, Int_t id);
443  TGFontTypeComboBox *AddFontTypeEntry(TGCompositeFrame *f, Int_t id);
444  TGComboBox *AddTextAlignEntry(TGCompositeFrame *f, Int_t id);
445  TGButtonGroup *AddBorderModeEntry(TGCompositeFrame *f, Int_t id1, Int_t id2, Int_t id3);
446  TGComboBox *AddDateFormatEntry(TGCompositeFrame *f, Int_t id);
447  TGCheckButton *AddCheckButton(TGCompositeFrame *f, const char *s, Int_t id, Int_t e1 = 0, Int_t e2 = 2);
448  TGTextEntry *AddTextEntry(TGCompositeFrame *f, const char *s, Int_t id);
449  TGComboBox *AddPaperSizeEntry(TGCompositeFrame *f, Int_t id);
450 
451 public:
452  TStyleManager(const TGWindow *);
453  virtual ~TStyleManager();
454 
455  static void Show();
456  static void Terminate();
457  static TStyleManager *&GetSM();
458 
459  void Init();
460  void Hide();
461 
462  void SetCurSelStyle(TStyle *style) { fCurSelStyle = style; }
463  void SetLastChoice(Bool_t choice) { fLastChoice = choice; }
464 
465  void DoMenu(Int_t menuID); // SLOT
466  void DoImportMacro(Bool_t create); // SLOT
467  void DoListSelect(); // SLOT
468  void DoRealTime(Bool_t b); // SLOT
469  void DoPreview(Bool_t b); // SLOT
470  void DoPreviewClosed(); // SLOT
471  void DoMakeDefault(); // SLOT
472  void DoApplyOnSelect(Int_t i); // SLOT
473  void DoApplyOn(); // SLOT
474  void DoMoreLess(); // SLOT
475  void DoEditionUpdatePreview(); // SLOT
476  void DoChangeTab(Int_t i); // SLOT
477  void DoChangeAxisTab(Int_t i); // SLOT
478  void BuildList(TStyle *style = 0);
479  void DoSelectNoCanvas(); // SLOT
480  void DoSelectCanvas(TVirtualPad *pad,
481  TObject *obj, Int_t mouseButton); // SLOT
482  void CloseWindow(); // SLOT
483 
484 // GENERAL
485  void ModFillColor(); // SLOT
486  void ModFillStyle(); // SLOT
487  void ModHatchesLineWidth(); // SLOT
488  void ModHatchesSpacing(); // SLOT
489  void ModMarkerColor(); // SLOT
490  void ModMarkerStyle(); // SLOT
491  void ModMarkerSize(); // SLOT
492  void ModScreenFactor(); // SLOT
493  void ModLineColor(); // SLOT
494  void ModLineWidth(); // SLOT
495  void ModLineStyle(); // SLOT
496  void ModLineStyleEdit(); // SLOT
497  void ModTextColor(); // SLOT
498  void ModTextSize(); // SLOT
499  void ModTextSizeInPixels(Bool_t b); // SLOT
500  void ModTextFont(); // SLOT
501  void ModTextAlign(); // SLOT
502  void ModTextAngle(); // SLOT
503 
504 // CANVAS
505  void ModCanvasColor(); // SLOT
506  void ModCanvasDefX(); // SLOT
507  void ModCanvasDefY(); // SLOT
508  void ModCanvasDefW(); // SLOT
509  void ModCanvasDefH(); // SLOT
510  void ModCanvasBorderMode(); // SLOT
511  void ModCanvasBorderSize(); // SLOT
512  void ModOptDateBool(); // SLOT
513  void ModAttDateTextColor(); // SLOT
514  void ModAttDateTextSize(); // SLOT
515  void ModAttDateTextSizeInPixels(Bool_t b);// SLOT
516  void ModOptDateFormat(); // SLOT
517  void ModAttDateTextFont(); // SLOT
518  void ModAttDateTextAngle(); // SLOT
519  void ModAttDateTextAlign(); // SLOT
520  void ModDateX(); // SLOT
521  void ModDateY(); // SLOT
522 
523 // PAD
524  void ModPadTopMargin(); // SLOT
525  void ModPadBottomMargin(); // SLOT
526  void ModPadLeftMargin(); // SLOT
527  void ModPadRightMargin(); // SLOT
528  void ModPadBorderMode(); // SLOT
529  void ModPadBorderSize(); // SLOT
530  void ModPadColor(); // SLOT
531  void ModPadTickX(); // SLOT
532  void ModPadTickY(); // SLOT
533  void ModPadGridX(); // SLOT
534  void ModPadGridY(); // SLOT
535  void ModGridColor(); // SLOT
536  void ModGridWidth(); // SLOT
537  void ModGridStyle(); // SLOT
538 
539  // HISTOS HISTOS
540  void ModHistFillColor(); // SLOT
541  void ModHistFillStyle(); // SLOT
542  void ModHistLineColor(); // SLOT
543  void ModHistLineWidth(); // SLOT
544  void ModHistLineStyle(); // SLOT
545  void ModBarWidth(); // SLOT
546  void ModBarOffset(); // SLOT
547  void ModHistMinimumZero(); // SLOT
548  void ModPaintTextFormat(); // SLOT
549  void ModNumberContours(); // SLOT
550  void ModLegoInnerR(); // SLOT
551 
552 // HISTOS FRAMES
553  void ModFrameFillColor(); // SLOT
554  void ModFrameFillStyle(); // SLOT
555  void ModFrameLineColor(); // SLOT
556  void ModFrameLineWidth(); // SLOT
557  void ModFrameLineStyle(); // SLOT
558  void ModPaletteEdit(); // SLOT
559  void ModFrameBorderMode(); // SLOT
560  void ModFrameBorderSize(); // SLOT
561 
562 // HISTOS GRAPHS
563  void ModFuncColor(); // SLOT
564  void ModFuncWidth(); // SLOT
565  void ModFuncStyle(); // SLOT
566  void ModDrawBorder(); // SLOT
567  void ModEndErrorSize(); // SLOT
568  void ModErrorX(); // SLOT
569 
570 // AXIS
571  void ModTimeOffset(); // SLOT
572  void ModStripDecimals(); // SLOT
573  void ModApplyOnXYZ(); // SLOT
574 
575 // AXIS X AXIS
576  void ModXTitleSize(); // SLOT
577  void ModXTitleSizeInPixels(Bool_t b); // SLOT
578  void ModXTitleColor(); // SLOT
579  void ModXTitleOffset(); // SLOT
580  void ModXTitleFont(); // SLOT
581  void ModXLabelSize(); // SLOT
582  void ModXLabelSizeInPixels(Bool_t b); // SLOT
583  void ModXLabelColor(); // SLOT
584  void ModXLabelOffset(); // SLOT
585  void ModXLabelFont(); // SLOT
586  void ModXAxisColor(); // SLOT
587  void ModXTickLength(); // SLOT
588  void ModOptLogx(); // SLOT
589  void ModXNdivisions(); // SLOT
590 
591 // AXIS Y AXIS
592  void ModYTitleSize(); // SLOT
593  void ModYTitleSizeInPixels(Bool_t b); // SLOT
594  void ModYTitleColor(); // SLOT
595  void ModYTitleOffset(); // SLOT
596  void ModYTitleFont(); // SLOT
597  void ModYLabelSize(); // SLOT
598  void ModYLabelSizeInPixels(Bool_t b); // SLOT
599  void ModYLabelColor(); // SLOT
600  void ModYLabelOffset(); // SLOT
601  void ModYLabelFont(); // SLOT
602  void ModYAxisColor(); // SLOT
603  void ModYTickLength(); // SLOT
604  void ModOptLogy(); // SLOT
605  void ModYNdivisions(); // SLOT
606 
607 // AXIS Z AXIS
608  void ModZTitleSize(); // SLOT
609  void ModZTitleSizeInPixels(Bool_t b); // SLOT
610  void ModZTitleColor(); // SLOT
611  void ModZTitleOffset(); // SLOT
612  void ModZTitleFont(); // SLOT
613  void ModZLabelSize(); // SLOT
614  void ModZLabelSizeInPixels(Bool_t b); // SLOT
615  void ModZLabelColor(); // SLOT
616  void ModZLabelOffset(); // SLOT
617  void ModZLabelFont(); // SLOT
618  void ModZAxisColor(); // SLOT
619  void ModZTickLength(); // SLOT
620  void ModOptLogz(); // SLOT
621  void ModZNdivisions(); // SLOT
622 
623 // TITLES
624  void ModOptTitle(); // SLOT
625  void ModTitleFillColor(); // SLOT
626  void ModTitleStyle(); // SLOT
627  void ModTitleTextColor(); // SLOT
628  void ModTitleFontSize(); // SLOT
629  void ModTitleFontSizeInPixels(Bool_t b); // SLOT
630  void ModTitleFont(); // SLOT
631  void ModTitleAlign(); // SLOT
632  void ModTitleBorderSize(); // SLOT
633  void ModTitleX(); // SLOT
634  void ModTitleY(); // SLOT
635  void ModTitleW(); // SLOT
636  void ModTitleH(); // SLOT
637  void ModLegendBorderSize(); // SLOT
638 
639 // STATS
640  void ModStatColor(Pixel_t color); // SLOT
641  void ModStatStyle(Style_t pattern); // SLOT
642  void ModStatTextColor(Pixel_t color); // SLOT
643  void ModStatFontSize(); // SLOT
644  void ModStatFontSizeInPixels(Bool_t b); // SLOT
645  void ModStatFont(); // SLOT
646  void ModStatX(); // SLOT
647  void ModStatY(); // SLOT
648  void ModStatW(); // SLOT
649  void ModStatH(); // SLOT
650  void ModStatBorderSize(); // SLOT
651  void ModOptStat(); // SLOT
652  void ModStatFormat(const char *sformat); // SLOT
653  void ModOptFit(); // SLOT
654  void ModFitFormat(const char *fitformat); // SLOT
655 
656 // PS / PDF
657  void ModHeaderPS(); // SLOT
658  void ModTitlePS(); // SLOT
659  void ModColorModelPS(); // SLOT
660  void ModLineScalePS(); // SLOT
661  void ModPaperSizePredef(); // SLOT
662  void ModPaperSizeXY(); // SLOT
663 
664  ClassDef(TStyleManager, 0) // Graphical User Interface for managing styles
665 };
666 
667 #endif