ROOT  6.06/09
Reference Guide
TStyleManager.cxx
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 //////////////////////////////////////////////////////////////////////////
13 // //
14 // TStyleManager //
15 // //
16 // This class provides a Graphical User Interface to manage styles //
17 // in ROOT. It allows the user to edit styles, import / export //
18 // them to macros, apply a style on the selected object or on //
19 // all canvases, change gStyle. //
20 // //
21 // Activate the style manager by selecting Edit menu / Style... //
22 // in the canvas window. //
23 // //
24 // The Style Manager interface is composed of two parts: //
25 // - the top level interface that manages a list of styles; //
26 // - the style editor, which deals with the current style settings. //
27 // //
28 //Begin_Html
29 /*
30 <img src="gif/StyleManager.gif">
31 */
32 //End_Html
33 // //
34 // The combo box 'Available Styles' contains the list of available //
35 // styles for the current ROOT session and shows the currently //
36 // selected one. The field on the right shows the setting of the gStyle.//
37 // You can set the global variable gStyle to the selected style by //
38 // clicking on the button in the middle. //
39 // The group frame 'Apply on' displays information for the currently //
40 // selected canvas and object in the ROOT session. This selection might //
41 // be changed by clicking on another object with the middle mouse //
42 // button. You have a choice to apply a style on the selected object or //
43 // on all available canvases. //
44 // WARNING: You cannot undo the changes after applying the style! If //
45 // you are not sure of that action, it may be better to see a preview //
46 // of what you are going to apply. //
47 // If the check button 'Preview' is selected, a preview of the selected //
48 // canvas according to the selected style will be shown. The selection //
49 // of the next check button 'Run Time Preview' will apply updates of //
50 // the preview any time a value of the selected style is changed. For //
51 // drawings that take a time it is better to disable this option. //
52 // //
53 // Create a new style: //
54 // A new style can be created via the Style menu/New... or the toolbar. //
55 // A clone of the selected style will be used as a base of the new //
56 // style. All its values can be modified via the style editor later. //
57 // The dialog that appears will ask for the name and description of the //
58 // new style. //
59 // //
60 // Import a style (from a macro): //
61 // A style macro can be imported at any time. The new imported style in //
62 // the ROOT session will become the selected one. //
63 // //
64 // Import a style (from a canvas): //
65 // You can do that selecting the Style menu/Import from.../Canvas or //
66 // the corresponding Tool bar button. A new style will be created in the//
67 // ROOT session and will become the selected one. This style is a clone //
68 // of the gStyle with modified values as they are set in the currently //
69 // selected canvas. You can import a style from any canvas and apply it //
70 // later on some objects. //
71 // //
72 // Export a style (in a C++ macro file): //
73 // To store a style longer than for the current ROOT session you can //
74 // save it in a C++ macro file. This can be done via the menu or the //
75 // tool bar button. There is a naming convention for the style macros: //
76 // the name must be 'Style_*.C', where * can be replaced by anything //
77 // you want. //
78 // //
79 // Delete a style: //
80 // The selected style can be deleted from the list when you use the //
81 // Style menu/Delete or the corresponding tool bar button. The selected //
82 // style is removed from the list of all available styles for the //
83 // current ROOT session. WARRNING: it will be lost if you didn't saved //
84 // it in a C++ macro file before its deletion. Also, you cannot delete //
85 // the selected style if it is set to gStyle. A message 'Can not delete //
86 // gStyle' will be displayed on the CINT prompt. //
87 // //
88 //Begin_Html
89 /*
90 <img src="gif/StyleEditor.gif">
91 */
92 //End_Html
93 // //
94 // Editor's buttons: //
95 // Open / close the style editor: //
96 // The button 'Edit >>' opens the style editor and its label changes to //
97 // 'Close <<'. For all details of what can be changed and how please see//
98 // the provided Help. //
99 // //
100 // Reset a style (to a previously saved state): //
101 // When the editor is opened, the 'Reset' button allows you to reset //
102 // the values of the selected style for editing. Doing that you cancel //
103 // all changes made since the last time you saved that style in a macro.//
104 // If the selected style is one of the five ROOT styles (Plain, Bold, //
105 // Video, Pub or Default), it will be recreated. //
106 // //
107 // Update the preview: //
108 // The button 'Update Preview' is available when a preview is shown and //
109 // the run time option is not selected. This button allows you to //
110 // refresh the preview any time you want to see how the style you edit //
111 // looks like. //
112 // //
113 // Help button: //
114 // Provides a help of the currently selected tab. //
115 // //
116 //////////////////////////////////////////////////////////////////////////
117 
118 #include "TStyleManager.h"
119 #include "TStyleDialog.h"
120 #include "TStylePreview.h"
121 #include "HelpSMText.h"
122 
123 #include <TCanvas.h>
124 #include <TColor.h>
125 #include <TG3DLine.h>
126 #include <TGButton.h>
127 #include <TGButtonGroup.h>
128 #include <TGColorSelect.h>
129 #include <TGComboBox.h>
130 #include <TGedMarkerSelect.h>
131 #include <TGedPatternSelect.h>
132 #include <TGFileDialog.h>
133 #include <TGFrame.h>
134 #include <TGLabel.h>
135 #include <TGLayout.h>
136 #include <TGMenu.h>
137 #include <TGMsgBox.h>
138 #include <TGNumberEntry.h>
139 #include <TGResourcePool.h>
140 #include <TGStatusBar.h>
141 #include <TGTab.h>
142 #include <TGToolBar.h>
143 #include <TROOT.h>
144 #include <TRootHelpDialog.h>
145 #include <TStyle.h>
146 #include <TSystem.h>
147 #include <TVirtualPad.h>
148 
149 TStyleManager *TStyleManager::fgStyleManager = 0;
150 
152 
153 enum EStyleManagerWid {
154  kMenuNew,
155  kMenuDelete,
156  kMenuRename,
157  kMenuImportCanvas,
158  kMenuImportMacro,
159  kMenuExport,
160  kMenuExit,
161  kMenuHelp,
162  kMenuHelpEditor,
163  kMenuHelpGeneral,
164  kMenuHelpCanvas,
165  kMenuHelpPad,
166  kMenuHelpHistos,
167  kMenuHelpAxis,
168  kMenuHelpTitle,
169  kMenuHelpStats,
170  kMenuHelpPSPDF,
171 
172  kToolbarNew,
173  kToolbarDelete,
174  kToolbarImportCanvas,
175  kToolbarImportMacro,
176  kToolbarExport,
177  kToolbarHelp,
178 
179  kTopStylesList,
180  kTopPreview,
181  kTopPreviewRealTime,
182  kTopMakeDefault,
183  kTopCurStyle,
184  kTopCurPad,
185  kTopCurObj,
186  kTopApplyOnAll,
187  kTopApplyOnSel,
188  kTopApplyOnBut,
189  kTopMoreLess,
190 
191  kEditButHelp,
192  kEditButUpPrev,
193  kEditButReset,
194 
195  kGeneralFillColor,
196  kGeneralFillStyle,
197  kGeneralHatchesLineWidth,
198  kGeneralHatchesSpacing,
199  kGeneralTextColor,
200  kGeneralTextSize,
201  kGeneralTextSizeInPixels,
202  kGeneralTextFont,
203  kGeneralTextAlign,
204  kGeneralTextAngle,
205  kGeneralLineColor,
206  kGeneralLineWidth,
207  kGeneralLineStyle,
208  kGeneralLineStyleEdit,
209  kGeneralMarkerColor,
210  kGeneralMarkerStyle,
211  kGeneralMarkerSize,
212  kGeneralScreenFactor,
213 
214  kCanvasColor,
215  kCanvasDefX,
216  kCanvasDefY,
217  kCanvasDefW,
218  kCanvasDefH,
219  kCanvasBorderModeSunken,
220  kCanvasBorderModeNone,
221  kCanvasBorderModeRaised,
222  kCanvasBorderSize,
223  kCanvasOptDateBool,
224  kCanvasAttDateTextColor,
225  kCanvasAttDateTextSize,
226  kCanvasAttDateTextSizeInPixels,
227  kCanvasOptDateFormat,
228  kCanvasAttDateTextFont,
229  kCanvasAttDateTextAngle,
230  kCanvasAttDateTextAlign,
231  kCanvasDateX,
232  kCanvasDateY,
233 
234  kPadLeftMargin,
235  kPadRightMargin,
236  kPadTopMargin,
237  kPadBottomMargin,
238  kPadBorderModeSunken,
239  kPadBorderModeNone,
240  kPadBorderModeRaised,
241  kPadBorderSize,
242  kPadColor,
243  kPadTickX,
244  kPadTickY,
245  kPadGridX,
246  kPadGridY,
247  kPadGridColor,
248  kPadGridWidth,
249  kPadGridStyle,
250 
251  kHistFillColor,
252  kHistFillStyle,
253  kHistLineColor,
254  kHistLineWidth,
255  kHistLineStyle,
256  kHistBarWidth,
257  kHistBarOffset,
258  kHistMinimumZero,
259  kHistPaintTextFormat,
260  kHistNumberContours,
261  kHistLegoInnerR,
262 
263  kFrameFillColor,
264  kFrameFillStyle,
265  kFrameLineColor,
266  kFrameLineWidth,
267  kFrameLineStyle,
268  kFramePaletteEdit,
269  kFrameBorderModeSunken,
270  kFrameBorderModeNone,
271  kFrameBorderModeRaised,
272  kFrameBorderSize,
273 
274  kGraphsFuncColor,
275  kGraphsFuncWidth,
276  kGraphsFuncStyle,
277  kGraphsDrawBorder,
278  kGraphsEndErrorSize,
279  kGraphsErrorX,
280 
281  kAxisTimeOffsetDate,
282  kAxisTimeOffsetTime,
283  kAxisStripDecimals,
284  kAxisApplyOnXYZ,
285 
286  kAxisXTitleSize,
287  kAxisXTitleSizeInPixels,
288  kAxisXTitleColor,
289  kAxisXTitleOffset,
290  kAxisXTitleFont,
291  kAxisXLabelSize,
292  kAxisXLabelSizeInPixels,
293  kAxisXLabelColor,
294  kAxisXLabelOffset,
295  kAxisXLabelFont,
296  kAxisXAxisColor,
297  kAxisXTickLength,
298  kAxisOptLogx,
299  kAxisXNdivMain,
300  kAxisXNdivSub,
301  kAxisXNdivSubSub,
302  kAxisXNdivisionsOptimize,
303 
304  kAxisYTitleSize,
305  kAxisYTitleSizeInPixels,
306  kAxisYTitleColor,
307  kAxisYTitleOffset,
308  kAxisYTitleFont,
309  kAxisYLabelSize,
310  kAxisYLabelSizeInPixels,
311  kAxisYLabelColor,
312  kAxisYLabelOffset,
313  kAxisYLabelFont,
314  kAxisYAxisColor,
315  kAxisYTickLength,
316  kAxisOptLogy,
317  kAxisYNdivMain,
318  kAxisYNdivSub,
319  kAxisYNdivSubSub,
320  kAxisYNdivisionsOptimize,
321 
322  kAxisZTitleSize,
323  kAxisZTitleSizeInPixels,
324  kAxisZTitleColor,
325  kAxisZTitleOffset,
326  kAxisZTitleFont,
327  kAxisZLabelSize,
328  kAxisZLabelSizeInPixels,
329  kAxisZLabelColor,
330  kAxisZLabelOffset,
331  kAxisZLabelFont,
332  kAxisZAxisColor,
333  kAxisZTickLength,
334  kAxisOptLogz,
335  kAxisZNdivMain,
336  kAxisZNdivSub,
337  kAxisZNdivSubSub,
338  kAxisZNdivisionsOptimize,
339 
340  kTitleOptTitle,
341  kTitleFillColor,
342  kTitleStyle,
343  kTitleTextColor,
344  kTitleFontSize,
345  kTitleFontSizeInPixels,
346  kTitleFont,
347  kTitleAlign,
348  kTitleBorderSize,
349  kTitleX,
350  kTitleY,
351  kTitleW,
352  kTitleH,
353  kTitleLegendBorderSize,
354 
355  kStatColor,
356  kStatStyle,
357  kStatTextColor,
358  kStatFontSize,
359  kStatFontSizeInPixels,
360  kStatFont,
361  kStatX,
362  kStatY,
363  kStatW,
364  kStatH,
365  kStatBorderSize,
366  kStatOptStatName,
367  kStatOptStatEntries,
368  kStatOptStatOverflow,
369  kStatOptStatMean,
370  kStatOptStatUnderflow,
371  kStatOptStatRMS,
372  kStatOptStatSkewness,
373  kStatOptStatIntegral,
374  kStatOptStatKurtosis,
375  kStatOptStatErrors,
376  kStatFormat,
377  kStatOptFitValues,
378  kStatOptFitErrors,
379  kStatOptFitProbability,
380  kStatOptFitChi,
381  kStatFitFormat,
382 
383  kPSPDFHeaderPS,
384  kPSPDFTitlePS,
385  kPSPDFColorModelPS,
386  kPSPDFColorModelPSRGB,
387  kPSPDFColorModelPSCMYK,
388  kPSPDFLineScalePS,
389  kPSPDFPaperSizePredef,
390  kPSPDFPaperSizeX,
391  kPSPDFPaperSizeY
392 };
393 
394 const char *kFiletypes[] = { "ROOT macros", "Style_*.C",
395  0, 0 };
396 
397 ////////////////////////////////////////////////////////////////////////////////
398 /// Constructor. Create the main window of the style manager.
399 
401 {
402  SetWindowName("Style Manager");
404 
405  // Initialization: no selected style, no preview, no signal/slots,
406  // no selected object, no current macro file.
407  fCurSelStyle = 0;
408  fCurMacro = 0;
409  fCurPad = 0;
410  fCurObj = 0;
411  fPreviewWindow = 0;
413  fCurTabNum = 0;
414  fCurTabAxisNum = 0;
418 
419  // Create the trash lists to have an effective deletion of every object.
420  fTrashListLayout = new TList();
421  fTrashListFrame = new TList();
422 
423  // To avoid to create a lot a copies of the often used layouts.
434 
435  // Build the graphical interface.
436  AddMenus(this);
437  AddToolbar(this);
438  AddTopLevelInterface(this);
439  AddEdition(this);
440 
441  // Add status bar.
442  fStatusBar = new TGStatusBar(this, 50, 10, kVerticalFrame);
443  Int_t parts[] = { 20, 30, 50 };
444  fStatusBar->SetParts(parts, 3);
447 
448  // Initialize the layout algorithm and map the main frame.
449  MapSubwindows();
451  MapWindow();
452 
453  // Ensure the editor will be visible (not out of the screen's range) when
454  // the user will press the 'More' button, if they didn't move the window.
455  Int_t x, y;
456  UInt_t w, h;
457  gVirtualX->GetWindowSize(GetId(), x, y, w, h);
458  fSMWidth = w;
459  fSMHeight = h;
460  if (fSMWidth < 467) fSMWidth = 467;
461  if (fSMHeight < 708) fSMHeight = 708;
462  Window_t win;
463  gVirtualX->TranslateCoordinates(GetId(), GetParent()->GetId(), 0, 0, x, y, win);
464  x -= 6;
465  y -= 21;
466  MoveResize(x, TMath::Max(TMath::Min(y, (Int_t) (gClient->GetDisplayHeight() - h)), 0), w, h);
467 
468  // Only the top level interface is shown, at the begining.
469  DoMoreLess();
470 
471  // Connect all widgets (excluding editor).
472  ConnectAll();
473 
474  Init();
475 }
476 
477 ////////////////////////////////////////////////////////////////////////////////
478 /// Destructor.
479 
481 {
482  // Disconnect all widgets
483  DisconnectAll();
485 
486  if (fPreviewWindow) {
487  DoPreviewClosed();
488  delete fPreviewWindow;
489  }
490 
491  // Delete every graphical data member,
492  // excluding fPreviewWindow and fLayout[..].
493  gClient->FreePicture(fToolBarNewPic);
494  gClient->FreePicture(fToolBarDeletePic);
495  gClient->FreePicture(fToolBarImportCanvasPic);
496  gClient->FreePicture(fToolBarImportMacroPic);
497  gClient->FreePicture(fToolBarExportPic);
498  gClient->FreePicture(fToolBarHelpPic);
499  gClient->FreePicture(fMakeDefaultPic);
500 
501  delete fImportCascade;
502  delete fMenuStyle;
503  delete fMenuHelp;
504  delete fMenuBar;
505 
506  delete fToolBar;
507  delete fToolBarNew;
508  delete fToolBarDelete;
509  delete fToolBarImportCanvas;
510  delete fToolBarImportMacro;
511  delete fToolBarExport;
512  delete fToolBarHelp;
513  delete fHorizontal3DLine;
514 
515  delete fListLabel;
516  delete fListComboBox;
517  delete fCurMacro;
518  delete fCurStylabel;
519  delete fCurStyle;
520  delete fCurPadLabel;
521  delete fCurPadTextEntry;
522  delete fCurObjLabel;
523  delete fCurObjTextEntry;
524  delete fPreviewButton;
525  delete fPreviewRealTime;
526  delete fMakeDefault;
527 
528  delete fApplyOnGroup;
529  delete fApplyOnAll;
530  delete fApplyOnSel;
531  delete fApplyOnButton;
532  delete fMoreLess;
533 
534  delete fFillColor;
535  delete fFillStyle;
536  delete fHatchesLineWidth;
537  delete fHatchesSpacing;
538  delete fTextColor;
539  delete fTextSize;
540  delete fTextSizeInPixels;
541  delete fTextFont;
542  delete fTextAlign;
543  delete fTextAngle;
544  delete fLineColor;
545  delete fLineWidth;
546  delete fLineStyle;
547  delete fLineStyleEdit;
548  delete fMarkerColor;
549  delete fMarkerStyle;
550  delete fMarkerSize;
551  delete fScreenFactor;
552  delete fCanvasColor;
553  delete fCanvasDefX;
554  delete fCanvasDefY;
555  delete fCanvasDefW;
556  delete fCanvasDefH;
557  delete fCanvasBorderMode;
558  delete fCanvasBorderSize;
559  delete fOptDateBool;
560  delete fAttDateTextColor;
561  delete fAttDateTextSize;
563  delete fOptDateFormat;
564  delete fAttDateTextFont;
565  delete fAttDateTextAngle;
566  delete fAttDateTextAlign;
567  delete fDateX;
568  delete fDateY;
569  delete fPadLeftMargin;
570  delete fPadRightMargin;
571  delete fPadTopMargin;
572  delete fPadBottomMargin;
573  delete fPadBorderMode;
574  delete fPadBorderSize;
575  delete fPadColor;
576  delete fPadTickX;
577  delete fPadTickY;
578  delete fPadGridX;
579  delete fPadGridY;
580  delete fGridColor;
581  delete fGridWidth;
582  delete fGridStyle;
583  delete fHistFillColor;
584  delete fHistFillStyle;
585  delete fHistLineColor;
586  delete fHistLineWidth;
587  delete fHistLineStyle;
588  delete fBarWidth;
589  delete fBarOffset;
590  delete fHistMinimumZero;
591  delete fPaintTextFormat;
592  delete fNumberContours;
593  delete fLegoInnerR;
594  delete fFrameFillColor;
595  delete fFrameFillStyle;
596  delete fFrameLineColor;
597  delete fFrameLineWidth;
598  delete fFrameLineStyle;
599  delete fPaletteEdit;
600  delete fFrameBorderMode;
601  delete fFrameBorderSize;
602  delete fFuncColor;
603  delete fFuncWidth;
604  delete fFuncStyle;
605  delete fDrawBorder;
606  delete fEndErrorSize;
607  delete fErrorX;
608  delete fTimeOffsetDate;
609  delete fTimeOffsetTime;
610  delete fStripDecimals;
611  delete fApplyOnXYZ;
612  delete fXTitleSize;
613  delete fXTitleSizeInPixels;
614  delete fXTitleColor;
615  delete fXTitleOffset;
616  delete fXTitleFont;
617  delete fXLabelSize;
618  delete fXLabelSizeInPixels;
619  delete fXLabelColor;
620  delete fXLabelOffset;
621  delete fXLabelFont;
622  delete fXAxisColor;
623  delete fXTickLength;
624  delete fOptLogx;
625  delete fXNdivMain;
626  delete fXNdivSub;
627  delete fXNdivSubSub;
628  delete fXNdivisionsOptimize;
629  delete fYTitleSize;
630  delete fYTitleSizeInPixels;
631  delete fYTitleColor;
632  delete fYTitleOffset;
633  delete fYTitleFont;
634  delete fYLabelSize;
635  delete fYLabelSizeInPixels;
636  delete fYLabelColor;
637  delete fYLabelOffset;
638  delete fYLabelFont;
639  delete fYAxisColor;
640  delete fYTickLength;
641  delete fOptLogy;
642  delete fYNdivMain;
643  delete fYNdivSub;
644  delete fYNdivSubSub;
645  delete fYNdivisionsOptimize;
646  delete fZTitleSize;
647  delete fZTitleSizeInPixels;
648  delete fZTitleColor;
649  delete fZTitleOffset;
650  delete fZTitleFont;
651  delete fZLabelSize;
652  delete fZLabelSizeInPixels;
653  delete fZLabelColor;
654  delete fZLabelOffset;
655  delete fZLabelFont;
656  delete fZAxisColor;
657  delete fZTickLength;
658  delete fOptLogz;
659  delete fZNdivMain;
660  delete fZNdivSub;
661  delete fZNdivSubSub;
662  delete fZNdivisionsOptimize;
663  delete fOptTitle;
664  delete fTitleColor;
665  delete fTitleStyle;
666  delete fTitleTextColor;
667  delete fTitleFontSize;
668  delete fTitleFontSizeInPixels;
669  delete fTitleFont;
670  delete fTitleAlign;
671  delete fTitleBorderSizeLabel;
672  delete fTitleBorderSize;
673  delete fTitleX;
674  delete fTitleY;
675  delete fTitleW;
676  delete fTitleH;
677  delete fLegendBorderSizeLabel;
678  delete fLegendBorderSize;
679  delete fStatColor;
680  delete fStatStyle;
681  delete fStatTextColor;
682  delete fStatFontSize;
683  delete fStatFontSizeInPixels;
684  delete fStatFont;
685  delete fStatX;
686  delete fStatY;
687  delete fStatW;
688  delete fStatH;
689  delete fStatBorderSizeLabel;
690  delete fStatBorderSize;
691  delete fOptStatName;
692  delete fOptStatEntries;
693  delete fOptStatOverflow;
694  delete fOptStatMean;
695  delete fOptStatUnderflow;
696  delete fOptStatRMS;
697  delete fOptStatSkewness;
698  delete fOptStatIntegral;
699  delete fOptStatKurtosis;
700  delete fOptStatErrors;
701  delete fStatFormatLabel;
702  delete fStatFormat;
703  delete fOptFitValues;
704  delete fOptFitErrors;
705  delete fOptFitProbability;
706  delete fOptFitChi;
707  delete fFitFormatLabel;
708  delete fFitFormat;
709  delete fHeaderPS;
710  delete fTitlePS;
711  delete fColorModelPS;
712  delete fColorModelPSRGB;
713  delete fColorModelPSCMYK;
714  delete fLineScalePS;
715  delete fPaperSizePredef;
716  delete fPaperSizeX;
717  delete fPaperSizeY;
718  delete fEditionHelp;
719  delete fEditionUpdatePreview;
720  delete fEditionReset;
721  delete fEditionButtonFrame;
722  delete fHistosTab;
723  delete fAxisTab;
724  delete fEditionTab;
725  delete fEditionFrame;
726 
727  delete fStatusBar;
728 
729  // Delete the temporary frames and layout.
730  TObject *obj1;
731  TObject *obj2;
732 
733  obj1 = fTrashListFrame->First();
734  while (obj1) {
735  obj2 = fTrashListFrame->After(obj1);
736  fTrashListFrame->Remove(obj1);
737  delete obj1;
738  obj1 = obj2;
739  }
740  delete fTrashListFrame;
741 
742  obj1 = fTrashListLayout->First();
743  while (obj1) {
744  obj2 = fTrashListLayout->After(obj1);
745  fTrashListLayout->Remove(obj1);
746  delete obj1;
747  obj1 = obj2;
748  }
749  delete fTrashListLayout;
750 
751  fgStyleManager = 0;
752 }
753 
754 ////////////////////////////////////////////////////////////////////////////////
755 ///static: return style manager
756 
758 {
759  return fgStyleManager;
760 }
761 
762 ////////////////////////////////////////////////////////////////////////////////
763 /// Set up the interface. Called by the ctor or by the 'Show' method.
764 
766 {
767  // Build the list of available styles and select gStyle.
768  BuildList(gStyle);
769 
770  // Show the current object.
771  if ((gROOT->GetSelectedPad()) && (gROOT->GetSelectedPad()->GetCanvas())) {
772  DoSelectCanvas(gROOT->GetSelectedPad()->GetCanvas(),
773  gROOT->GetSelectedPad()->GetCanvas(), kButton2Down);
774  } else {
776  }
777 }
778 
779 ////////////////////////////////////////////////////////////////////////////////
780 /// Called to hide the style manager.
781 
783 {
784  if (fgStyleManager) {
786  }
787 }
788 
789 ////////////////////////////////////////////////////////////////////////////////
790 /// Called to show the style manager. Static method.
791 
793 {
794  if (fgStyleManager) {
795  fgStyleManager->Init();
796  if (!fgStyleManager->IsMapped()) {
798  }
799  } else {
800  TStyleManager::GetSM() = new TStyleManager(gClient->GetRoot());
801  }
802 }
803 
804 ////////////////////////////////////////////////////////////////////////////////
805 /// Called to delete the style manager. Called when the ROOT session is
806 /// closed via a canvas' menu.
807 
809 {
810  delete fgStyleManager;
811  fgStyleManager = 0;
812 }
813 
814 ////////////////////////////////////////////////////////////////////////////////
815 /// Add the menu bar to the frame 'p'.
816 
818 {
819  fMenuBar = new TGMenuBar(p);
820 
821  fMenuStyle = new TGPopupMenu(gClient->GetRoot());
822  fMenuStyle->Associate(this);
823  fMenuStyle->AddEntry("&New...", kMenuNew);
824  fMenuStyle->AddEntry("&Delete", kMenuDelete);
826  fMenuStyle->AddEntry("&Rename...", kMenuRename);
828  fImportCascade = new TGPopupMenu(gClient->GetRoot());
829  fImportCascade->Associate(this);
830  fImportCascade->AddEntry("&Macro...", kMenuImportMacro);
831  fImportCascade->AddEntry("&Canvas...", kMenuImportCanvas);
832  fMenuStyle->AddPopup("&Import From...", fImportCascade);
833 
834  fMenuStyle->AddEntry("&Export...", kMenuExport);
836  fMenuStyle->AddEntry("&Close", kMenuExit);
837  TGLayoutHints *layout1 = new TGLayoutHints(kLHintsNormal);
838  fTrashListLayout->Add(layout1);
839  fMenuBar->AddPopup("&Style", fMenuStyle, layout1);
840 
841  fMenuHelp = new TGPopupMenu(gClient->GetRoot());
842  fMenuHelp->Associate(this);
843  fMenuHelp->AddEntry("Top &level", kMenuHelp);
845  fMenuHelp->AddEntry("&General", kMenuHelpGeneral);
846  fMenuHelp->AddEntry("&Canvas", kMenuHelpCanvas);
847  fMenuHelp->AddEntry("Pa&d", kMenuHelpPad);
848  fMenuHelp->AddEntry("&Histograms", kMenuHelpHistos);
849  fMenuHelp->AddEntry("&Axis", kMenuHelpAxis);
850  fMenuHelp->AddEntry("&Title", kMenuHelpTitle);
851  fMenuHelp->AddEntry("&Stats", kMenuHelpStats);
852  fMenuHelp->AddEntry("&PS / PDF", kMenuHelpPSPDF);
853  TGLayoutHints *layout2 = new TGLayoutHints(kLHintsRight);
854  fTrashListLayout->Add(layout2);
855  fMenuBar->AddPopup("&Help", fMenuHelp, layout2);
856 
858 }
859 
860 ////////////////////////////////////////////////////////////////////////////////
861 /// Create a new style. Called via the menu bar or the tool bar.
862 
864 {
865  // Open a message box to allow the user to create a new style.
866  new TStyleDialog(this, fCurSelStyle, 1, 0);
867 
868  // Create the list of available styles, and select:
869  // - the new style, if it has been created (Ok).
870  // - the previous selected style, if no style has been created (Cancel).
871  if (fLastChoice) BuildList();
872  else BuildList(fCurSelStyle);
873 }
874 
875 ////////////////////////////////////////////////////////////////////////////////
876 /// Delete the current selected style from the ROOT session.
877 /// Called via the menu or the tool bar.
878 
880 {
881  // Protection: the user is NOT allowed to delete gStyle.
882  // As a consequence, there is always at least one style in the ROOT session.
883  if (fCurSelStyle == gStyle) {
884  printf("Can not delete gStyle.\n");
885  return;
886  }
887 
888  delete fCurSelStyle;
889  fCurSelStyle = 0;
890 
891  BuildList(gStyle);
892 }
893 
894 ////////////////////////////////////////////////////////////////////////////////
895 /// Rename the current selected style. Called via the menu bar.
896 
898 {
899  new TStyleDialog(this, fCurSelStyle, 2, 0);
900 
901  // Create the list of styles and select the previous selected style.
903 }
904 
905 ////////////////////////////////////////////////////////////////////////////////
906 /// Save the current selected style in a C++ macro file. Called via the menu
907 /// or the tool bar.
908 
910 {
911  // Create an associated macro and propose a pertinent name to the user.
912  CreateMacro();
913  TString newName;
914  newName.Form("Style_%s.C", fCurSelStyle->GetName());
915 
916  // Protection: The user isn't allowed to export a style if the output
917  // file name isn't based on the "Style_*.C" mask, without spaces.
918  char* tmpFileName;
919  const char* tmpBaseName;
920  do {
921  fCurMacro->fFilename = StrDup(newName.Data());
922 
923  // Open a dialog to ask the user to choose an output file.
924  new TGFileDialog(gClient->GetRoot(), this, kFDSave, fCurMacro);
925  tmpFileName = fCurMacro->fFilename;
926  if (tmpFileName) tmpBaseName = gSystem->BaseName(tmpFileName);
927  else tmpBaseName = 0;
928  } while (tmpBaseName && (strstr(tmpBaseName, "Style_") != tmpBaseName)
929  && (strstr(tmpBaseName, " ") != 0));
930 
931  if (tmpBaseName != 0) {
932  // Export the style.
934  fCurMacro->fFilename = StrDup(tmpBaseName);
936  }
937 
938  UpdateStatusBar();
939 }
940 
941 ////////////////////////////////////////////////////////////////////////////////
942 /// Close the style manager. Called via the menu bar.
943 
945 {
946 // SendCloseMessage(); // Doesn't delete the StyleManager. Hides it.
947  delete this;
948 }
949 
950 ////////////////////////////////////////////////////////////////////////////////
951 /// Open an help window. Called via the menu bar or the tool bar.
952 
954 {
955  TRootHelpDialog *hd;
956  switch (i) {
957  case 0:
958  hd = new TRootHelpDialog(this, "Help on General Tab", 600, 400);
959  hd->SetText(gHelpSMGeneral);
960  break;
961  case 1:
962  hd = new TRootHelpDialog(this, "Help on Canvas Tab", 600, 400);
963  hd->SetText(gHelpSMCanvas);
964  break;
965  case 2:
966  hd = new TRootHelpDialog(this, "Help on Pad Tab", 600, 400);
967  hd->SetText(gHelpSMPad);
968  break;
969  case 3:
970  hd = new TRootHelpDialog(this, "Help on Histograms Tab", 600, 400);
971  hd->SetText(gHelpSMHistos);
972  break;
973  case 4:
974  hd = new TRootHelpDialog(this, "Help on Axis Tab", 600, 400);
975  hd->SetText(gHelpSMAxis);
976  break;
977  case 5:
978  hd = new TRootHelpDialog(this, "Help on Title Tab", 600, 400);
979  hd->SetText(gHelpSMTitle);
980  break;
981  case 6:
982  hd = new TRootHelpDialog(this, "Help on Stats Tab", 600, 400);
983  hd->SetText(gHelpSMStats);
984  break;
985  case 7:
986  hd = new TRootHelpDialog(this, "Help on PS / PDF Tab", 600, 400);
987  hd->SetText(gHelpSMPSPDF);
988  break;
989  default:
990  hd = new TRootHelpDialog(this, "Help on Top Level", 600, 400);
992  }
993  hd->Popup();
994 }
995 
996 ////////////////////////////////////////////////////////////////////////////////
997 /// Create a new style (a copy of gStyle) and import the properties of the
998 /// current canvas inside.
999 
1001 {
1002  if ((!fCurPad) || (!fCurObj)) return;
1003 
1004  new TStyleDialog(this, gStyle, 3, fCurPad);
1005 
1006  // Create the list of available style, and select:
1007  // - the new style, if it has been created
1008  // - the previous selected style, if no style has been created (Cancel)
1009  if (fLastChoice) {
1010  BuildList();
1011 
1012  // Auto export of the canvas' style.
1013  CreateMacro();
1014  TString newName;
1015  newName.Form("Style_%s.C", fCurSelStyle->GetName());
1016  fCurMacro->fFilename = StrDup(newName.Data());
1018  } else {
1020  }
1021 }
1022 
1023 ////////////////////////////////////////////////////////////////////////////////
1024 /// Create a TGFileInfo concerning a macro, if it doesn't exist already.
1025 
1027 {
1028  if (fCurMacro) delete fCurMacro;
1029  fCurMacro = new TGFileInfo();
1030  TString dir(".");
1032  fCurMacro->fIniDir = StrDup(dir);
1033  fCurMacro->fFilename = 0;
1034 }
1035 
1036 ////////////////////////////////////////////////////////////////////////////////
1037 /// Add the tool bar to the frame 'p'.
1038 
1040 {
1041  TGLayoutHints *layout1 = new TGLayoutHints(kLHintsNormal, 3);
1042  fTrashListLayout->Add(layout1);
1043  TGLayoutHints *layout2 = new TGLayoutHints(kLHintsNormal, 6);
1044  fTrashListLayout->Add(layout2);
1045 
1046  fToolBar = new TGToolBar(p);
1047  fToolBarNewPic = gClient->GetPicture("sm_new.xpm");
1048  fToolBarNew = new TGPictureButton(fToolBar, fToolBarNewPic, kToolbarNew);
1049  fToolBarNew->SetStyle(gClient->GetStyle());
1050  fToolBarNew->Associate(this);
1052 
1053  fToolBarImportCanvasPic = gClient->GetPicture("sm_import_canvas.xpm");
1055  fToolBarImportCanvas->SetStyle(gClient->GetStyle());
1058 
1059  fToolBarImportMacroPic = gClient->GetPicture("sm_import_macro.xpm");
1061  fToolBarImportMacro->SetStyle(gClient->GetStyle());
1064 
1065  fToolBarExportPic = gClient->GetPicture("sm_export.xpm");
1066  fToolBarExport = new TGPictureButton(fToolBar, fToolBarExportPic, kToolbarExport);
1067  fToolBarExport->SetStyle(gClient->GetStyle());
1068  fToolBarExport->Associate(this);
1069  fToolBar->AddFrame(fToolBarExport, layout1);
1070 
1071  fToolBarDeletePic = gClient->GetPicture("sm_delete.xpm");
1072  fToolBarDelete = new TGPictureButton(fToolBar, fToolBarDeletePic, kToolbarDelete);
1073  fToolBarDelete->SetStyle(gClient->GetStyle());
1074  fToolBarDelete->Associate(this);
1075  fToolBar->AddFrame(fToolBarDelete, layout2);
1076 
1077  fToolBarHelpPic = gClient->GetPicture("sm_help.xpm");
1078  fToolBarHelp = new TGPictureButton(fToolBar, fToolBarHelpPic, kToolbarHelp);
1079  fToolBarHelp->SetStyle(gClient->GetStyle());
1080  fToolBarHelp->Associate(this);
1081  fToolBar->AddFrame(fToolBarHelp, layout2);
1082 
1086 
1087  fToolBarNew->SetToolTipText("Create a new style");
1088  fToolBarDelete->SetToolTipText("Delete the selected style");
1089  fToolBarImportCanvas->SetToolTipText("Import a style from selected canvas");
1090  fToolBarImportMacro->SetToolTipText("Import a style from a macro");
1091  fToolBarExport->SetToolTipText("Export the selected style into a macro");
1092  fToolBarHelp->SetToolTipText("Help about the top level interface");
1093 }
1094 
1095 ////////////////////////////////////////////////////////////////////////////////
1096 /// Add the top level interface to the frame 'cf'. This part of the
1097 /// interface will provide all enable functionalities, excluding the
1098 /// edition of styles.
1099 
1101 {
1102  TGLayoutHints *layout1 = new TGLayoutHints(kLHintsExpandX, 0, 0, 2, 2);
1103  fTrashListLayout->Add(layout1);
1104  TGLayoutHints *layout2 = new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 10, 10, 10, 15);
1105  fTrashListLayout->Add(layout2);
1106  TGLayoutHints *layout3 = new TGLayoutHints(kLHintsNormal, 0, 0, 18);
1107  fTrashListLayout->Add(layout3);
1108  TGLayoutHints *layout4 = new TGLayoutHints(kLHintsNormal, 10, 10);
1109  fTrashListLayout->Add(layout4);
1110  TGLayoutHints *layout5 = new TGLayoutHints(kLHintsExpandX, 125);
1111  fTrashListLayout->Add(layout5);
1112  TGLayoutHints *layout6 = new TGLayoutHints(kLHintsNormal, 0, 10, 3);
1113  fTrashListLayout->Add(layout6);
1114  TGLayoutHints *layout7 = new TGLayoutHints(kLHintsNormal, 0, 16, 3);
1115  fTrashListLayout->Add(layout7);
1116  TGLayoutHints *layout8 = new TGLayoutHints(kLHintsExpandX, 0, 0, 10);
1117  fTrashListLayout->Add(layout8);
1118  TGLayoutHints *layout9 = new TGLayoutHints(kLHintsNormal, -15, 0, -5, -10);
1119  fTrashListLayout->Add(layout9);
1120  TGLayoutHints *layout10 = new TGLayoutHints(kLHintsNormal, 15, 0, -5, -10);
1121  fTrashListLayout->Add(layout10);
1122  TGLayoutHints *layout11 = new TGLayoutHints(kLHintsExpandX, 0, 0, 15);
1123  fTrashListLayout->Add(layout11);
1124  TGLayoutHints *layout12 = new TGLayoutHints(kLHintsExpandX, 0, 0, 10, 5);
1125  fTrashListLayout->Add(layout12);
1126  TGLayoutHints *layout13 = new TGLayoutHints(kLHintsExpandX, 20, 0, 7);
1127  fTrashListLayout->Add(layout13);
1128 
1129  TGVerticalFrame *topLevel = new TGVerticalFrame(cf);
1130  fTrashListFrame->AddFirst(topLevel);
1131  TGHorizontalFrame *h1 = new TGHorizontalFrame(topLevel);
1133  TGVerticalFrame *v11 = new TGVerticalFrame(h1);
1134  fTrashListFrame->AddFirst(v11);
1135  fListLabel = new TGLabel(v11, "Available Styles:");
1136  v11->AddFrame(fListLabel);
1137  fListComboBox = new TGComboBox(v11, kTopStylesList);
1138  fListComboBox->Associate(this);
1139  fListComboBox->Resize(200, 22);
1140  v11->AddFrame(fListComboBox, layout1);
1141  h1->AddFrame(v11, fLayoutExpandX);
1142  TGVerticalFrame *v12 = new TGVerticalFrame(h1);
1143  fTrashListFrame->AddFirst(v12);
1144  fMakeDefaultPic = gClient->GetPicture("arrow_right2.xpm");
1145  fMakeDefault = new TGPictureButton(v12, fMakeDefaultPic, kTopMakeDefault);
1146  fMakeDefault->SetStyle(gClient->GetStyle());
1147  fMakeDefault->Associate(this);
1148  fMakeDefault->Resize(40, 22);
1149  v12->AddFrame(fMakeDefault, layout3);
1150  h1->AddFrame(v12, layout4);
1151  TGVerticalFrame *v13 = new TGVerticalFrame(h1);
1152  fTrashListFrame->AddFirst(v13);
1153  fCurStylabel = new TGLabel(v13, "gStyle is set to:");
1154  v13->AddFrame(fCurStylabel);
1155  fCurStyle = new TGTextEntry(v13, "", kTopCurStyle);
1156  fCurStyle->Associate(this);
1158  v13->AddFrame(fCurStyle, layout1);
1159  h1->AddFrame(v13, fLayoutExpandX);
1160  topLevel->AddFrame(h1, fLayoutExpandX);
1161 
1162  TGHorizontalFrame *h2 = new TGHorizontalFrame(topLevel);
1164  TGGroupFrame *gf = new TGGroupFrame(h2, "Apply on");
1166  TGVerticalFrame *vf = new TGVerticalFrame(gf);
1168  Pixel_t red;
1169  gClient->GetColorByName("#FF0000", red);
1170  TGHorizontalFrame *selCanvas = new TGHorizontalFrame(vf);
1171  fTrashListFrame->AddFirst(selCanvas);
1172  fCurPadLabel = new TGLabel(selCanvas, "Canvas:");
1173  selCanvas->AddFrame(fCurPadLabel, layout6);
1174  fCurPadTextEntry = new TGTextEntry(selCanvas, "", kTopCurPad);
1178  vf->AddFrame(selCanvas, fLayoutExpandX);
1179  TGHorizontalFrame *selObject = new TGHorizontalFrame(vf);
1180  fTrashListFrame->AddFirst(selObject);
1181  fCurObjLabel = new TGLabel(selObject, "Object:");
1182  selObject->AddFrame(fCurObjLabel, layout7);
1183  fCurObjTextEntry = new TGTextEntry(selObject, "", kTopCurObj);
1184  fCurObjTextEntry->Associate(this);
1188  vf->AddFrame(selObject, layout8);
1189  TGHorizontalFrame *h4 = new TGHorizontalFrame(vf);
1191  fApplyOnGroup = new TGHButtonGroup(h4);
1192  fApplyOnAll = new TGRadioButton(fApplyOnGroup, "All canvases", kTopApplyOnAll);
1193  fApplyOnAll->Associate(this);
1194  fApplyOnSel = new TGRadioButton(fApplyOnGroup, "Selected object", kTopApplyOnSel);
1195  fApplyOnSel->Associate(this);
1197  fApplyOnGroup->SetButton(kTopApplyOnSel);
1198  fApplyOnGroup->Show();
1201  h4->AddFrame(fApplyOnGroup);
1202  fApplyOnButton = new TGTextButton(h4, "&Apply", kTopApplyOnBut);
1203  fApplyOnButton->Associate(this);
1204  fApplyOnButton->Resize(100, 22);
1205  h4->AddFrame(fApplyOnButton, layout13);
1206  vf->AddFrame(h4, fLayoutExpandX);
1207  gf->AddFrame(vf, layout11);
1208  h2->AddFrame(gf, layout12);
1209  topLevel->AddFrame(h2, fLayoutExpandX);
1210 
1211  TGHorizontalFrame *h3 = new TGHorizontalFrame(topLevel);
1213  fPreviewButton = new TGCheckButton(h3, "&Preview", kTopPreview);
1214  fPreviewButton->Associate(this);
1215  h3->AddFrame(fPreviewButton, layout6);
1216  fPreviewRealTime = new TGCheckButton(h3, "Run &Time Preview", kTopPreviewRealTime);
1217  fPreviewRealTime->Associate(this);
1219  h3->AddFrame(fPreviewRealTime, layout6);
1220  fMoreLess = new TGTextButton(h3, "&Close <<", kTopMoreLess);
1221  fMoreLess->Associate(this);
1222  h3->AddFrame(fMoreLess, layout5);
1223  topLevel->AddFrame(h3, fLayoutExpandX);
1224 
1225  cf->AddFrame(topLevel, layout2);
1226 
1227  fApplyOnButton->SetToolTipText("Apply the selected style on the selected object");
1228  fPreviewButton->SetToolTipText("Show / Hide the preview window");
1229  fPreviewRealTime->SetToolTipText("Continuous / Asynchronous update of the preview");
1230 }
1231 
1232 ////////////////////////////////////////////////////////////////////////////////
1233 /// Build the list of styles which will appear in the available styles
1234 /// combo box. The new style to select is mentioned. If no style has
1235 /// been specified, the last entry of the list is selected.
1236 
1238 {
1239  // Empty the list.
1241 
1242  // Build the list of all styles already created in the ROOT session.
1243  Int_t i = 1;
1244  Int_t styleID = 0;
1245  TStyle *tmpStyle = (TStyle *) (gROOT->GetListOfStyles()->First());
1246  while (tmpStyle) {
1247  if (tmpStyle == style) styleID = i;
1248  fListComboBox->AddEntry(tmpStyle->GetName(), i++);
1249  tmpStyle = (TStyle *) (gROOT->GetListOfStyles()->After(tmpStyle));
1250  }
1251 
1252  // Select 'style' in the list of available styles.
1253  if (styleID == 0) styleID = i - 1;
1254  fListComboBox->Select(styleID);
1255  DoListSelect();
1257 }
1258 
1259 ////////////////////////////////////////////////////////////////////////////////
1260 /// Update the content of the status bar: show the name of the current
1261 /// selected style, its title and the macro from which it has been imported.
1262 
1264 {
1267 
1268  if ((!strcmp(fCurSelStyle->GetName(), "Default"))
1269  || (!strcmp(fCurSelStyle->GetName(), "Plain" ))
1270  || (!strcmp(fCurSelStyle->GetName(), "Bold" ))
1271  || (!strcmp(fCurSelStyle->GetName(), "Video" ))
1272  || (!strcmp(fCurSelStyle->GetName(), "Pub" ))) {
1273  fStatusBar->SetText("ROOT style", 1);
1274  } else if (fStyleChanged) {
1275  fStatusBar->SetText("User Style _ Not Saved", 1);
1276  } else {
1277  fStatusBar->SetText("User Style", 1);
1278  }
1279 }
1280 
1281 ////////////////////////////////////////////////////////////////////////////////
1282 /// Update the values of every widget entry in the editor. The new values
1283 /// are loaded from the current selected style.
1284 
1286 {
1287  Double_t delta;
1288  Int_t year;
1289  Int_t month;
1290  Int_t day;
1291  Int_t oneYearInSecs;
1292  Int_t oneMonthInSecs;
1293  Int_t tmp;
1294  Int_t tmp2;
1295  switch (tabNum) {
1296  case 0: // GENERAL
1308  // Nothing to do with fLineStyleEdit.
1310  if (fCurSelStyle->GetTextFont()%10 > 2) {
1313  } else {
1316  }
1320  break;
1321  case 1: // CANVAS
1327  fCanvasBorderMode->SetButton(fCurSelStyle->GetCanvasBorderMode() + 1 + kCanvasBorderModeSunken);
1330  if (fCurSelStyle->GetAttDate()->GetTextFont()%10 > 2) {
1333  } else {
1336  }
1341  fDateX->SetIntNumber((Int_t) (fCurSelStyle->GetDateX()*100 + 0.5));
1342  fDateY->SetIntNumber((Int_t) (fCurSelStyle->GetDateY()*100 + 0.5));
1343 
1344  if (fCurSelStyle->GetOptDate()) {
1350 // TODO Just delete when ComboBox can be grayed
1351  //fOptDateFormat->SetState(kTRUE);
1352  //ModAttDateTextFont->SetState(kTRUE);
1353  //ModAttDateTextAlign->SetState(kTRUE);
1355  fDateX->SetState(kTRUE);
1356  fDateY->SetState(kTRUE);
1357  } else {
1362 // TODO Just delete when ComboBox can be grayed
1363  //fOptDateFormat->SetState(kFALSE);
1364  //ModAttDateTextFont->SetState(kFALSE);
1365  //ModAttDateTextAlign->SetState(kFALSE);
1369  }
1370  break;
1371  case 2: // PAD
1376  fPadBorderMode->SetButton(fCurSelStyle->GetPadBorderMode() + 1 + kPadBorderModeSunken);
1379  if (fCurSelStyle->GetPadTickX())
1381  else
1383  if (fCurSelStyle->GetPadTickY())
1385  else
1387  if (fCurSelStyle->GetPadGridX())
1389  else
1391  if (fCurSelStyle->GetPadGridY())
1393  else
1398  break;
1399  case 3: // HISTOS
1409  else
1419  // Nothing to do with fPaletteEdit;
1420  fFrameBorderMode->SetButton(fCurSelStyle->GetFrameBorderMode() + 1 + kFrameBorderModeSunken);
1425  if (fCurSelStyle->GetDrawBorder())
1427  else
1430  fErrorX->SetIntNumber((Int_t) (fCurSelStyle->GetErrorX() * 100 + 0.5));
1431  break;
1432  case 4: // AXIS
1433  delta = fCurSelStyle->GetTimeOffset() - 788918400;
1434  year = 1995;
1435  month = 1;
1436  day = 1;
1437  while (delta < 0) {
1438  year--;
1439  if (year % 4) oneYearInSecs = 3600 * 24 * 365;
1440  else oneYearInSecs = 3600 * 24 * 366;
1441  delta += oneYearInSecs;
1442  }
1443  oneYearInSecs = 3600 * 24 * 365; // because 365 days in 1995.
1444  while (delta >= oneYearInSecs) {
1445  if (year % 4) oneYearInSecs = 3600 * 24 * 365;
1446  else oneYearInSecs = 3600 * 24 * 366;
1447  delta -= oneYearInSecs;
1448  year++;
1449  }
1450  oneMonthInSecs = 3600 * 24 * 31; // because 31 days in January.
1451  while (delta >= oneMonthInSecs) {
1452  month++;
1453  delta -= oneMonthInSecs;
1454  switch (month) {
1455  case 2:
1456  if (year % 4) oneMonthInSecs = 3600 * 24 * 28;
1457  else oneMonthInSecs = 3600 * 24 * 29;
1458  break;
1459  case 3: case 5: case 7: case 8: case 10: case 12:
1460  oneMonthInSecs = 3600 * 24 * 31;
1461  break;
1462  default:
1463  oneMonthInSecs = 3600 * 24 * 30;
1464  }
1465  }
1466  day = (Int_t) delta / (3600 * 24) + 1;
1467  delta = ((Int_t) delta) % (3600 * 24);
1468  fTimeOffsetDate->SetNumber(year*10000 + month*100 + day);
1469  fTimeOffsetTime->SetNumber(delta);
1470 
1473  else
1476  if (fCurSelStyle->GetTitleFont("X")%10 > 2) {
1479  } else {
1482  }
1487  if (fCurSelStyle->GetLabelFont("X")%10 > 2) {
1490  } else {
1493  }
1499  if (fCurSelStyle->GetOptLogx())
1501  else
1505  fXNdivSubSub->SetIntNumber((TMath::Abs(fCurSelStyle->GetNdivisions("X")) % 1000000)/10000);
1506  if (fCurSelStyle->GetNdivisions("X") > 0)
1508  else
1511  if (fCurSelStyle->GetTitleFont("Y")%10 > 2) {
1514  } else {
1517  }
1522  if (fCurSelStyle->GetLabelFont("Y")%10 > 2) {
1525  } else {
1528  }
1534  if (fCurSelStyle->GetOptLogy())
1536  else
1540  fYNdivSubSub->SetIntNumber((TMath::Abs(fCurSelStyle->GetNdivisions("Y")) % 1000000)/10000);
1541  if (fCurSelStyle->GetNdivisions("Y") > 0)
1543  else
1546  if (fCurSelStyle->GetTitleFont("Z")%10 > 2) {
1549  } else {
1552  }
1557  if (fCurSelStyle->GetLabelFont("Z")%10 > 2) {
1560  } else {
1563  }
1569 
1570  if (fCurSelStyle->GetOptLogz())
1572  else
1574 
1577  fZNdivSubSub->SetIntNumber((TMath::Abs(fCurSelStyle->GetNdivisions("Z")) % 1000000)/10000);
1578  if (fCurSelStyle->GetNdivisions("Z") > 0)
1580  else
1582  break;
1583  case 5: // TITLES
1588  if (fCurSelStyle->GetTitleFont()%10 > 2) {
1591  } else {
1594  }
1599  fTitleX->SetIntNumber((Int_t) (fCurSelStyle->GetTitleX() * 100 + 0.5));
1600  fTitleY->SetIntNumber((Int_t) (fCurSelStyle->GetTitleY() * 100 + 0.5));
1601  fTitleW->SetIntNumber((Int_t) (fCurSelStyle->GetTitleW() * 100 + 0.5));
1602  fTitleH->SetIntNumber((Int_t) (fCurSelStyle->GetTitleH() * 100 + 0.5));
1603 
1604  if (fCurSelStyle->GetOptTitle()) {
1606  fTitleColor->Enable();
1607  fTitleStyle->Enable();
1612 // TODO Just delete when ComboBox can be grayed
1613  //fTitleFont->SetState(kTRUE);
1614  //fTitleAlign->SetState(kTRUE);
1615  //fTitleBorderSize->SetState(kTRUE);
1616  //fLegendBorderSize->SetState(kTRUE);
1621  } else {
1623  fTitleColor->Disable();
1624  fTitleStyle->Disable();
1628 // TODO Just delete when ComboBox can be grayed
1629  //fTitleFont->SetState(kFALSE);
1630  //fTitleAlign->SetState(kFALSE);
1631  //fTitleBorderSize->SetState(kFALSE);
1632  //fLegendBorderSize->SetState(kFALSE);
1637  }
1638  break;
1639  case 6: // STATS
1644  if (fCurSelStyle->GetStatFont()%10 > 2) {
1647  } else {
1650  }
1652 
1658  tmp = fCurSelStyle->GetOptStat();
1659 
1660  if (tmp % 10) fOptStatName->SetState(kButtonDown, kFALSE);
1662 
1663  if ((tmp/10) % 10) fOptStatEntries->SetState(kButtonDown, kFALSE);
1665 
1666  if ((tmp/100) % 10) fOptStatMean->SetState(kButtonDown, kFALSE);
1668 
1669  if ((tmp/1000) % 10) fOptStatRMS->SetState(kButtonDown, kFALSE);
1671 
1672  if ((tmp/10000) % 10) fOptStatUnderflow->SetState(kButtonDown, kFALSE);
1674 
1675  if ((tmp/100000) % 10) fOptStatOverflow->SetState(kButtonDown, kFALSE);
1677 
1678  if ((tmp/1000000) % 10) fOptStatIntegral->SetState(kButtonDown, kFALSE);
1680 
1681  if ((tmp/10000000) % 10) fOptStatSkewness->SetState(kButtonDown, kFALSE);
1683 
1684  if ((tmp/100000000) % 10) fOptStatKurtosis->SetState(kButtonDown, kFALSE);
1686 
1687  if ((((tmp/100) % 10) == 2) || (((tmp/1000) % 10) == 2) ||
1688  (((tmp/10000000) % 10) == 2) || (((tmp/100000000) % 10) == 2))
1691 
1693  tmp2 = fCurSelStyle->GetOptFit();
1694 
1695  if (tmp2 % 10) fOptFitValues->SetState(kButtonDown, kFALSE);
1697 
1698  if ((tmp2/10) % 10) {
1701  } else
1703 
1704  if ((tmp2/100) % 10) fOptFitChi->SetState(kButtonDown, kFALSE);
1706 
1707  if ((tmp2/1000) % 10) fOptFitProbability->SetState(kButtonDown, kFALSE);
1709 
1711  break;
1712 
1713  case 7: // PS / PDF
1716  fColorModelPS->SetButton(fCurSelStyle->GetColorModelPS() + kPSPDFColorModelPSRGB);
1718  Float_t papSizeX;
1719  Float_t papSizeY;
1720  fCurSelStyle->GetPaperSize(papSizeX, papSizeY);
1721  if ((papSizeX == 20) && (papSizeY == 26)) {
1724  fPaperSizeX->SetNumber(papSizeX);
1725  fPaperSizeY->SetNumber(papSizeY);
1726  } else if ((papSizeX == 20) && (papSizeY == 24)) {
1729  fPaperSizeX->SetNumber(papSizeX * 0.394);
1730  fPaperSizeY->SetNumber(papSizeY * 0.394);
1731  } else {
1734  fPaperSizeX->SetNumber(papSizeX);
1735  fPaperSizeY->SetNumber(papSizeY);
1736  }
1737  break;
1738  }
1739 }
1740 
1741 ////////////////////////////////////////////////////////////////////////////////
1742 /// Connect every entry in the top level interface to the slot.
1743 
1745 {
1746  Connect("CloseWindow()", "TStyleManager", this, "CloseWindow()");
1747  fMenuStyle->Connect("Activated(Int_t)", "TStyleManager", this, "DoMenu(Int_t)");
1748  fMenuHelp->Connect("Activated(Int_t)", "TStyleManager", this, "DoMenu(Int_t)");
1749  fToolBarNew->Connect("Clicked()", "TStyleManager", this, TString::Format("DoMenu(Int_t=%d)", kMenuNew));
1750  fToolBarDelete->Connect("Clicked()", "TStyleManager", this, TString::Format("DoMenu(Int_t=%d)", kMenuDelete));
1751  fToolBarImportCanvas->Connect("Clicked()", "TStyleManager", this, TString::Format("DoMenu(Int_t=%d)", kMenuImportCanvas));
1752  fToolBarImportMacro->Connect("Clicked()", "TStyleManager", this, TString::Format("DoMenu(Int_t=%d)", kMenuImportMacro));
1753  fToolBarExport->Connect("Clicked()", "TStyleManager", this, TString::Format("DoMenu(Int_t=%d)", kMenuExport));
1754  fToolBarHelp->Connect("Clicked()", "TStyleManager", this, TString::Format("DoMenu(Int_t=%d)", kMenuHelp));
1755  fListComboBox->Connect("Selected(Int_t)", "TStyleManager", this, "DoListSelect()");
1756  fPreviewButton->Connect("Toggled(Bool_t)", "TStyleManager", this, "DoPreview(Bool_t)");
1757  fPreviewRealTime->Connect("Toggled(Bool_t)", "TStyleManager", this, "DoRealTime(Bool_t)");
1758  fMakeDefault->Connect("Clicked()", "TStyleManager", this, "DoMakeDefault()");
1759  fApplyOnGroup->Connect("Clicked(Int_t)", "TStyleManager", this, "DoApplyOnSelect(Int_t)");
1760  fApplyOnButton->Connect("Clicked()", "TStyleManager", this, "DoApplyOn()");
1761  fMoreLess->Connect("Clicked()", "TStyleManager", this, "DoMoreLess()");
1762 
1763  fEditionHelp->Connect("Clicked()", "TStyleManager", this, TString::Format("DoMenu(Int_t=%d)", kMenuHelpEditor));
1764  fEditionUpdatePreview->Connect("Clicked()", "TStyleManager", this, "DoEditionUpdatePreview()");
1765  fEditionReset->Connect("Clicked()", "TStyleManager", this, "DoImportMacro(Int_t=kFALSE)");
1766  fEditionTab->Connect("Selected(Int_t)", "TStyleManager", this, "DoChangeTab(Int_t)");
1767  fAxisTab->Connect("Selected(Int_t)", "TStyleManager", this, "DoChangeAxisTab(Int_t)");
1768 
1769  // Connect signals emited when the current pad changed.
1770  TQObject::Connect("TCanvas", "Selected(TVirtualPad *, TObject *, Int_t)", "TStyleManager",
1771  this, "DoSelectCanvas(TVirtualPad *, TObject *, Int_t)");
1772  TQObject::Connect("TCanvas", "Closed()", "TStyleManager", this, "DoSelectNoCanvas()");
1773 }
1774 
1775 ////////////////////////////////////////////////////////////////////////////////
1776 /// Disconnect every entry in the top level interface of the slot.
1777 
1779 {
1780  Disconnect("CloseWindow()");
1781  fMenuStyle->Disconnect("Activated(Int_t)");
1782  fMenuHelp->Disconnect("Activated(Int_t)");
1783  fToolBarNew->Disconnect("Clicked()");
1784  fToolBarDelete->Disconnect("Clicked()");
1785  fToolBarImportCanvas->Disconnect("Clicked()");
1786  fToolBarImportMacro->Disconnect("Clicked()");
1787  fToolBarExport->Disconnect("Clicked()");
1788  fToolBarHelp->Disconnect("Clicked()");
1789  fListComboBox->Disconnect("Selected(Int_t)");
1790  fPreviewButton->Disconnect("Toggled(Bool_t)");
1791  fMakeDefault->Disconnect("Clicked()");
1792  fApplyOnGroup->Disconnect("Clicked(Int_t)");
1793  fApplyOnButton->Disconnect("Clicked()");
1794  fMoreLess->Disconnect("Clicked()");
1795 
1796  fEditionHelp->Disconnect("Clicked()");
1797  fEditionUpdatePreview->Disconnect("Clicked()");
1798  fEditionReset->Disconnect("Clicked()");
1799  fEditionTab->Disconnect("Selected(Int_t)");
1800 
1801  TQObject::Disconnect("TCanvas", "Selected(TVirtualPad *, TObject *, Int_t)");
1802  TQObject::Disconnect("TCanvas", "Closed()");
1803 }
1804 
1805 ////////////////////////////////////////////////////////////////////////////////
1806 /// Connect every widget entry of the editor to its specific slot.
1807 
1809 {
1810  if (fSigSlotConnected) return;
1812 
1813  switch (tabNum) {
1814  case 0: // GENERAL
1815  fFillColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModFillColor()");
1816  fFillStyle->Connect("PatternSelected(Style_t)", "TStyleManager", this, "ModFillStyle()");
1817  fHatchesLineWidth->Connect("Selected(Int_t)", "TStyleManager", this, "ModHatchesLineWidth()");
1818  fHatchesSpacing->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModHatchesSpacing()");
1819  fMarkerColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModMarkerColor()");
1820  fMarkerStyle->Connect("MarkerSelected(Style_t)", "TStyleManager", this, "ModMarkerStyle()");
1821  fMarkerSize->Connect("Selected(Int_t)", "TStyleManager", this, "ModMarkerSize()");
1822  fScreenFactor->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModScreenFactor()");
1823  fLineColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModLineColor()");
1824  fLineWidth->Connect("Selected(Int_t)", "TStyleManager", this, "ModLineWidth()");
1825  fLineStyle->Connect("Selected(Int_t)", "TStyleManager", this, "ModLineStyle()");
1826  fLineStyleEdit->Connect("Clicked()", "TStyleManager", this, "ModLineStyleEdit()");
1827  fTextColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModTextColor()");
1828  fTextSize->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModTextSize()");
1829  fTextSizeInPixels->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModTextSizeInPixels(Bool_t)");
1830  fTextFont->Connect("Selected(Int_t)", "TStyleManager", this, "ModTextFont()");
1831  fTextAlign->Connect("Selected(Int_t)", "TStyleManager", this, "ModTextAlign()");
1832  fTextAngle->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModTextAngle()");
1833  break;
1834  case 1: // CANVAS
1835  fCanvasColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModCanvasColor()");
1836  fCanvasDefX->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModCanvasDefX()");
1837  fCanvasDefY->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModCanvasDefY()");
1838  fCanvasDefW->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModCanvasDefW()");
1839  fCanvasDefH->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModCanvasDefH()");
1840  fCanvasBorderMode->Connect("Clicked(Int_t)", "TStyleManager", this, "ModCanvasBorderMode()");
1841  fCanvasBorderSize->Connect("Selected(Int_t)", "TStyleManager", this, "ModCanvasBorderSize()");
1842  fOptDateBool->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptDateBool()");
1843  fAttDateTextColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModAttDateTextColor()");
1844  fAttDateTextSize->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModAttDateTextSize()");
1845  fAttDateTextSizeInPixels->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModAttDateTextSizeInPixels(Bool_t)");
1846  fOptDateFormat->Connect("Selected(Int_t)", "TStyleManager", this, "ModOptDateFormat()");
1847  fAttDateTextFont->Connect("Selected(Int_t)", "TStyleManager", this, "ModAttDateTextFont()");
1848  fAttDateTextAngle->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModAttDateTextAngle()");
1849  fAttDateTextAlign->Connect("Selected(Int_t)", "TStyleManager", this, "ModAttDateTextAlign()");
1850  fDateX->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModDateX()");
1851  fDateY->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModDateY()");
1852  break;
1853  case 2: // PAD
1854  fPadTopMargin->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModPadTopMargin()");
1855  fPadBottomMargin->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModPadBottomMargin()");
1856  fPadLeftMargin->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModPadLeftMargin()");
1857  fPadRightMargin->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModPadRightMargin()");
1858  fPadBorderMode->Connect("Clicked(Int_t)", "TStyleManager", this, "ModPadBorderMode()");
1859  fPadBorderSize->Connect("Selected(Int_t)", "TStyleManager", this, "ModPadBorderSize()");
1860  fPadColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModPadColor()");
1861  fPadTickX->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModPadTickX()");
1862  fPadTickY->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModPadTickY()");
1863  fPadGridX->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModPadGridX()");
1864  fPadGridY->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModPadGridY()");
1865  fGridColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModGridColor()");
1866  fGridWidth->Connect("Selected(Int_t)", "TStyleManager", this, "ModGridWidth()");
1867  fGridStyle->Connect("Selected(Int_t)", "TStyleManager", this, "ModGridStyle()");
1868  break;
1869  case 3: // HISTOS
1870  fHistFillColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModHistFillColor()");
1871  fHistFillStyle->Connect("PatternSelected(Style_t)", "TStyleManager", this, "ModHistFillStyle()");
1872  fHistLineColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModHistLineColor()");
1873  fHistLineWidth->Connect("Selected(Int_t)", "TStyleManager", this, "ModHistLineWidth()");
1874  fHistLineStyle->Connect("Selected(Int_t)", "TStyleManager", this, "ModHistLineStyle()");
1875  fBarWidth->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModBarWidth()");
1876  fBarOffset->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModBarOffset()");
1877  fHistMinimumZero->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModHistMinimumZero()");
1878  fPaintTextFormat->Connect("TextChanged(const char *)", "TStyleManager", this, "ModPaintTextFormat()");
1879  fNumberContours->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModNumberContours()");
1880  fLegoInnerR->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModLegoInnerR()");
1881  fFrameFillColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModFrameFillColor()");
1882  fFrameFillStyle->Connect("PatternSelected(Style_t)", "TStyleManager", this, "ModFrameFillStyle()");
1883  fFrameLineColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModFrameLineColor()");
1884  fFrameLineWidth->Connect("Selected(Int_t)", "TStyleManager", this, "ModFrameLineWidth()");
1885  fFrameLineStyle->Connect("Selected(Int_t)", "TStyleManager", this, "ModFrameLineStyle()");
1886  fPaletteEdit->Connect("Clicked()", "TStyleManager", this, "ModPaletteEdit()");
1887  fFrameBorderMode->Connect("Clicked(Int_t)", "TStyleManager", this, "ModFrameBorderMode()");
1888  fFrameBorderSize->Connect("Selected(Int_t)", "TStyleManager", this, "ModFrameBorderSize()");
1889  fFuncColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModFuncColor()");
1890  fFuncWidth->Connect("Selected(Int_t)", "TStyleManager", this, "ModFuncWidth()");
1891  fFuncStyle->Connect("Selected(Int_t)", "TStyleManager", this, "ModFuncStyle()");
1892  fDrawBorder->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModDrawBorder()");
1893  fEndErrorSize->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModEndErrorSize()");
1894  fErrorX->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModErrorX()");
1895  break;
1896  case 4: // AXIS
1897  fTimeOffsetDate->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModTimeOffset()");
1898  fTimeOffsetTime->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModTimeOffset()");
1899  fStripDecimals->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModStripDecimals()");
1900  fApplyOnXYZ->Connect("Clicked()", "TStyleManager", this, "ModApplyOnXYZ()");
1901  fXTitleSize->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModXTitleSize()");
1902  fXTitleSizeInPixels->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModXTitleSizeInPixels(Bool_t)");
1903  fXTitleColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModXTitleColor()");
1904  fXTitleOffset->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModXTitleOffset()");
1905  fXTitleFont->Connect("Selected(Int_t)", "TStyleManager", this, "ModXTitleFont()");
1906  fXLabelSize->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModXLabelSize()");
1907  fXLabelSizeInPixels->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModXLabelSizeInPixels(Bool_t)");
1908  fXLabelColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModXLabelColor()");
1909  fXLabelOffset->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModXLabelOffset()");
1910  fXLabelFont->Connect("Selected(Int_t)", "TStyleManager", this, "ModXLabelFont()");
1911  fXAxisColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModXAxisColor()");
1912  fXTickLength->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModXTickLength()");
1913  fOptLogx->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptLogx()");
1914  fXNdivMain->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModXNdivisions()");
1915  fXNdivSub->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModXNdivisions()");
1916  fXNdivSubSub->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModXNdivisions()");
1917  fXNdivisionsOptimize->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModXNdivisions()");
1918  fYTitleSize->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModYTitleSize()");
1919  fYTitleSizeInPixels->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModYTitleSizeInPixels(Bool_t)");
1920  fYTitleColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModYTitleColor()");
1921  fYTitleOffset->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModYTitleOffset()");
1922  fYTitleFont->Connect("Selected(Int_t)", "TStyleManager", this, "ModYTitleFont()");
1923  fYLabelSize->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModYLabelSize()");
1924  fYLabelSizeInPixels->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModYLabelSizeInPixels(Bool_t)");
1925  fYLabelColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModYLabelColor()");
1926  fYLabelOffset->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModYLabelOffset()");
1927  fYLabelFont->Connect("Selected(Int_t)", "TStyleManager", this, "ModYLabelFont()");
1928  fYAxisColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModYAxisColor()");
1929  fYTickLength->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModYTickLength()");
1930  fOptLogy->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptLogy()");
1931  fYNdivMain->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModYNdivisions()");
1932  fYNdivSub->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModYNdivisions()");
1933  fYNdivSubSub->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModYNdivisions()");
1934  fYNdivisionsOptimize->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModYNdivisions()");
1935  fZTitleSize->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModZTitleSize()");
1936  fZTitleSizeInPixels->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModZTitleSizeInPixels(Bool_t)");
1937  fZTitleColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModZTitleColor()");
1938  fZTitleOffset->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModZTitleOffset()");
1939  fZTitleFont->Connect("Selected(Int_t)", "TStyleManager", this, "ModZTitleFont()");
1940  fZLabelSize->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModZLabelSize()");
1941  fZLabelSizeInPixels->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModZLabelSizeInPixels(Bool_t)");
1942  fZLabelColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModZLabelColor()");
1943  fZLabelOffset->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModZLabelOffset()");
1944  fZLabelFont->Connect("Selected(Int_t)", "TStyleManager", this, "ModZLabelFont()");
1945  fZAxisColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModZAxisColor()");
1946  fZTickLength->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModZTickLength()");
1947  fOptLogz->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptLogz()");
1948  fZNdivMain->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModZNdivisions()");
1949  fZNdivSub->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModZNdivisions()");
1950  fZNdivSubSub->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModZNdivisions()");
1951  fZNdivisionsOptimize->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModZNdivisions()");
1952  break;
1953  case 5: // TITLES
1954  fOptTitle->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptTitle()");
1955  fTitleColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModTitleFillColor()");
1956  fTitleStyle->Connect("PatternSelected(Style_t)", "TStyleManager", this, "ModTitleStyle()");
1957  fTitleTextColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModTitleTextColor()");
1958  fTitleFontSize->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModTitleFontSize()");
1959  fTitleFontSizeInPixels->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModTitleFontSizeInPixels(Bool_t)");
1960  fTitleFont->Connect("Selected(Int_t)", "TStyleManager", this, "ModTitleFont()");
1961  fTitleAlign->Connect("Selected(Int_t)", "TStyleManager", this, "ModTitleAlign()");
1962  fTitleBorderSize->Connect("Selected(Int_t)", "TStyleManager", this, "ModTitleBorderSize()");
1963  fTitleX->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModTitleX()");
1964  fTitleY->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModTitleY()");
1965  fTitleW->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModTitleW()");
1966  fTitleH->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModTitleH()");
1967  fLegendBorderSize->Connect("Selected(Int_t)", "TStyleManager", this, "ModLegendBorderSize()");
1968  break;
1969  case 6: // STATS
1970  fStatColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModStatColor(Pixel_t)");
1971  fStatStyle->Connect("PatternSelected(Style_t)", "TStyleManager", this, "ModStatStyle(Style_t)");
1972  fStatTextColor->Connect("ColorSelected(Pixel_t)", "TStyleManager", this, "ModStatTextColor(Pixel_t)");
1973  fStatFontSize->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModStatFontSize()");
1974  fStatFontSizeInPixels->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModStatFontSizeInPixels(Bool_t)");
1975  fStatFont->Connect("Selected(Int_t)", "TStyleManager", this, "ModStatFont()");
1976  fStatX->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModStatX()");
1977  fStatY->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModStatY()");
1978  fStatW->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModStatW()");
1979  fStatH->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModStatH()");
1980  fStatBorderSize->Connect("Selected(Int_t)", "TStyleManager", this, "ModStatBorderSize()");
1981  fOptStatName->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptStat()");
1982  fOptStatEntries->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptStat()");
1983  fOptStatOverflow->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptStat()");
1984  fOptStatMean->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptStat()");
1985  fOptStatUnderflow->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptStat()");
1986  fOptStatRMS->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptStat()");
1987  fOptStatSkewness->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptStat()");
1988  fOptStatIntegral->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptStat()");
1989  fOptStatKurtosis->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptStat()");
1990  fOptStatErrors->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptStat()");
1991  fStatFormat->Connect("TextChanged(const char *)", "TStyleManager", this, "ModStatFormat(const char *)");
1992  fOptFitValues->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptFit()");
1993  fOptFitErrors->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptFit()");
1994  fOptFitProbability->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptFit()");
1995  fOptFitChi->Connect("Toggled(Bool_t)", "TStyleManager", this, "ModOptFit()");
1996  fFitFormat->Connect("TextChanged(const char *)", "TStyleManager", this, "ModFitFormat(const char *)");
1997  break;
1998  case 7: // PS / PDF
1999  fHeaderPS->Connect("TextChanged(const char *)", "TStyleManager", this, "ModHeaderPS()");
2000  fTitlePS->Connect("TextChanged(const char *)", "TStyleManager", this, "ModTitlePS()");
2001  fColorModelPS->Connect("Clicked(Int_t)", "TStyleManager", this, "ModColorModelPS()");
2002  fLineScalePS->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModLineScalePS()");
2003  fPaperSizePredef->Connect("Selected(Int_t)", "TStyleManager", this, "ModPaperSizePredef()");
2004  fPaperSizeX->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModPaperSizeXY()");
2005  fPaperSizeY->Connect("ValueSet(Long_t)", "TStyleManager", this, "ModPaperSizeXY()");
2006  break;
2007  }
2008 }
2009 
2010 ////////////////////////////////////////////////////////////////////////////////
2011 /// Disconnect every widget entry of the editor from its slot. Must be
2012 /// called before UpdateEditor() to avoid recursive calls.
2013 
2015 {
2016  if (!fSigSlotConnected) return;
2018 
2019  switch (tabNum) {
2020  case 0: // GENERAL
2021  fFillColor->Disconnect("ColorSelected(Pixel_t)");
2022  fFillStyle->Disconnect("PatternSelected(Style_t)");
2023  fHatchesLineWidth->Disconnect("Selected(Int_t)");
2024  fHatchesSpacing->Disconnect("ValueSet(Long_t)");
2025  fMarkerColor->Disconnect("ColorSelected(Pixel_t)");
2026  fMarkerStyle->Disconnect("MarkerSelected(Style_t)");
2027  fMarkerSize->Disconnect("Selected(Int_t)");
2028  fScreenFactor->Disconnect("ValueSet(Long_t)");
2029  fLineColor->Disconnect("ColorSelected(Pixel_t)");
2030  fLineWidth->Disconnect("Selected(Int_t)");
2031  fLineStyle->Disconnect("Selected(Int_t)");
2032  fLineStyleEdit->Disconnect("Clicked()");
2033  fTextColor->Disconnect("ColorSelected(Pixel_t)");
2034  fTextSize->Disconnect("ValueSet(Long_t)");
2035  fTextFont->Disconnect("Selected(Int_t)");
2036  fTextAlign->Disconnect("Selected(Int_t)");
2037  fTextAngle->Disconnect("ValueSet(Long_t)");
2038  break;
2039  case 1: // CANVAS
2040  fCanvasColor->Disconnect("ColorSelected(Pixel_t)");
2041  fCanvasDefX->Disconnect("ValueSet(Long_t)");
2042  fCanvasDefY->Disconnect("ValueSet(Long_t)");
2043  fCanvasDefW->Disconnect("ValueSet(Long_t)");
2044  fCanvasDefH->Disconnect("ValueSet(Long_t)");
2045  fCanvasBorderMode->Disconnect("Clicked(Int_t)");
2046  fCanvasBorderSize->Disconnect("Selected(Int_t)");
2047  fOptDateBool->Disconnect("Toggled(Bool_t)");
2048  fAttDateTextColor->Disconnect("ColorSelected(Pixel_t)");
2049  fAttDateTextSize->Disconnect("ValueSet(Long_t)");
2050  fOptDateFormat->Disconnect("Selected(Int_t)");
2051  fAttDateTextFont->Disconnect("Selected(Int_t)");
2052  fAttDateTextAngle->Disconnect("ValueSet(Long_t)");
2053  fAttDateTextAlign->Disconnect("Selected(Int_t)");
2054  fDateX->Disconnect("ValueSet(Long_t)");
2055  fDateY->Disconnect("ValueSet(Long_t)");
2056  break;
2057  case 2: // PAD
2058  fPadTopMargin->Disconnect("ValueSet(Long_t)");
2059  fPadBottomMargin->Disconnect("ValueSet(Long_t)");
2060  fPadLeftMargin->Disconnect("ValueSet(Long_t)");
2061  fPadRightMargin->Disconnect("ValueSet(Long_t)");
2062  fPadBorderMode->Disconnect("Clicked(Int_t)");
2063  fPadBorderSize->Disconnect("Selected(Int_t)");
2064  fPadColor->Disconnect("ColorSelected(Pixel_t)");
2065  fPadTickX->Disconnect("Toggled(Bool_t)");
2066  fPadTickY->Disconnect("Toggled(Bool_t)");
2067  fPadGridX->Disconnect("Toggled(Bool_t)");
2068  fPadGridY->Disconnect("Toggled(Bool_t)");
2069  fGridColor->Disconnect("ColorSelected(Pixel_t)");
2070  fGridWidth->Disconnect("Selected(Int_t)");
2071  fGridStyle->Disconnect("Selected(Int_t)");
2072  break;
2073  case 3: // HISTOS
2074  fHistFillColor->Disconnect("ColorSelected(Pixel_t)");
2075  fHistFillStyle->Disconnect("PatternSelected(Style_t)");
2076  fHistLineColor->Disconnect("ColorSelected(Pixel_t)");
2077  fHistLineWidth->Disconnect("Selected(Int_t)");
2078  fHistLineStyle->Disconnect("Selected(Int_t)");
2079  fBarWidth->Disconnect("ValueSet(Long_t)");
2080  fBarOffset->Disconnect("ValueSet(Long_t)");
2081  fHistMinimumZero->Disconnect("Toggled(Bool_t)");
2082  fPaintTextFormat->Disconnect("TextChanged(const char *)");
2083  fNumberContours->Disconnect("ValueSet(Long_t)");
2084  fLegoInnerR->Disconnect("ValueSet(Long_t)");
2085  fFrameFillColor->Disconnect("ColorSelected(Pixel_t)");
2086  fFrameFillStyle->Disconnect("PatternSelected(Style_t)");
2087  fFrameLineColor->Disconnect("ColorSelected(Pixel_t)");
2088  fFrameLineWidth->Disconnect("Selected(Int_t)");
2089  fFrameLineStyle->Disconnect("Selected(Int_t)");
2090  fPaletteEdit->Disconnect("Clicked()");
2091  fFrameBorderMode->Disconnect("Clicked(Int_t)");
2092  fFrameBorderSize->Disconnect("Selected(Int_t)");
2093  fFuncColor->Disconnect("ColorSelected(Pixel_t)");
2094  fFuncWidth->Disconnect("Selected(Int_t)");
2095  fFuncStyle->Disconnect("Selected(Int_t)");
2096  fDrawBorder->Disconnect("Toggled(Bool_t)");
2097  fEndErrorSize->Disconnect("ValueSet(Long_t)");
2098  fErrorX->Disconnect("ValueSet(Long_t)");
2099  break;
2100  case 4: // AXIS
2101  fTimeOffsetDate->Disconnect("ValueSet(Long_t)");
2102  fTimeOffsetTime->Disconnect("ValueSet(Long_t)");
2103  fStripDecimals->Disconnect("Toggled(Bool_t)");
2104  fApplyOnXYZ->Disconnect("Clicked()");
2105  fXTitleSize->Disconnect("ValueSet(Long_t)");
2106  fXTitleColor->Disconnect("ColorSelected(Pixel_t)");
2107  fXTitleOffset->Disconnect("ValueSet(Long_t)");
2108  fXTitleFont->Disconnect("Selected(Int_t)");
2109  fXLabelSize->Disconnect("ValueSet(Long_t)");
2110  fXLabelColor->Disconnect("ColorSelected(Pixel_t)");
2111  fXLabelOffset->Disconnect("ValueSet(Long_t)");
2112  fXLabelFont->Disconnect("Selected(Int_t)");
2113  fXAxisColor->Disconnect("ColorSelected(Pixel_t)");
2114  fXTickLength->Disconnect("ValueSet(Long_t)");
2115  fOptLogx->Disconnect("Toggled(Bool_t)");
2116  fXNdivMain->Disconnect("ValueSet(Long_t)");
2117  fXNdivSub->Disconnect("ValueSet(Long_t)");
2118  fXNdivSubSub->Disconnect("ValueSet(Long_t)");
2119  fXNdivisionsOptimize->Disconnect("Toggled(Bool_t)");
2120  fYTitleSize->Disconnect("ValueSet(Long_t)");
2121  fYTitleColor->Disconnect("ColorSelected(Pixel_t)");
2122  fYTitleOffset->Disconnect("ValueSet(Long_t)");
2123  fYTitleFont->Disconnect("Selected(Int_t)");
2124  fYLabelSize->Disconnect("ValueSet(Long_t)");
2125  fYLabelColor->Disconnect("ColorSelected(Pixel_t)");
2126  fYLabelOffset->Disconnect("ValueSet(Long_t)");
2127  fYLabelFont->Disconnect("Selected(Int_t)");
2128  fYAxisColor->Disconnect("ColorSelected(Pixel_t)");
2129  fYTickLength->Disconnect("ValueSet(Long_t)");
2130  fOptLogy->Disconnect("Toggled(Bool_t)");
2131  fYNdivMain->Disconnect("ValueSet(Long_t)");
2132  fYNdivSub->Disconnect("ValueSet(Long_t)");
2133  fYNdivSubSub->Disconnect("ValueSet(Long_t)");
2134  fYNdivisionsOptimize->Disconnect("Toggled(Bool_t)");
2135  fZTitleSize->Disconnect("ValueSet(Long_t)");
2136  fZTitleColor->Disconnect("ColorSelected(Pixel_t)");
2137  fZTitleOffset->Disconnect("ValueSet(Long_t)");
2138  fZTitleFont->Disconnect("Selected(Int_t)");
2139  fZLabelSize->Disconnect("ValueSet(Long_t)");
2140  fZLabelColor->Disconnect("ColorSelected(Pixel_t)");
2141  fZLabelOffset->Disconnect("ValueSet(Long_t)");
2142  fZLabelFont->Disconnect("Selected(Int_t)");
2143  fZAxisColor->Disconnect("ColorSelected(Pixel_t)");
2144  fZTickLength->Disconnect("ValueSet(Long_t)");
2145  fOptLogz->Disconnect("Toggled(Bool_t)");
2146  fZNdivMain->Disconnect("ValueSet(Long_t)");
2147  fZNdivSub->Disconnect("ValueSet(Long_t)");
2148  fZNdivSubSub->Disconnect("ValueSet(Long_t)");
2149  fZNdivisionsOptimize->Disconnect("Toggled(Bool_t)");
2150  break;
2151  case 5: // TITLES
2152  fOptTitle->Disconnect("Toggled(Bool_t)");
2153  fTitleColor->Disconnect("ColorSelected(Pixel_t)");
2154  fTitleStyle->Disconnect("PatternSelected(Style_t)");
2155  fTitleTextColor->Disconnect("ColorSelected(Pixel_t)");
2156  fTitleFontSize->Disconnect("ValueSet(Long_t)");
2157  fTitleFont->Disconnect("Selected(Int_t)");
2158  fTitleAlign->Disconnect("Selected(Int_t)");
2159  fTitleBorderSize->Disconnect("Selected(Int_t)");
2160  fTitleX->Disconnect("ValueSet(Long_t)");
2161  fTitleY->Disconnect("ValueSet(Long_t)");
2162  fTitleW->Disconnect("ValueSet(Long_t)");
2163  fTitleH->Disconnect("ValueSet(Long_t)");
2164  fLegendBorderSize->Disconnect("Selected(Int_t)");
2165  break;
2166  case 6: // STATS
2167  fStatColor->Disconnect("ColorSelected(Pixel_t)");
2168  fStatStyle->Disconnect("PatternSelected(Style_t)");
2169  fStatTextColor->Disconnect("ColorSelected(Pixel_t)");
2170  fStatFontSize->Disconnect("ValueSet(Long_t)");
2171  fStatFont->Disconnect("Selected(Int_t)");
2172  fStatX->Disconnect("ValueSet(Long_t)");
2173  fStatY->Disconnect("ValueSet(Long_t)");
2174  fStatW->Disconnect("ValueSet(Long_t)");
2175  fStatH->Disconnect("ValueSet(Long_t)");
2176  fStatBorderSize->Disconnect("Selected(Int_t)");
2177  fOptStatName->Disconnect("Toggled(Bool_t)");
2178  fOptStatEntries->Disconnect("Toggled(Bool_t)");
2179  fOptStatOverflow->Disconnect("Toggled(Bool_t)");
2180  fOptStatMean->Disconnect("Toggled(Bool_t)");
2181  fOptStatUnderflow->Disconnect("Toggled(Bool_t)");
2182  fOptStatRMS->Disconnect("Toggled(Bool_t)");
2183  fOptStatSkewness->Disconnect("Toggled(Bool_t)");
2184  fOptStatIntegral->Disconnect("Toggled(Bool_t)");
2185  fOptStatKurtosis->Disconnect("Toggled(Bool_t)");
2186  fOptStatErrors->Disconnect("Toggled(Bool_t)");
2187  fStatFormat->Disconnect("TextChanged(const char *)");
2188  fOptFitValues->Disconnect("Toggled(Bool_t)");
2189  fOptFitErrors->Disconnect("Toggled(Bool_t)");
2190  fOptFitProbability->Disconnect("Toggled(Bool_t)");
2191  fOptFitChi->Disconnect("Toggled(Bool_t)");
2192  fFitFormat->Disconnect("TextChanged(const char *)");
2193  break;
2194  case 7: // PS / PDF
2195  fHeaderPS->Disconnect("TextChanged(const char *)");
2196  fTitlePS->Disconnect("TextChanged(const char *)");
2197  fColorModelPS->Disconnect("Clicked(Int_t)");
2198  fLineScalePS->Disconnect("ValueSet(Long_t)");
2199  fPaperSizePredef->Disconnect("Selected(Int_t)");
2200  fPaperSizeX->Disconnect("ValueSet(Long_t)");
2201  fPaperSizeY->Disconnect("ValueSet(Long_t)");
2202  break;
2203  }
2204 }
2205 
2206 ////////////////////////////////////////////////////////////////////////////////
2207 /// Called each time something is changed in the style editor. Thanks to
2208 /// this method, we can know if the style differs from the original style.
2209 
2211 {
2212  fStyleChanged = kTRUE;
2213 
2214  // Update the status bar.
2215  UpdateStatusBar();
2216 
2217  // Update the preview if the real time mode is selected.
2218  if (fRealTimePreview)
2220 }
2221 
2222 ////////////////////////////////////////////////////////////////////////////////
2223 /// Add the editor to the frame 'p'. It contains the tabs allowing the user
2224 /// to modify every data member of the current TStyle object.
2225 
2227 {
2228  TGLayoutHints *layout1 = new TGLayoutHints(kLHintsExpandX, 8, 8, 5, 5);
2229  fTrashListLayout->Add(layout1);
2230  TGLayoutHints *layout2 = new TGLayoutHints(kLHintsExpandX, 10, 10);
2231  fTrashListLayout->Add(layout2);
2232 
2233  fEditionFrame = new TGVerticalFrame(p);
2235 
2236  fEditionTab = new TGTab(fEditionFrame, 200, 150);
2237  fEditionTab->Associate(this);
2238  CreateTabGeneral(fEditionTab->AddTab("General"));
2239  CreateTabCanvas(fEditionTab->AddTab("Canvas"));
2240  CreateTabPad(fEditionTab->AddTab("Pad"));
2241  CreateTabHistos(fEditionTab->AddTab("Histograms"));
2242  CreateTabAxis(fEditionTab->AddTab("Axis"));
2243  CreateTabTitle(fEditionTab->AddTab("Title"));
2244  CreateTabStats(fEditionTab->AddTab("Stats"));
2245  CreateTabPsPdf(fEditionTab->AddTab("PS / PDF"));
2246  fEditionFrame->AddFrame(fEditionTab, layout1);
2247 
2249  fEditionHelp = new TGTextButton(fEditionButtonFrame, "He&lp", kEditButHelp);
2250  fEditionHelp->Associate(this);
2252  fEditionUpdatePreview = new TGTextButton(fEditionButtonFrame, "&Update Preview", kEditButUpPrev);
2256  fEditionReset = new TGTextButton(fEditionButtonFrame, "&Reset", kEditButReset);
2257  fEditionReset->Associate(this);
2260 
2261  p->AddFrame(fEditionFrame, layout1);
2262 
2263  fEditionHelp->SetToolTipText("Help about the current tab");
2264  fEditionUpdatePreview->SetToolTipText("Force the refresh of the preview window");
2265  fEditionReset->SetToolTipText("Reset the selected style");
2266 }
2267 
2268 ////////////////////////////////////////////////////////////////////////////////
2269 /// Add the tab 'General' to the editor.
2270 
2272 {
2273  TGLayoutHints *layout = new TGLayoutHints(kLHintsExpandX, 10, 21, 5, 5);
2274  fTrashListLayout->Add(layout);
2275 
2278  AddGeneralFill(h1);
2279  AddGeneralLine(h1);
2280  tab->AddFrame(h1, fLayoutExpandX);
2281 
2282  TGHorizontalFrame *h2 = new TGHorizontalFrame(tab);
2284  AddGeneralText(h2);
2285  TGVerticalFrame *v = new TGVerticalFrame(h2);
2287  AddGeneralMarker(v);
2288  TGHorizontalFrame *h3 = new TGHorizontalFrame(v);
2290  fScreenFactor = AddNumberEntry(h3, 0, 0, 0, kGeneralScreenFactor,
2291  "Screen factor:", 0, 6, TGNumberFormat::kNESRealOne,
2294  v->AddFrame(h3, layout);
2295  h2->AddFrame(v, fLayoutExpandXY);
2296  tab->AddFrame(h2, fLayoutExpandX);
2297 
2298  fScreenFactor->GetNumberEntry()->SetToolTipText("Coefficient for different screen's resolutions");
2299 }
2300 
2301 ////////////////////////////////////////////////////////////////////////////////
2302 /// Add the 'Fill' group frame to the 'General' tab.
2303 
2305 {
2306  TGLayoutHints *layout2 = new TGLayoutHints(kLHintsExpandX, 5, 0, 5, 5);
2307  fTrashListLayout->Add(layout2);
2308 
2309  TGGroupFrame *gf = new TGGroupFrame(f, "Fill");
2313  fFillColor = AddColorEntry(h1, kGeneralFillColor);
2314  fFillStyle = AddFillStyleEntry(h1, kGeneralFillStyle);
2315  gf->AddFrame(h1, fLayoutExpandX);
2316  AddTitle(gf, "Hatchings");
2317  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
2319  fHatchesLineWidth = AddLineWidthEntry(h2, kGeneralHatchesLineWidth);
2320  fHatchesSpacing = AddNumberEntry(h2, 0, 5, 0, kGeneralHatchesSpacing,
2321  "", 0, 5, TGNumberFormat::kNESRealOne,
2324  gf->AddFrame(h2, layout2);
2326 
2327 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
2328 // fFillColor->SetToolTipText("General fill color");
2329 // fFillStyle->SetToolTipText("General fill pattern");
2330  fHatchesSpacing->GetNumberEntry()->SetToolTipText("Spacing between the hatching's lines");
2331 }
2332 
2333 ////////////////////////////////////////////////////////////////////////////////
2334 /// Add the 'Line' group frame to the 'General' tab.
2335 
2337 {
2338  TGGroupFrame *gf = new TGGroupFrame(f, "Line");
2342  fLineColor = AddColorEntry(h, kGeneralLineColor);
2343  fLineWidth = AddLineWidthEntry(h, kGeneralLineWidth);
2344  gf->AddFrame(h, fLayoutExpandX);
2345  fLineStyle = AddLineStyleEntry(gf, kGeneralLineStyle);
2346  fLineStyleEdit = AddTextButton(gf, "Lines' Style Editor...", kGeneralLineStyleEdit);
2349 
2350 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
2351 // fLineColor->SetToolTipText("General line color");
2352 }
2353 
2354 ////////////////////////////////////////////////////////////////////////////////
2355 /// Add the 'Text' group frame to the 'General' tab.
2356 
2358 {
2359  TGGroupFrame *gf = new TGGroupFrame(f, "Text");
2363  fTextColor = AddColorEntry(h1, kGeneralTextColor);
2364  fTextFont = AddFontTypeEntry(h1, kGeneralTextFont);
2365  gf->AddFrame(h1, fLayoutExpandX);
2366  fTextAlign = AddTextAlignEntry(gf, kGeneralTextAlign);
2367  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
2369  fTextSizeInPixels = AddCheckButton(h2, "Pixels", kGeneralTextSizeInPixels);
2370  fTextSize = AddNumberEntry(h2, 21, 10, 0, kGeneralTextSize, "Size:", 0, 5,
2374  gf->AddFrame(h2, fLayoutExpandX);
2375  fTextAngle = AddNumberEntry(gf, 0, 0, 0, kGeneralTextAngle, "Angle:",
2378  TGNumberFormat::kNELLimitMinMax, -180, 180);
2380 
2381 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
2382 // fTextColor->SetToolTipText("General text color");
2383  fTextSizeInPixels->SetToolTipText("Set the text size in pixels if selected, otherwise - in % of pad.");
2384  fTextSize->GetNumberEntry()->SetToolTipText("General text size (in pixels or in % of pad)");
2385  fTextAngle->GetNumberEntry()->SetToolTipText("General text angle");
2386 }
2387 
2388 ////////////////////////////////////////////////////////////////////////////////
2389 /// Add the 'Marker' group frame to the 'General' tab.
2390 
2392 {
2393  TGGroupFrame *gf = new TGGroupFrame(f, "Marker");
2397  fMarkerColor = AddColorEntry(h, kGeneralMarkerColor);
2398  fMarkerStyle = AddMarkerStyleEntry(h, kGeneralMarkerStyle);
2399  fMarkerSize = AddMarkerSizeEntry(h, kGeneralMarkerSize);
2400  gf->AddFrame(h, fLayoutExpandX);
2402 
2403 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
2404 // fMarkerColor->SetToolTipText("Marker color");
2405 // fMarkerStyle->SetToolTipText("Marker shape");
2406 }
2407 
2408 ////////////////////////////////////////////////////////////////////////////////
2409 /// Add the tab 'Canvas' to the editor.
2410 
2412 {
2417  AddCanvasFill(v1);
2418  AddCanvasGeometry(v1);
2419  AddCanvasBorder(v1);
2420  h->AddFrame(v1, fLayoutExpandXY);
2421  TGVerticalFrame *v2 = new TGVerticalFrame(h);
2423  AddCanvasDate(v2);
2424  h->AddFrame(v2, fLayoutExpandXY);
2425  tab->AddFrame(h, fLayoutExpandX);
2426 }
2427 
2428 ////////////////////////////////////////////////////////////////////////////////
2429 /// Add the 'Fill' group frame to the 'Canvas' tab.
2430 
2432 {
2433  TGGroupFrame *gf = new TGGroupFrame(f, "Fill");
2437  fCanvasColor = AddColorEntry(h, kCanvasColor);
2438  gf->AddFrame(h, fLayoutExpandX);
2440 
2441 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
2442 // fCanvasColor->SetToolTipText("Color used to fill canvases");
2443 }
2444 
2445 ////////////////////////////////////////////////////////////////////////////////
2446 /// Add the 'Geometry' group frame to the 'Canvas' tab.
2447 
2449 {
2450  TGGroupFrame *gf = new TGGroupFrame(f, "Geometry");
2454  fCanvasDefX = AddNumberEntry(h1, 0, 9, 0, kCanvasDefX, "X:",
2458  fCanvasDefY = AddNumberEntry(h1, 7, 8, 0, kCanvasDefY, "Y:",
2462  gf->AddFrame(h1, fLayoutExpandX);
2463 
2464  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
2466  fCanvasDefW = AddNumberEntry(h2, 0, 7, 0, kCanvasDefW, "W:",
2470  fCanvasDefH = AddNumberEntry(h2, 7, 8, 0, kCanvasDefH, "H:",
2474  gf->AddFrame(h2, fLayoutExpandX);
2476 
2477  fCanvasDefX->GetNumberEntry()->SetToolTipText("Canvases' default abscissa");
2478  fCanvasDefY->GetNumberEntry()->SetToolTipText("Canvases' default ordinate");
2479  fCanvasDefW->GetNumberEntry()->SetToolTipText("Canvases' default width");
2480  fCanvasDefH->GetNumberEntry()->SetToolTipText("Canvases' default height");
2481 }
2482 
2483 ////////////////////////////////////////////////////////////////////////////////
2484 /// Add the 'Border' group frame to the 'Canvas' tab.
2485 
2487 {
2488  fCanvasBorderMode = AddBorderModeEntry(f, kCanvasBorderModeSunken, kCanvasBorderModeNone, kCanvasBorderModeRaised);
2490 }
2491 
2492 ////////////////////////////////////////////////////////////////////////////////
2493 /// Add the 'Date' group frame to the 'Canvas' tab.
2494 
2496 {
2497  TGLayoutHints *layout2 = new TGLayoutHints(kLHintsExpandX, 10);
2498  fTrashListLayout->Add(layout2);
2499 
2500  TGGroupFrame *gf = new TGGroupFrame(f, "Date");
2504  fOptDateBool = AddCheckButton(h1, "Show", kCanvasOptDateBool, 23);
2505  fAttDateTextColor = AddColorEntry(h1, kCanvasAttDateTextColor);
2506  gf->AddFrame(h1, fLayoutExpandX);
2507  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
2509  fAttDateTextSizeInPixels = AddCheckButton(h2, "Pixels", kCanvasAttDateTextSizeInPixels);
2510  fAttDateTextSize = AddNumberEntry(h2, 22, 10, 0, kCanvasAttDateTextSize, "Size:", 0, 5,
2514  gf->AddFrame(h2, fLayoutExpandX);
2515  fOptDateFormat = AddDateFormatEntry(gf, kCanvasOptDateFormat);
2516  fAttDateTextFont = AddFontTypeEntry(gf, kCanvasAttDateTextFont);
2517  fAttDateTextAlign = AddTextAlignEntry(gf, kCanvasAttDateTextAlign);
2518  fAttDateTextAngle = AddNumberEntry(gf, 0, 0, 0, kCanvasAttDateTextAngle,
2519  "Angle:", 0, 6, TGNumberFormat::kNESInteger,
2521  TGNumberFormat::kNELLimitMinMax, -180, 180);
2522  AddTitle(gf, "Position");
2523  TGVerticalFrame *h3 = new TGVerticalFrame(gf);
2525  fDateX = AddNumberEntry(h3, 0, 0, 0, kCanvasDateX, "X (% of Pad):",
2529  fDateY = AddNumberEntry(h3, 0, 0, 0, kCanvasDateY, "Y (% of Pad):",
2533  gf->AddFrame(h3, layout2);
2535 
2536  fOptDateBool->SetToolTipText("Show / Hide the date in canvases");
2537 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
2538 // fAttDateTextColor->SetToolTipText("Color of the date text");
2539  fAttDateTextSizeInPixels->SetToolTipText("Set the date text size in pixels if selected, otherwise - in % of pad");
2540  fAttDateTextSize->GetNumberEntry()->SetToolTipText("Date text size (in pixels or in % of pad)");
2541  fAttDateTextAngle->GetNumberEntry()->SetToolTipText("Date text angle");
2542  fDateX->GetNumberEntry()->SetToolTipText("Date abscissa in percent of pad");
2543  fDateY->GetNumberEntry()->SetToolTipText("Date ordinate in percent of pad");
2544 }
2545 
2546 ////////////////////////////////////////////////////////////////////////////////
2547 /// Add the tab 'Pad' to the editor.
2548 
2550 {
2553  AddPadMargin(h1);
2554  TGVerticalFrame *v = new TGVerticalFrame(h1);
2556  AddPadFill(v);
2557  AddPadTicks(v);
2558  h1->AddFrame(v, fLayoutExpandXY);
2559  tab->AddFrame(h1, fLayoutExpandX);
2560  TGHorizontalFrame *h2 = new TGHorizontalFrame(tab);
2562  AddPadBorder(h2);
2563  AddPadGrid(h2);
2564  tab->AddFrame(h2, fLayoutExpandX);
2565 }
2566 
2567 ////////////////////////////////////////////////////////////////////////////////
2568 /// Add the 'Margin' group frame to the 'Pad' tab.
2569 
2571 {
2572  TGGroupFrame *gf = new TGGroupFrame(f, "Margin (% of Pad)");
2576  fPadLeftMargin = AddNumberEntry(h1, 0, 5, 0, kPadLeftMargin, "Left:",
2580  fPadRightMargin = AddNumberEntry(h1, 0, 0, 0, kPadRightMargin, "Right:",
2584  gf->AddFrame(h1, fLayoutExpandXY);
2585  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
2587  fPadTopMargin = AddNumberEntry(h2, 0, 5, 0, kPadTopMargin, "Top:",
2591  fPadBottomMargin = AddNumberEntry(h2, 0, 0, 0, kPadBottomMargin, "Bottom:",
2595  gf->AddFrame(h2, fLayoutExpandXY);
2597 
2598  fPadLeftMargin->GetNumberEntry()->SetToolTipText("Pads' left margin");
2599  fPadRightMargin->GetNumberEntry()->SetToolTipText("Pads' right margin");
2600  fPadTopMargin->GetNumberEntry()->SetToolTipText("Pads' top margin");
2601  fPadBottomMargin->GetNumberEntry()->SetToolTipText("Pads' bottom margin");
2602 }
2603 
2604 ////////////////////////////////////////////////////////////////////////////////
2605 /// Add the 'Border' group frame to the 'Pad' tab.
2606 
2608 {
2609  fPadBorderMode = AddBorderModeEntry(f, kPadBorderModeSunken, kPadBorderModeNone, kPadBorderModeRaised);
2610  fPadBorderSize = AddLineWidthEntry(fPadBorderMode, kPadBorderSize);
2611 }
2612 
2613 ////////////////////////////////////////////////////////////////////////////////
2614 /// Add the 'Fill' group frame to the 'Pad' tab.
2615 
2617 {
2618  TGGroupFrame *gf = new TGGroupFrame(f, "Fill");
2622  fPadColor = AddColorEntry(h, kPadColor);
2623  gf->AddFrame(h, fLayoutExpandX);
2625 
2626 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
2627 // fPadColor->SetToolTipText("Color used to fill pads");
2628 }
2629 
2630 ////////////////////////////////////////////////////////////////////////////////
2631 /// Add the 'Ticks' group frame to the 'Pad' tab.
2632 
2634 {
2635  TGGroupFrame *gf = new TGGroupFrame(f, "Ticks");
2641  fPadTickX = AddCheckButton(h1, "Along X", kPadTickX);
2642  h->AddFrame(h1, fLayoutExpandX);
2643  TGHorizontalFrame *h2 = new TGHorizontalFrame(h);
2645  fPadTickY = AddCheckButton(h2, "Along Y", kPadTickY);
2646  h->AddFrame(h2, fLayoutExpandX);
2647  gf->AddFrame(h, fLayoutExpandX);
2649 
2650  fPadTickX->SetToolTipText("Show / Hide the ticks along X");
2651  fPadTickY->SetToolTipText("Show / Hide the ticks along Y");
2652 }
2653 
2654 ////////////////////////////////////////////////////////////////////////////////
2655 /// Add the 'Grid' group frame to the 'Pad' tab.
2656 
2658 {
2659  TGGroupFrame *gf = new TGGroupFrame(f, "Grid");
2663  TGHorizontalFrame *h10 = new TGHorizontalFrame(h1);
2664  fTrashListFrame->AddFirst(h10);
2665  fPadGridX = AddCheckButton(h10, "Along X", kPadGridX);
2666  h1->AddFrame(h10, fLayoutExpandX);
2667  TGHorizontalFrame *h20 = new TGHorizontalFrame(h1);
2668  fTrashListFrame->AddFirst(h20);
2669  fPadGridY = AddCheckButton(h20, "Along Y", kPadGridY);
2670  h1->AddFrame(h20, fLayoutExpandX);
2671  gf->AddFrame(h1, fLayoutExpandX);
2672  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
2674  fGridColor = AddColorEntry(h2, kPadGridColor);
2675  fGridWidth = AddLineWidthEntry(h2, kPadGridWidth);
2676  gf->AddFrame(h2, fLayoutExpandX);
2677  fGridStyle = AddLineStyleEntry(gf, kPadGridStyle);
2679 
2680 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
2681 // fGridColor->SetToolTipText("Line color for the grid");
2682  fPadGridX->SetToolTipText("Show / Hide the grid along X");
2683  fPadGridY->SetToolTipText("Show / Hide the grid along Y");
2684 }
2685 
2686 ////////////////////////////////////////////////////////////////////////////////
2687 /// Add the tab 'Histos' to the editor.
2688 
2690 {
2691  fHistosTab = new TGTab(tab, 1, 1);
2692  fHistosTab->Associate(this);
2697 }
2698 
2699 ////////////////////////////////////////////////////////////////////////////////
2700 /// Add the sub-tab 'Histos' to the tab 'Histos'.
2701 
2703 {
2706  AddHistosHistosFill(h1);
2708  tab->AddFrame(h1, fLayoutExpandX);
2709 
2710  TGHorizontalFrame *h2 = new TGHorizontalFrame(tab);
2712  AddHistosHistosLine(h2);
2713  AddHistosHistosAxis(h2);
2714  tab->AddFrame(h2, fLayoutExpandX);
2715 
2716  TGHorizontalFrame *h3 = new TGHorizontalFrame(tab);
2718  AddHistosHistosBar(h3);
2720  tab->AddFrame(h3, fLayoutExpandX);
2721 }
2722 
2723 ////////////////////////////////////////////////////////////////////////////////
2724 /// Add the 'Fill' group frame to the 'Histos - Histos' tab.
2725 
2727 {
2728  TGGroupFrame *gf = new TGGroupFrame(f, "Fill");
2732  fHistFillColor = AddColorEntry(h1, kHistFillColor);
2733  fHistFillStyle = AddFillStyleEntry(h1, kHistFillStyle);
2734  gf->AddFrame(h1, fLayoutExpandX);
2736 
2737 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
2738 // fHistFillColor->SetToolTipText("Color used to fill histograms");
2739 // fHistFillStyle->SetToolTipText("Pattern used to fill histograms");
2740 }
2741 
2742 ////////////////////////////////////////////////////////////////////////////////
2743 /// Add the 'Line' group frame to the 'Histos - Histos' tab.
2744 
2746 {
2747  TGGroupFrame *gf = new TGGroupFrame(f, "Line");
2751  fHistLineColor = AddColorEntry(h, kHistLineColor);
2752  fHistLineWidth = AddLineWidthEntry(h, kHistLineWidth);
2753  gf->AddFrame(h, fLayoutExpandX);
2754  fHistLineStyle = AddLineStyleEntry(gf, kHistLineStyle);
2756 
2757 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
2758 // fHistLineColor->SetToolTipText("Color used for histograms' lines");
2759 }
2760 
2761 ////////////////////////////////////////////////////////////////////////////////
2762 /// Add the 'Bar' group frame to the 'Histos - Histos' tab.
2763 
2765 {
2766  TGGroupFrame *gf = new TGGroupFrame(f, "Bar");
2770  fBarWidth = AddNumberEntry(h, 0, 5, 0, kHistBarWidth, "W:",
2774  fBarOffset = AddNumberEntry(h, 8, 5, 0, kHistBarOffset, "O:",
2778  gf->AddFrame(h, fLayoutExpandX);
2780 
2781  fBarWidth->GetNumberEntry()->SetToolTipText("Width of bars");
2782  fBarOffset->GetNumberEntry()->SetToolTipText("Offset of bars");
2783 }
2784 
2785 ////////////////////////////////////////////////////////////////////////////////
2786 /// Add the 'Contours' group frame to the 'Histos - Histos' tab.
2787 
2789 {
2790  TGGroupFrame *gf = new TGGroupFrame(f, "Contours");
2792  fNumberContours = AddNumberEntry(gf, 0, 0, 0, kHistNumberContours, "Number:",
2797 
2798  fNumberContours->GetNumberEntry()->SetToolTipText("Number of level lines to draw");
2799 }
2800 
2801 ////////////////////////////////////////////////////////////////////////////////
2802 /// Add the 'Axis' group frame to the 'Histos - Histos' tab.
2803 
2805 {
2806  TGGroupFrame *gf = new TGGroupFrame(f, "Axis");
2808  fHistMinimumZero = AddCheckButton(gf, "Minimum zero", kHistMinimumZero);
2809  fPaintTextFormat = AddTextEntry(gf, "Paint format:", kHistPaintTextFormat);
2811 
2812  fHistMinimumZero->SetToolTipText("Set to zero / Compute the minimum of axis range");
2813  fPaintTextFormat->SetToolTipText("Paint format of the axis labels in histograms");
2814 }
2815 
2816 ////////////////////////////////////////////////////////////////////////////////
2817 /// Add the '3D Cylindrical' group frame to the 'Histos - Histos' tab.
2818 
2820 {
2821  TGGroupFrame *gf = new TGGroupFrame(f, "3D Cylindrical (%)");
2823  fLegoInnerR = AddNumberEntry(gf, 0, 0, 0, kHistLegoInnerR, "Inner radius:",
2828 
2829  fLegoInnerR->GetNumberEntry()->SetToolTipText("Percent of radius allocated to the tube");
2830 }
2831 
2832 ////////////////////////////////////////////////////////////////////////////////
2833 /// Add the sub-tab 'Frames' to the tab 'Histos'.
2834 
2836 {
2837  TGLayoutHints *layout = new TGLayoutHints(kLHintsExpandX, 10, 10, 0, 13);
2838  fTrashListLayout->Add(layout);
2839 
2842 
2843  TGVerticalFrame *v1 = new TGVerticalFrame(h1);
2845  AddHistosFramesFill(v1);
2846  AddHistosFramesLine(v1);
2847  h1->AddFrame(v1, fLayoutExpandXY);
2848 
2849  TGVerticalFrame *v2 = new TGVerticalFrame(h1);
2852  TGHorizontalFrame *h2 = new TGHorizontalFrame(v2);
2854  fPaletteEdit = AddTextButton(h2, "Palette Editor...", kFramePaletteEdit);
2856  v2->AddFrame(h2, layout);
2857  h1->AddFrame(v2, fLayoutExpandXY);
2858 
2859  tab->AddFrame(h1, fLayoutExpandX);
2860 }
2861 
2862 ////////////////////////////////////////////////////////////////////////////////
2863 /// Add the 'Fill' group frame to the 'Histos - Frames' tab.
2864 
2866 {
2867  TGGroupFrame *gf = new TGGroupFrame(f, "Fill");
2871  fFrameFillColor = AddColorEntry(h1, kFrameFillColor);
2872  fFrameFillStyle = AddFillStyleEntry(h1, kFrameFillStyle);
2873  gf->AddFrame(h1, fLayoutExpandX);
2875 
2876 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
2877 // fFrameFillColor->SetToolTipText("Color used to fill frames");
2878 // fFrameFillStyle->SetToolTipText("Pattern used to fill frames");
2879 }
2880 
2881 ////////////////////////////////////////////////////////////////////////////////
2882 /// Add the 'Line' group frame to the 'Histos - Frames' tab.
2883 
2885 {
2886  TGGroupFrame *gf = new TGGroupFrame(f, "Line");
2890  fFrameLineColor = AddColorEntry(h, kFrameLineColor);
2891  fFrameLineWidth = AddLineWidthEntry(h, kFrameLineWidth);
2892  gf->AddFrame(h, fLayoutExpandX);
2893  fFrameLineStyle = AddLineStyleEntry(gf, kFrameLineStyle);
2895 
2896 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
2897 // fFrameLineColor->SetToolTipText("Color of lines in frames");
2898 }
2899 
2900 ////////////////////////////////////////////////////////////////////////////////
2901 /// Add the 'Border' group frame to the 'Histos - Frames' tab.
2902 
2904 {
2905  fFrameBorderMode = AddBorderModeEntry(f, kFrameBorderModeSunken, kFrameBorderModeNone, kFrameBorderModeRaised);
2907 }
2908 
2909 ////////////////////////////////////////////////////////////////////////////////
2910 /// Add the sub-tab 'Graphs' to the tab 'Histos'.
2911 
2913 {
2918  tab->AddFrame(h, fLayoutExpandX);
2919  AddHistosGraphsBorder(tab);
2920 }
2921 
2922 ////////////////////////////////////////////////////////////////////////////////
2923 /// Add the 'Line' group frame to the 'Histos - Graphs' tab.
2924 
2926 {
2927  TGGroupFrame *gf = new TGGroupFrame(f, "Line");
2931  fFuncColor = AddColorEntry(h, kGraphsFuncColor);
2932  fFuncWidth = AddLineWidthEntry(h, kGraphsFuncWidth);
2933  gf->AddFrame(h, fLayoutExpandX);
2934  fFuncStyle = AddLineStyleEntry(gf, kGraphsFuncStyle);
2936 
2937 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
2938 // fFuncColor->SetToolTipText("Color of curves in graphs");
2939 }
2940 
2941 ////////////////////////////////////////////////////////////////////////////////
2942 /// Add the 'Draw Border' check button to the 'Histos - Graphs' tab.
2943 
2945 {
2946  TGLayoutHints *layout = new TGLayoutHints(kLHintsExpandX, 10, 21, 5, 5);
2947  fTrashListLayout->Add(layout);
2948 
2951  fDrawBorder = AddCheckButton(h, "Draw Border (for Filled Function)", kGraphsDrawBorder);
2952  f->AddFrame(h, layout);
2953 
2954  fDrawBorder->SetToolTipText("Show / Hide the border of filled functions");
2955 }
2956 
2957 ////////////////////////////////////////////////////////////////////////////////
2958 /// Add the 'Errors' group frame to the 'Histos - Graphs' tab.
2959 
2961 {
2962  TGGroupFrame *gf = new TGGroupFrame(f, "Errors");
2964  fEndErrorSize = AddNumberEntry(gf, 0, 0, 0, kGraphsEndErrorSize,
2965  "End error size:", 0, 4, TGNumberFormat::kNESRealOne,
2968  fErrorX = AddNumberEntry(gf, 0, 0, 0, kGraphsErrorX, "Error X (% of bin):",
2973 
2974  fEndErrorSize->GetNumberEntry()->SetToolTipText("Size of lines drawn at the end of error bars");
2975  fErrorX->GetNumberEntry()->SetToolTipText("Percent of the bin width to use for errors along X");
2976 }
2977 
2978 ////////////////////////////////////////////////////////////////////////////////
2979 /// Add the tab 'Axis' to the editor.
2980 
2982 {
2983  TGLayoutHints *layout =
2984  new TGLayoutHints(kLHintsNormal, 10, 13, 3);
2985  fTrashListLayout->Add(layout);
2986 
2989 
2990  TGVerticalFrame *h3 = new TGVerticalFrame(h);
2992  fStripDecimals = AddCheckButton(h3, "Decimal labels' part", kAxisStripDecimals, 0, 8);
2993  TGVerticalFrame *space = new TGVerticalFrame(h3);
2994  fTrashListFrame->AddFirst(space);
2995  h3->AddFrame(space, fLayoutExpandXY);
2996  fApplyOnXYZ = AddTextButton(h3, "Apply on XYZ", kAxisApplyOnXYZ);
2997  h->AddFrame(h3, layout);
2998 
2999  TGGroupFrame *gf = new TGGroupFrame(h, "Date/Time Offset");
3001  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3003  fTimeOffsetDate = AddNumberEntry(h2, 0, 13, 10, kAxisTimeOffsetDate, "",
3007  fTimeOffsetTime = AddNumberEntry(h2, 0, 15, 0, kAxisTimeOffsetTime, "",
3011  gf->AddFrame(h2, fLayoutExpandX);
3013  tab->AddFrame(h, fLayoutExpandX);
3014 
3015  fAxisTab = new TGTab(tab);
3016  fAxisTab->Associate(this);
3017  CreateTabAxisX(fAxisTab->AddTab("X axis"));
3018  CreateTabAxisY(fAxisTab->AddTab("Y axis"));
3019  CreateTabAxisZ(fAxisTab->AddTab("Z axis"));
3021 
3022  fStripDecimals->SetToolTipText("Draw / Hide the decimal part of labels");
3023  fApplyOnXYZ->SetToolTipText("Apply settings of the currently selected axis on XYZ");
3024  fTimeOffsetDate->GetNumberEntry()->SetToolTipText("Date offset for axis (dd/mm/yyyy)");
3025  fTimeOffsetTime->GetNumberEntry()->SetToolTipText("Time offset for axis (hh/mm/ss)");
3026 }
3027 
3028 ////////////////////////////////////////////////////////////////////////////////
3029 /// Add the sub-tab 'X Axis' to the tab 'Axis'.
3030 
3032 {
3035  AddAxisXLine(h1);
3036  AddAxisXDivisions(h1);
3037  tab->AddFrame(h1, fLayoutExpandX);
3038 
3039  TGHorizontalFrame *h2 = new TGHorizontalFrame(tab);
3041  AddAxisXTitle(h2);
3042  AddAxisXLabels(h2);
3043  tab->AddFrame(h2, fLayoutExpandX);
3044 }
3045 
3046 ////////////////////////////////////////////////////////////////////////////////
3047 /// Add the 'Line' group frame to the 'Axis - X Axis' tab.
3048 
3050 {
3051  TGLayoutHints *layout = new TGLayoutHints(kLHintsExpandX, 20);
3052  fTrashListLayout->Add(layout);
3053 
3054  TGGroupFrame *gf = new TGGroupFrame(f, "Line");
3058  fXAxisColor = AddColorEntry(h, kAxisXAxisColor);
3059  TGHorizontalFrame *h2 = new TGHorizontalFrame(h);
3061  fXTickLength = AddNumberEntry(h2, 3, 8, 0, kAxisXTickLength, "Ticks:",
3065  h->AddFrame(h2, layout);
3066  gf->AddFrame(h, fLayoutExpandX);
3067  fOptLogx = AddCheckButton(gf, "Logarithmic scale", kAxisOptLogx);
3069 
3070 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
3071 // fXAxisColor->SetToolTipText("Color of axis' line");
3072  fXTickLength->GetNumberEntry()->SetToolTipText("Set the ticks' length");
3073  fOptLogx->SetToolTipText("Draw logarithmic scale");
3074 }
3075 
3076 ////////////////////////////////////////////////////////////////////////////////
3077 /// Add the 'Title' group frame to the 'Axis - X Axis' tab.
3078 
3080 {
3081  TGGroupFrame *gf = new TGGroupFrame(f, "Title");
3085  fXTitleColor = AddColorEntry(h1, kAxisXTitleColor);
3086  fXTitleFont = AddFontTypeEntry(h1, kAxisXTitleFont);
3087  gf->AddFrame(h1, fLayoutExpandX);
3088  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3090  fXTitleSizeInPixels = AddCheckButton(h2, "Pixels", kAxisXTitleSizeInPixels);
3091  fXTitleSize = AddNumberEntry(h2, 21, 8, 0, kAxisXTitleSize, "Size:", 0, 5,
3095  gf->AddFrame(h2, fLayoutExpandX);
3096  fXTitleOffset = AddNumberEntry(gf, 68, 8, 0, kAxisXTitleOffset, "Offset:",
3101 
3102 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
3103 // fXTitleColor->SetToolTipText("Color of axis' title");
3104  fXTitleSizeInPixels->SetToolTipText("Set the title size in pixels if selected, otherwise - in % of pad");
3105  fXTitleSize->GetNumberEntry()->SetToolTipText("Title size (in pixels or in % of pad)");
3106  fXTitleOffset->GetNumberEntry()->SetToolTipText("Offset between axis and title");
3107 }
3108 
3109 ////////////////////////////////////////////////////////////////////////////////
3110 /// Add the 'Divisions' group frame to the 'Axis - X Axis' tab.
3111 
3113 {
3114  TGGroupFrame *gf = new TGGroupFrame(f, "Divisions");
3116 
3119  fXNdivSubSub = AddNumberEntry(h1, 0, 0, 0, kAxisXNdivSubSub, "",
3123  fXNdivSub = AddNumberEntry(h1, 0, 18, 0, kAxisXNdivSub, "",
3127  fXNdivMain = AddNumberEntry(h1, 0, 18, 0, kAxisXNdivMain, "",
3131  gf->AddFrame(h1, fLayoutExpandX);
3132 
3133  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3135  fXNdivisionsOptimize = AddCheckButton(h2, "Optimize", kAxisXNdivisionsOptimize);
3136  gf->AddFrame(h2, fLayoutExpandX);
3138 
3139  fXNdivMain->GetNumberEntry()->SetToolTipText("Primary axis divisions");
3140  fXNdivSub->GetNumberEntry()->SetToolTipText("Secondary axis divisions");
3141  fXNdivSubSub->GetNumberEntry()->SetToolTipText("Tertiary axis divisions");
3142  fXNdivisionsOptimize->SetToolTipText("Optimize the number of axis divisions if selected");
3143 }
3144 
3145 ////////////////////////////////////////////////////////////////////////////////
3146 /// Add the 'Labels' group frame to the 'Axis - X Axis' tab.
3147 
3149 {
3150  TGGroupFrame *gf = new TGGroupFrame(f, "Labels");
3154  fXLabelColor = AddColorEntry(h1, kAxisXLabelColor);
3155  fXLabelFont = AddFontTypeEntry(h1, kAxisXLabelFont);
3156  gf->AddFrame(h1, fLayoutExpandX);
3157  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3159  fXLabelSizeInPixels = AddCheckButton(h2, "Pixels", kAxisXLabelSizeInPixels);
3160  fXLabelSize = AddNumberEntry(h2, 22, 8, 0, kAxisXLabelSize, "Size:", 0, 5,
3164  gf->AddFrame(h2, fLayoutExpandX);
3165  fXLabelOffset = AddNumberEntry(gf, 69, 8, 0, kAxisXTitleOffset, "Offset:",
3170 
3171 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
3172 // fXLabelColor->SetToolTipText("Color of axis' labels");
3173  fXLabelSizeInPixels->SetToolTipText("Set the labels size in pixels if selected, otherwise - in % of pad");
3174  fXLabelSize->GetNumberEntry()->SetToolTipText("Label size (in pixels or in % of pad)");
3175  fXLabelOffset->GetNumberEntry()->SetToolTipText("Offset between axis and labels");
3176 }
3177 
3178 ////////////////////////////////////////////////////////////////////////////////
3179 /// Add the sub-tab 'Y Axis' to the tab 'Axis'.
3180 
3182 {
3185  AddAxisYLine(h1);
3186  AddAxisYDivisions(h1);
3187  tab->AddFrame(h1, fLayoutExpandX);
3188 
3189  TGHorizontalFrame *h2 = new TGHorizontalFrame(tab);
3191  AddAxisYTitle(h2);
3192  AddAxisYLabels(h2);
3193  tab->AddFrame(h2, fLayoutExpandX);
3194 }
3195 
3196 ////////////////////////////////////////////////////////////////////////////////
3197 /// Add the 'Line' group frame to the 'Axis - Y Axis' tab.
3198 
3200 {
3201  TGLayoutHints *layout = new TGLayoutHints(kLHintsExpandX, 20);
3202  fTrashListLayout->Add(layout);
3203 
3204  TGGroupFrame *gf = new TGGroupFrame(f, "Line");
3208  fYAxisColor = AddColorEntry(h, kAxisYAxisColor);
3209  TGHorizontalFrame *h2 = new TGHorizontalFrame(h);
3211  fYTickLength = AddNumberEntry(h2, 3, 8, 0, kAxisYTickLength, "Ticks:",
3215  h->AddFrame(h2, layout);
3216  gf->AddFrame(h, fLayoutExpandX);
3217  fOptLogy = AddCheckButton(gf, "Logarithmic scale", kAxisOptLogy);
3219 
3220 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
3221 // fYAxisColor->SetToolTipText("Color of axis' line");
3222  fYTickLength->GetNumberEntry()->SetToolTipText("Set the ticks' length");
3223  fOptLogy->SetToolTipText("Draw logarithmic scale");
3224 }
3225 
3226 ////////////////////////////////////////////////////////////////////////////////
3227 /// Add the 'Title' group frame to the 'Axis - Y Axis' tab.
3228 
3230 {
3231  TGGroupFrame *gf = new TGGroupFrame(f, "Title");
3235  fYTitleColor = AddColorEntry(h1, kAxisYTitleColor);
3236  fYTitleFont = AddFontTypeEntry(h1, kAxisYTitleFont);
3237  gf->AddFrame(h1, fLayoutExpandX);
3238  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3240  fYTitleSizeInPixels = AddCheckButton(h2, "Pixels", kAxisYTitleSizeInPixels);
3241  fYTitleSize = AddNumberEntry(h2, 21, 8, 0, kAxisYTitleSize, "Size:", 0, 5,
3245  gf->AddFrame(h2, fLayoutExpandX);
3246  fYTitleOffset = AddNumberEntry(gf, 68, 8, 0, kAxisYTitleOffset, "Offset:",
3251 
3252 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
3253 // fYTitleColor->SetToolTipText("Color of axis' title");
3254  fYTitleSizeInPixels->SetToolTipText("Set the title size in pixels if selected, otherwise - in % of pad");
3255  fYTitleSize->GetNumberEntry()->SetToolTipText("Title size (in pixels or in % of pad)");
3256  fYTitleOffset->GetNumberEntry()->SetToolTipText("Offset between axis and title");
3257 }
3258 
3259 ////////////////////////////////////////////////////////////////////////////////
3260 /// Add the 'Divisions' group frame to the 'Axis - Y Axis' tab.
3261 
3263 {
3264  TGGroupFrame *gf = new TGGroupFrame(f, "Divisions");
3268  fYNdivSubSub = AddNumberEntry(h1, 0, 0, 0, kAxisYNdivSubSub, "",
3272  fYNdivSub = AddNumberEntry(h1, 0, 18, 0, kAxisYNdivSub, "",
3276  fYNdivMain = AddNumberEntry(h1, 0, 18, 0, kAxisYNdivMain, "",
3280  gf->AddFrame(h1, fLayoutExpandX);
3281 
3282  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3284  fYNdivisionsOptimize = AddCheckButton(h2, "Optimize", kAxisYNdivisionsOptimize);
3285  gf->AddFrame(h2, fLayoutExpandX);
3287 
3288  fYNdivMain->GetNumberEntry()->SetToolTipText("Primary axis divisions");
3289  fYNdivSub->GetNumberEntry()->SetToolTipText("Secondary axis divisions");
3290  fYNdivSubSub->GetNumberEntry()->SetToolTipText("Tertiary axis divisions");
3291  fYNdivisionsOptimize->SetToolTipText("Optimize the number of axis divisions");
3292 }
3293 
3294 ////////////////////////////////////////////////////////////////////////////////
3295 /// Add the 'Labels' group frame to the 'Axis - Y Axis' tab.
3296 
3298 {
3299  TGGroupFrame *gf = new TGGroupFrame(f, "Labels");
3303  fYLabelColor = AddColorEntry(h1, kAxisYLabelColor);
3304  fYLabelFont = AddFontTypeEntry(h1, kAxisYLabelFont);
3305  gf->AddFrame(h1, fLayoutExpandX);
3306 
3307  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3309  fYLabelSizeInPixels = AddCheckButton(h2, "Pixels", kAxisYLabelSizeInPixels);
3310  fYLabelSize = AddNumberEntry(h2, 22, 8, 0, kAxisYLabelSize, "Size:", 0, 5,
3314  gf->AddFrame(h2, fLayoutExpandX);
3315  fYLabelOffset = AddNumberEntry(gf, 69, 8, 0, kAxisYTitleOffset, "Offset:",
3320 
3321 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
3322 // fYLabelColor->SetToolTipText("Color of axis' labels");
3323  fYLabelSizeInPixels->SetToolTipText("Set the labels size in pixels if selected, otherwise - in % of pad");
3324  fYLabelSize->GetNumberEntry()->SetToolTipText("Label size (in pixels or in % of pad)");
3325  fYLabelOffset->GetNumberEntry()->SetToolTipText("Offset between axis and labels");
3326 }
3327 
3328 ////////////////////////////////////////////////////////////////////////////////
3329 /// Add the sub-tab 'Z Axis' to the tab 'Axis'.
3330 
3332 {
3335  AddAxisZLine(h1);
3336  AddAxisZDivisions(h1);
3337  tab->AddFrame(h1, fLayoutExpandX);
3338 
3339  TGHorizontalFrame *h2 = new TGHorizontalFrame(tab);
3341  AddAxisZTitle(h2);
3342  AddAxisZLabels(h2);
3343  tab->AddFrame(h2, fLayoutExpandX);
3344 }
3345 
3346 ////////////////////////////////////////////////////////////////////////////////
3347 /// Add the 'Line' group frame to the 'Axis - Z Axis' tab.
3348 
3350 {
3351  TGLayoutHints *layout = new TGLayoutHints(kLHintsExpandX, 20);
3352  fTrashListLayout->Add(layout);
3353 
3354  TGGroupFrame *gf = new TGGroupFrame(f, "Line");
3358  fZAxisColor = AddColorEntry(h, kAxisZAxisColor);
3359  TGHorizontalFrame *h2 = new TGHorizontalFrame(h);
3361  fZTickLength = AddNumberEntry(h2, 3, 8, 0, kAxisZTickLength, "Ticks:",
3365  h->AddFrame(h2, layout);
3366  gf->AddFrame(h, fLayoutExpandX);
3367  fOptLogz = AddCheckButton(gf, "Logarithmic scale", kAxisOptLogz);
3369 
3370 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
3371 // fZAxisColor->SetToolTipText("Color of axis' line");
3372  fZTickLength->GetNumberEntry()->SetToolTipText("Set the ticks' length");
3373  fOptLogz->SetToolTipText("Draw logarithmic scale");
3374 }
3375 
3376 ////////////////////////////////////////////////////////////////////////////////
3377 /// Add the 'Title' group frame to the 'Axis - Z Axis' tab.
3378 
3380 {
3381  TGGroupFrame *gf = new TGGroupFrame(f, "Title");
3385  fZTitleColor = AddColorEntry(h1, kAxisZTitleColor);
3386  fZTitleFont = AddFontTypeEntry(h1, kAxisZTitleFont);
3387  gf->AddFrame(h1, fLayoutExpandX);
3388 
3389  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3391  fZTitleSizeInPixels = AddCheckButton(h2, "Pixels", kAxisZTitleSizeInPixels);
3392  fZTitleSize = AddNumberEntry(h2, 21, 8, 0, kAxisZTitleSize, "Size:", 0, 5,
3396  gf->AddFrame(h2, fLayoutExpandX);
3397  fZTitleOffset = AddNumberEntry(gf, 68, 8, 0, kAxisZTitleOffset, "Offset:",
3402 
3403 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
3404 // fZTitleColor->SetToolTipText("Color of axis' title");
3405  fZTitleSizeInPixels->SetToolTipText("Set the title size in pixels if selected, otherwise - in % of pad");
3406  fZTitleSize->GetNumberEntry()->SetToolTipText("Title size (in pixels or in % of pad)");
3407  fZTitleOffset->GetNumberEntry()->SetToolTipText("Offset between axis and title");
3408 }
3409 
3410 ////////////////////////////////////////////////////////////////////////////////
3411 /// Add the 'Divisions' group frame to the 'Axis - Z Axis' tab.
3412 
3414 {
3415  TGGroupFrame *gf = new TGGroupFrame(f, "Divisions");
3419  fZNdivSubSub = AddNumberEntry(h1, 0, 0, 0, kAxisZNdivSubSub, "",
3423  fZNdivSub = AddNumberEntry(h1, 0, 18, 0, kAxisZNdivSub, "",
3427  fZNdivMain = AddNumberEntry(h1, 0, 18, 0, kAxisZNdivMain, "",
3431  gf->AddFrame(h1, fLayoutExpandX);
3432 
3433  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3435  fZNdivisionsOptimize = AddCheckButton(h2, "Optimize", kAxisZNdivisionsOptimize);
3436  gf->AddFrame(h2, fLayoutExpandX);
3438 
3439  fZNdivMain->GetNumberEntry()->SetToolTipText("Primary axis divisions");
3440  fZNdivSub->GetNumberEntry()->SetToolTipText("Secondary axis divisions");
3441  fZNdivSubSub->GetNumberEntry()->SetToolTipText("Tertiary axis divisions");
3442  fZNdivisionsOptimize->SetToolTipText("Optimize the number of axis divisions");
3443 }
3444 
3445 ////////////////////////////////////////////////////////////////////////////////
3446 /// Add the 'Labels' group frame to the 'Axis - Z Axis' tab.
3447 
3449 {
3450  TGGroupFrame *gf = new TGGroupFrame(f, "Labels");
3454  fZLabelColor = AddColorEntry(h1, kAxisZLabelColor);
3455  fZLabelFont = AddFontTypeEntry(h1, kAxisZLabelFont);
3456  gf->AddFrame(h1, fLayoutExpandX);
3457 
3458  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3460  fZLabelSizeInPixels = AddCheckButton(h2, "Pixels", kAxisZLabelSizeInPixels);
3461  fZLabelSize = AddNumberEntry(h2, 22, 8, 0, kAxisZLabelSize, "Size:", 0, 5,
3465  gf->AddFrame(h2, fLayoutExpandX);
3466  fZLabelOffset = AddNumberEntry(gf, 69, 8, 0, kAxisZTitleOffset, "Offset:",
3471 
3472 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
3473 // fZLabelColor->SetToolTipText("Color of axis' labels");
3474  fZLabelSizeInPixels->SetToolTipText("Set the labels size in pixels if selected, otherwise - in % of pad");
3475  fZLabelSize->GetNumberEntry()->SetToolTipText("Label size (in pixels or in % of pad)");
3476  fZLabelOffset->GetNumberEntry()->SetToolTipText("Offset between axis and labels");
3477 }
3478 
3479 ////////////////////////////////////////////////////////////////////////////////
3480 /// Add the tab 'Title' to the editor.
3481 
3483 {
3484  TGLayoutHints *layout = new TGLayoutHints(kLHintsExpandX, 10, 20, 5, 5);
3485  fTrashListLayout->Add(layout);
3486 
3489  fOptTitle = AddCheckButton(h1, "Show title", kTitleOptTitle);
3490  tab->AddFrame(h1, layout);
3491 
3492  TGHorizontalFrame *h2 = new TGHorizontalFrame(tab);
3494  TGVerticalFrame *v1 = new TGVerticalFrame(h2);
3496  AddTitleFill(v1);
3497  AddTitleText(v1);
3498  h2->AddFrame(v1, fLayoutExpandXY);
3499  TGVerticalFrame *v2 = new TGVerticalFrame(h2);
3501  AddTitleBorderSize(v2);
3502  AddTitleGeometry(v2);
3503  h2->AddFrame(v2, fLayoutExpandXY);
3504  tab->AddFrame(h2, fLayoutExpandX);
3505 
3506  fOptTitle->SetToolTipText("Show / Hide the title pave");
3507 }
3508 
3509 ////////////////////////////////////////////////////////////////////////////////
3510 /// Add the 'Fill' group frame to the 'Title' tab.
3511 
3513 {
3514  TGGroupFrame *gf = new TGGroupFrame(f, "Fill");
3518  fTitleColor = AddColorEntry(h1, kTitleFillColor);
3519  fTitleStyle = AddFillStyleEntry(h1, kTitleStyle);
3520  gf->AddFrame(h1, fLayoutExpandX);
3522 
3523 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
3524 // fTitleColor->SetToolTipText("Color used to fill the title pave");
3525 // fTitleStyle->SetToolTipText("Pattern used to fill the title pave");
3526 }
3527 
3528 ////////////////////////////////////////////////////////////////////////////////
3529 /// Add the 'Shadow' group frame to the 'Title' tab.
3530 
3532 {
3533  TGLayoutHints *layout1 = new TGLayoutHints(kLHintsNormal, 0, 24, 6);
3534  fTrashListLayout->Add(layout1);
3535  TGLayoutHints *layout2 = new TGLayoutHints(kLHintsNormal, 0, 5, 6);
3536  fTrashListLayout->Add(layout2);
3537  TGLayoutHints *layout3 = new TGLayoutHints(kLHintsExpandX, 0, 0, 3, 3);
3538  fTrashListLayout->Add(layout3);
3539 
3540  TGGroupFrame *gf = new TGGroupFrame(f, "Shadow");
3544  fTitleBorderSizeLabel = new TGLabel(h1, "Title's:");
3545  h1->AddFrame(fTitleBorderSizeLabel, layout1);
3546  fTitleBorderSize = AddLineWidthEntry(h1, kTitleBorderSize);
3547  gf->AddFrame(h1, layout3);
3548 
3549  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3551  fLegendBorderSizeLabel = new TGLabel(h2, "Legend's:");
3552  h2->AddFrame(fLegendBorderSizeLabel, layout2);
3553  fLegendBorderSize = AddLineWidthEntry(h2, kTitleLegendBorderSize);
3554  gf->AddFrame(h2, layout3);
3556 }
3557 
3558 ////////////////////////////////////////////////////////////////////////////////
3559 /// Add the 'Text' group frame to the 'Title' tab.
3560 
3562 {
3563  TGGroupFrame *gf = new TGGroupFrame(f, "Text");
3567  fTitleTextColor = AddColorEntry(h1, kTitleTextColor);
3568  fTitleFont = AddFontTypeEntry(h1, kTitleFont);
3569  gf->AddFrame(h1, fLayoutExpandX);
3570  fTitleAlign = AddTextAlignEntry(gf, kTitleAlign);
3571  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3573  fTitleFontSizeInPixels = AddCheckButton(h2, "Pixels", kTitleFontSizeInPixels);
3574  fTitleFontSize = AddNumberEntry(h2, 21, 10, 0, kTitleFontSize, "Size:", 0, 5,
3578  gf->AddFrame(h2, fLayoutExpandX);
3580 
3581 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
3582 // fTitleTextColor->SetToolTipText("Color of the title's text");
3583  fTitleFontSizeInPixels->SetToolTipText("Set the title's text size in pixels if selected, otherwise - in % of pad");
3584  fTitleFontSize->GetNumberEntry()->SetToolTipText("Title's text size (in pixels or in % of pad)");
3585 }
3586 
3587 ////////////////////////////////////////////////////////////////////////////////
3588 /// Add the 'Geometry' group frame to the 'Title' tab.
3589 
3591 {
3592  TGGroupFrame *gf = new TGGroupFrame(f, "Geometry (% of Pad)");
3596  fTitleX = AddNumberEntry(h1, 0, 8, 0, kTitleX, "X:",
3600  fTitleY = AddNumberEntry(h1, 8, 8, 0, kTitleY, "Y:",
3604  gf->AddFrame(h1, fLayoutExpandXY);
3605  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3607  fTitleW = AddNumberEntry(h2, 0, 6, 0, kTitleW, "W:",
3611  fTitleH = AddNumberEntry(h2, 8, 8, 0, kTitleH, "H:",
3615  gf->AddFrame(h2, fLayoutExpandXY);
3617 
3618  fTitleX->GetNumberEntry()->SetToolTipText("Title' default abscissa");
3619  fTitleY->GetNumberEntry()->SetToolTipText("Title' default ordinate");
3620  fTitleW->GetNumberEntry()->SetToolTipText("Title' default width");
3621  fTitleH->GetNumberEntry()->SetToolTipText("Title' default height");
3622 }
3623 
3624 ////////////////////////////////////////////////////////////////////////////////
3625 /// Add the tab 'Stats' to the editor.
3626 
3628 {
3629  TGLayoutHints *layout1 = new TGLayoutHints(kLHintsNormal, 0, 5, 6);
3630  fTrashListLayout->Add(layout1);
3631  TGLayoutHints *layout2 = new TGLayoutHints(kLHintsExpandX, 10, 21, 5, 5);
3632  fTrashListLayout->Add(layout2);
3633 
3636 
3637  TGVerticalFrame *v1 = new TGVerticalFrame(h1);
3639  AddStatsFill(v1);
3640  TGHorizontalFrame *h2 = new TGHorizontalFrame(v1);
3642  fStatBorderSizeLabel = new TGLabel(h2, "Stats' shadow:");
3643  h2->AddFrame(fStatBorderSizeLabel, layout1);
3644  fStatBorderSize = AddLineWidthEntry(h2, kStatBorderSize);
3645  v1->AddFrame(h2, layout2);
3646  AddStatsText(v1);
3647  AddStatsGeometry(v1);
3648  h1->AddFrame(v1, fLayoutExpandXY);
3649 
3650  TGVerticalFrame *v2 = new TGVerticalFrame(h1);
3652  AddStatsStats(v2);
3653  AddStatsFit(v2);
3654  h1->AddFrame(v2, fLayoutExpandXY);
3655 
3656  tab->AddFrame(h1, fLayoutExpandX);
3657 }
3658 
3659 ////////////////////////////////////////////////////////////////////////////////
3660 /// Add the 'Fill' group frame to the 'Stats' tab.
3661 
3663 {
3664  TGGroupFrame *gf = new TGGroupFrame(f, "Fill");
3668  fStatColor = AddColorEntry(h, kStatColor);
3669  fStatStyle = AddFillStyleEntry(h, kStatStyle);
3670  gf->AddFrame(h, fLayoutExpandX);
3672 
3673 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
3674 // fStatColor->SetToolTipText("Color used to fill the stats pave");
3675 // fStatStyle->SetToolTipText("Pattern used to fill the stats pave");
3676 }
3677 
3678 ////////////////////////////////////////////////////////////////////////////////
3679 /// Add the 'Text' group frame to the 'Stats' tab.
3680 
3682 {
3683  TGGroupFrame *gf = new TGGroupFrame(f, "Text");
3687  fStatTextColor = AddColorEntry(h1, kStatTextColor);
3688  fStatFont = AddFontTypeEntry(h1, kStatFont);
3689  gf->AddFrame(h1, fLayoutExpandX);
3690  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3692  fStatFontSizeInPixels = AddCheckButton(h2, "Pixels", kStatFontSizeInPixels);
3693  fStatFontSize = AddNumberEntry(h2, 21, 10, 0, kStatFontSize, "Size:", 0, 5,
3697  gf->AddFrame(h2, fLayoutExpandX);
3699 
3700 // TODO Delete the // when the selectColor and selectPattern tooltips are OK.
3701 // fStatTextColor->SetToolTipText("Color of the stats's text");
3702  fStatFontSizeInPixels->SetToolTipText("Set the stats's text size in pixels if selected, otherwise - in % of pad");
3703  fStatFontSize->GetNumberEntry()->SetToolTipText("Stats's text size (in pixels or in % of pad)");
3704 }
3705 
3706 ////////////////////////////////////////////////////////////////////////////////
3707 /// Add the 'Geometry' group frame to the 'Stats' tab.
3708 
3710 {
3711  TGGroupFrame *gf = new TGGroupFrame(f, "Geometry");
3713 
3716  fStatX = AddNumberEntry(h1, 0, 7, 0, kStatX, "X:",
3720  fStatY = AddNumberEntry(h1, 8, 7, 0, kStatY, "Y:",
3724  gf->AddFrame(h1, fLayoutExpandXY);
3725 
3726  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3728  fStatW = AddNumberEntry(h2, 0, 5, 0, kStatW, "W:",
3732  fStatH = AddNumberEntry(h2, 8, 7, 0, kStatH, "H:",
3736  gf->AddFrame(h2, fLayoutExpandXY);
3738 
3739  fStatX->GetNumberEntry()->SetToolTipText("X position of top right corner of stat box.");
3740  fStatY->GetNumberEntry()->SetToolTipText("Y position of top right corner of stat box.");
3741  fStatW->GetNumberEntry()->SetToolTipText("Width of stat box.");
3742  fStatH->GetNumberEntry()->SetToolTipText("Height of stat box.");
3743 }
3744 
3745 ////////////////////////////////////////////////////////////////////////////////
3746 /// Add the 'Stat Options' group frame to the 'Stats' tab.
3747 
3749 {
3750  TGLayoutHints *layout = new TGLayoutHints(kLHintsNormal, 0, 0, 5);
3751  fTrashListLayout->Add(layout);
3752 
3753  TGGroupFrame *gf = new TGGroupFrame(f, "Stat Options");
3759  fOptStatName = AddCheckButton(v1, "Name", kStatOptStatName);
3760  fOptStatOverflow = AddCheckButton(v1, "Overflow", kStatOptStatOverflow);
3761  fOptStatUnderflow = AddCheckButton(v1, "Underflow", kStatOptStatUnderflow);
3762  fOptStatSkewness = AddCheckButton(v1, "Skewness", kStatOptStatSkewness);
3763  fOptStatKurtosis = AddCheckButton(v1, "Kurtosis", kStatOptStatKurtosis);
3764  h->AddFrame(v1, fLayoutExpandXY);
3765  TGVerticalFrame *v2 = new TGVerticalFrame(h);
3767  fOptStatEntries = AddCheckButton(v2, "Entries", kStatOptStatEntries);
3768  fOptStatMean = AddCheckButton(v2, "Mean", kStatOptStatMean);
3769  fOptStatRMS = AddCheckButton(v2, "RMS", kStatOptStatRMS);
3770  fOptStatIntegral = AddCheckButton(v2, "Integral", kStatOptStatIntegral);
3771  fOptStatErrors = AddCheckButton(v2, "Errors", kStatOptStatErrors);
3772  h->AddFrame(v2, fLayoutExpandXY);
3773  gf->AddFrame(h, fLayoutExpandX);
3774 
3775  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3777  TGHorizontalFrame *h3 = new TGHorizontalFrame(h2);
3779  fStatFormatLabel = new TGLabel(h3, "Paint format:");
3780  h3->AddFrame(fStatFormatLabel, layout);
3781  h2->AddFrame(h3, fLayoutExpandX);
3782  fStatFormat = AddTextEntry(h2, "", kStatFormat);
3783  gf->AddFrame(h2, fLayoutExpandX);
3785 
3786  fOptStatName->SetToolTipText("Show / Hide the histogram name");
3787  fOptStatOverflow->SetToolTipText("Show / Hide the number of overflows");
3788  fOptStatUnderflow->SetToolTipText("Show / Hide the number of underflows");
3789  fOptStatSkewness->SetToolTipText("Show / Hide the skewness");
3790  fOptStatKurtosis->SetToolTipText("Show / Hide the kurtosis");
3791  fOptStatEntries->SetToolTipText("Show / Hide the number of entries");
3792  fOptStatMean->SetToolTipText("Show / Hide the mean value");
3793  fOptStatRMS->SetToolTipText("Show / Hide root-mean-square (RMS)");
3794  fOptStatIntegral->SetToolTipText("Show / Hide the integral of bins");
3795  fOptStatErrors->SetToolTipText("Show / Hide the errors");
3796  fStatFormat->SetToolTipText("Paint format of stat options");
3797 }
3798 
3799 ////////////////////////////////////////////////////////////////////////////////
3800 /// Add the 'Fit Options' group frame to the 'Stats' tab.
3801 
3803 {
3804  TGLayoutHints *layout = new TGLayoutHints(kLHintsNormal, 0, 0, 5);
3805  fTrashListLayout->Add(layout);
3806 
3807  TGGroupFrame *gf = new TGGroupFrame(f, "Fit Options");
3813  fOptFitValues = AddCheckButton(v1, "Values", kStatOptFitValues);
3814  fOptFitProbability = AddCheckButton(v1, "Probability",
3815  kStatOptFitProbability);
3816  h->AddFrame(v1, fLayoutExpandXY);
3817  TGVerticalFrame *v2 = new TGVerticalFrame(h);
3819  fOptFitErrors = AddCheckButton(v2, "Errors", kStatOptFitErrors);
3820  fOptFitChi = AddCheckButton(v2, "Chi", kStatOptFitChi);
3821  h->AddFrame(v2, fLayoutExpandXY);
3822  gf->AddFrame(h, fLayoutExpandX);
3823  TGHorizontalFrame *h2 = new TGHorizontalFrame(gf);
3825  TGHorizontalFrame *h3 = new TGHorizontalFrame(h2);
3827  fFitFormatLabel = new TGLabel(h3, "Paint format:");
3828  h3->AddFrame(fFitFormatLabel, layout);
3829  h2->AddFrame(h3, fLayoutExpandX);
3830  fFitFormat = AddTextEntry(h2, "", kStatFitFormat);
3831  gf->AddFrame(h2, fLayoutExpandX);
3833 
3834  fOptFitValues->SetToolTipText("Show / Hide the parameter name and value");
3835  fOptFitProbability->SetToolTipText("Show / Hide probability)");
3836  fOptFitErrors->SetToolTipText("Show / Hide the errors");
3837  fOptFitChi->SetToolTipText("Show / Hide Chisquare");
3838  fFitFormat->SetToolTipText("Paint format of fit options");
3839 }
3840 
3841 ////////////////////////////////////////////////////////////////////////////////
3842 /// Add the tab 'PS / PDF' to the editor.
3843 
3845 {
3846  AddPsPdfHeader(tab);
3847  AddPsPdfTitle(tab);
3850  AddPsPdfPaperSize(h);
3851  TGVerticalFrame *v = new TGVerticalFrame(h);
3853  AddPsPdfLineScale(v);
3854  AddPsPdfColorModel(v);
3855  h->AddFrame(v, fLayoutExpandXY);
3856  tab->AddFrame(h, fLayoutExpandX);
3857 }
3858 
3859 ////////////////////////////////////////////////////////////////////////////////
3860 /// Add the 'Header' group frame to the 'PS / PDF' tab.
3861 
3863 {
3864  TGGroupFrame *gf = new TGGroupFrame(f, "Header");
3866  fHeaderPS = AddTextEntry(gf, "", kPSPDFHeaderPS);
3868 
3869  fHeaderPS->SetToolTipText("PostScript header");
3870 }
3871 
3872 ////////////////////////////////////////////////////////////////////////////////
3873 /// Add the 'Title' group frame to the 'PS / PDF' tab.
3874 
3876 {
3877  TGGroupFrame *gf = new TGGroupFrame(f, "Title");
3879  fTitlePS = AddTextEntry(gf, "", kPSPDFTitlePS);
3881 
3882  fTitlePS->SetToolTipText("PostScript title");
3883 }
3884 
3885 ////////////////////////////////////////////////////////////////////////////////
3886 /// Add the 'Color Model' group frame to the 'PS / PDF' tab.
3887 
3889 {
3890  fColorModelPS = new TGButtonGroup(f, "Color Model",
3892 
3895  kPSPDFColorModelPSRGB);
3896  fColorModelPSRGB->Associate(this);
3898  kPSPDFColorModelPSCMYK);
3900  fColorModelPS->Show();
3901  TGLayoutHints *layout2 =
3902  new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 5, 5, 5, 12);
3903  fTrashListLayout->Add(layout2);
3904  f->AddFrame(fColorModelPS, layout2);
3905 }
3906 
3907 ////////////////////////////////////////////////////////////////////////////////
3908 /// Add the 'Paper Size' group frame to the 'PS / PDF' tab.
3909 
3911 {
3912  TGGroupFrame *gf = new TGGroupFrame(f, "Paper Size");
3914  fPaperSizePredef = AddPaperSizeEntry(gf, kPSPDFPaperSizePredef);
3915  fPaperSizeX = AddNumberEntry(gf, 0, 0, 0, kPSPDFPaperSizeX, "Width:",
3919  fPaperSizeY = AddNumberEntry(gf, 0, 0, 0, kPSPDFPaperSizeY, "Height:",
3924 
3925  fPaperSizeX->GetNumberEntry()->SetToolTipText("Width of the printing area");
3926  fPaperSizeY->GetNumberEntry()->SetToolTipText("Height of the printing area");
3927 }
3928 
3929 ////////////////////////////////////////////////////////////////////////////////
3930 /// Add the 'Line scale' number entry to the 'PS / PDF' tab.
3931 
3933 {
3934  TGLayoutHints *layout = new TGLayoutHints(kLHintsExpandX, 10, 20, 5, 5);
3935  fTrashListLayout->Add(layout);
3936 
3937  TGHorizontalFrame *gf = new TGHorizontalFrame(f);
3939  fLineScalePS = AddNumberEntry(gf, 0, 0, 0, kPSPDFLineScalePS, "Line scale:",
3943  f->AddFrame(gf, layout);
3944 
3945  fLineScalePS->GetNumberEntry()->SetToolTipText("Line scale factor when drawing lines on PostScript");
3946 }
3947 
3948 ////////////////////////////////////////////////////////////////////////////////
3949 /// Add a title to the frame f.
3950 
3952 {
3953  TGLayoutHints *layout1 = new TGLayoutHints(kLHintsExpandX, 5, 0, 7);
3954  fTrashListLayout->Add(layout1);
3955  TGLayoutHints *layout2 = new TGLayoutHints(kLHintsExpandX, 0, 0, 6, 6);
3956  fTrashListLayout->Add(layout2);
3957 
3960 
3961  TGLabel *lab = new TGLabel(h, s);
3962  fTrashListFrame->AddFirst(lab);
3963  h->AddFrame(lab);
3964 
3966  fTrashListFrame->AddFirst(line);
3967  h->AddFrame(line, layout1);
3968 
3969  f->AddFrame(h, layout2);
3970 }
3971 
3972 ////////////////////////////////////////////////////////////////////////////////
3973 /// Add a color entry to the frame f.
3974 
3976 {
3977  TGLayoutHints *layout = new TGLayoutHints(kLHintsBottom, 0, 5, 3, 3);
3978  fTrashListLayout->Add(layout);
3979 
3980  TGColorSelect *cs = new TGColorSelect(f, 0, id);
3981  cs->Associate(this);
3982  f->AddFrame(cs, layout);
3983  return cs;
3984 }
3985 
3986 ////////////////////////////////////////////////////////////////////////////////
3987 /// Add a fill style entry to the frame f.
3988 
3990  Int_t id)
3991 {
3992  TGLayoutHints *layout = new TGLayoutHints(kLHintsBottom, 0, 0, 3, 3);
3993  fTrashListLayout->Add(layout);
3994 
3995  TGedPatternSelect *gps = new TGedPatternSelect(f, 0, id);
3996  gps->Associate(this);
3997  f->AddFrame(gps, layout);
3998  return gps;
3999 }
4000 
4001 ////////////////////////////////////////////////////////////////////////////////
4002 /// Add a marker style entry to the frame f.
4003 
4005  Int_t id)
4006 {
4007  TGLayoutHints *layout = new TGLayoutHints(kLHintsCenterY, 0, 5, 3, 3);
4008  fTrashListLayout->Add(layout);
4009 
4010  TGedMarkerSelect *gms = new TGedMarkerSelect(f, 0, id);
4011  gms->Associate(this);
4012  f->AddFrame(gms, layout);
4013  return gms;
4014 }
4015 
4016 ////////////////////////////////////////////////////////////////////////////////
4017 /// Add a marker size entry to the frame f.
4018 
4020 {
4021  char a[10];
4022  TGComboBox *cb = new TGComboBox(f, id);
4023  cb->Associate(this);
4024  for (Int_t i = 1; i <= 15; i++) {
4025  snprintf(a, 10, "%.1f", 0.2 * i);
4026  cb->AddEntry(a, i);
4027  }
4028  cb->Resize(1, 22);
4030  return cb;
4031 }
4032 
4033 ////////////////////////////////////////////////////////////////////////////////
4034 /// Add a number entry to the frame f. A caption can be added.
4035 
4037  Int_t e2, Int_t e3, Int_t id, const char *s, Double_t init, Int_t digits,
4040 {
4043  if (strlen(s)) {
4044  TGLabel *lab = new TGLabel(h, s);
4045  fTrashListFrame->AddFirst(lab);
4046  TGLayoutHints *layout = new TGLayoutHints(kLHintsNormal, e1, 0, 3);
4047  fTrashListLayout->Add(layout);
4048  h->AddFrame(lab, layout);
4049  }
4050  TGNumberEntry *ne = new TGNumberEntry(h, init, digits, id,
4051  nfS, nfA, nfL, min, max);
4052  ne->Associate(this);
4053  if ((e1 == 0) && (e2 == 0) && (e3 == 0)) {
4054  TGLayoutHints *layout1 = new TGLayoutHints(kLHintsRight);
4055  fTrashListLayout->Add(layout1);
4056  h->AddFrame(ne, layout1);
4057  } else {
4058  TGLayoutHints *layout2 = new TGLayoutHints(kLHintsNormal, e2, e3);
4059  fTrashListLayout->Add(layout2);
4060  h->AddFrame(ne, layout2);
4061  }
4062  if (strlen(s)) {
4063  TGLayoutHints *layout3 =
4064  new TGLayoutHints(kLHintsExpandX | kLHintsCenterY, 0, 2, 3, 3);
4065  fTrashListLayout->Add(layout3);
4066  f->AddFrame(h, layout3);
4067  } else {
4068  TGLayoutHints *layout4 =
4069  new TGLayoutHints(kLHintsNormal | kLHintsCenterY, 0, 2, 3, 3);
4070  fTrashListLayout->Add(layout4);
4071  f->AddFrame(h, layout4);
4072  }
4073  return ne;
4074 }
4075 
4076 ////////////////////////////////////////////////////////////////////////////////
4077 /// Add a line width entry to the frame f.
4078 
4080  Int_t id)
4081 {
4082  TGLayoutHints *layout = new TGLayoutHints(kLHintsExpandX, 0, 0, 3, 3);
4083  fTrashListLayout->Add(layout);
4084 
4087  TGLineWidthComboBox *lwcb = new TGLineWidthComboBox(h, id);
4088  lwcb->Associate(this);
4089  lwcb->Resize(1, 22);
4090  h->AddFrame(lwcb, fLayoutExpandX);
4091  f->AddFrame(h, layout);
4092  return lwcb;
4093 }
4094 
4095 ////////////////////////////////////////////////////////////////////////////////
4096 /// Add a line style entry to the frame f.
4097 
4099  Int_t id)
4100 {
4101  TGLineStyleComboBox *lscb = new TGLineStyleComboBox(f, id);
4102  lscb->Associate(this);
4103  lscb->Resize(1, 22);
4105  return lscb;
4106 }
4107 
4108 ////////////////////////////////////////////////////////////////////////////////
4109 /// Add a text button to the frame f.
4110 
4112  const char *s, Int_t id)
4113 {
4114  TGLayoutHints *layout = new TGLayoutHints(kLHintsExpandX, 0, 0, 3, 3);
4115  fTrashListLayout->Add(layout);
4116 
4117  TGTextButton *tb = new TGTextButton(f, s, id);
4118  tb->Associate(this);
4119  f->AddFrame(tb, layout);
4120  return tb;
4121 }
4122 
4123 ////////////////////////////////////////////////////////////////////////////////
4124 /// Add a font type combo box to the frame f.
4125 
4127  Int_t id)
4128 {
4129  TGFontTypeComboBox *ftcb = new TGFontTypeComboBox(f, id);
4130  ftcb->Associate(this);
4131  ftcb->Resize(1, 22);
4133  return ftcb;
4134 }
4135 
4136 ////////////////////////////////////////////////////////////////////////////////
4137 /// Add a text align combo box to the frame f.
4138 
4140 {
4141  TGComboBox *cb = new TGComboBox(f, id);
4142  cb->Associate(this);
4143  cb->AddEntry("11 Bottom, Left", 11);
4144  cb->AddEntry("21 Bottom, Middle", 21);
4145  cb->AddEntry("31 Bottom, Right", 31);
4146  cb->AddEntry("12 Middle, Left", 12);
4147  cb->AddEntry("22 Middle, Middle", 22);
4148  cb->AddEntry("32 Middle, Right", 32);
4149  cb->AddEntry("13 Top, Left", 13);
4150  cb->AddEntry("23 Top, Middle", 23);
4151  cb->AddEntry("33 Top, Right", 33);
4152  cb->Resize(1, 22);
4154  return cb;
4155 }
4156 
4157 ////////////////////////////////////////////////////////////////////////////////
4158 /// Add a border mode button group to the frame f.
4159 
4161  Int_t id1, Int_t id2, Int_t id3)
4162 {
4163  TGButtonGroup *bg = new TGButtonGroup(f, "Border");
4164  TGRadioButton *sunk = new TGRadioButton(bg, "Sunken", id1);
4165  sunk->Associate(this);
4166  fTrashListFrame->AddFirst(sunk);
4167  TGRadioButton *none = new TGRadioButton(bg, "None" , id2);
4168  none->Associate(this);
4169  fTrashListFrame->AddFirst(none);
4170  TGRadioButton *rais = new TGRadioButton(bg, "Raised", id3);
4171  rais->Associate(this);
4172  fTrashListFrame->AddFirst(rais);
4173  bg->Show();
4175  return bg;
4176 }
4177 
4178 ////////////////////////////////////////////////////////////////////////////////
4179 /// Add a date format combo box to the frame f.
4180 
4182 {
4183  TGComboBox *cb = new TGComboBox(f, id);
4184  cb->Associate(this);
4185  cb->AddEntry("Wed Sep 25 17:10:35 2002", 1);
4186  cb->AddEntry("2002-09-25", 2);
4187  cb->AddEntry("2002-09-25 17:10:35", 3);
4188  cb->Resize(1, 22);
4189  cb->GetListBox()->Resize(cb->GetListBox()->GetDefaultSize().fWidth, 55);
4191  return cb;
4192 }
4193 
4194 ////////////////////////////////////////////////////////////////////////////////
4195 /// Add a check button to the frame f.
4196 
4198  Int_t id, Int_t e1, Int_t e2)
4199 {
4200  TGLayoutHints *layout = new TGLayoutHints(kLHintsNormal, 0, e1, 4, e2);
4201  fTrashListLayout->Add(layout);
4202 
4205  TGCheckButton *cb = new TGCheckButton(h, s, id);
4206  cb->Associate(this);
4207  h->AddFrame(cb, layout);
4208  f->AddFrame(h);
4209  return cb;
4210 }
4211 
4212 ////////////////////////////////////////////////////////////////////////////////
4213 /// Add a text entry to the frame f. A caption can be added.
4214 
4216  const char *s, Int_t id)
4217 {
4220  if (strlen(s)) {
4221  TGLabel *lab = new TGLabel(h, s);
4222  fTrashListFrame->AddFirst(lab);
4223  TGLayoutHints *layout1 = new TGLayoutHints(kLHintsNormal, 0, 0, 3);
4224  fTrashListLayout->Add(layout1);
4225  h->AddFrame(lab, layout1);
4226  }
4227  TGTextEntry *te = new TGTextEntry(h, "", id);
4228  te->Associate(this);
4229  te->Resize(57, 22);
4230  if (strlen(s)) {
4231  TGLayoutHints *layout2 = new TGLayoutHints(kLHintsRight, 20);
4232  fTrashListLayout->Add(layout2);
4233  h->AddFrame(te, layout2);
4234  } else
4235  h->AddFrame(te, fLayoutExpandX);
4236  TGLayoutHints *layout3 =
4237  new TGLayoutHints(kLHintsExpandX | kLHintsCenterY, 0, 2, 3, 3);
4238  fTrashListLayout->Add(layout3);
4239  f->AddFrame(h, layout3);
4240  return te;
4241 }
4242 
4243 ////////////////////////////////////////////////////////////////////////////////
4244 /// Add a prefered paper size combo box to the frame f.
4245 
4247 {
4248  TGComboBox *cb = new TGComboBox(f, id);
4249  cb->Associate(this);
4250  cb->AddEntry("Custom size (cm)", 1);
4251  cb->AddEntry("Custom size (inch)", 2);
4252  cb->AddEntry("A4 (cm)", 3);
4253  cb->AddEntry("US Letter (inch)", 4);
4254  cb->AddEntry("US Letter (cm)", 4);
4255  cb->Resize(1, 22);
4256  cb->GetListBox()->Resize(cb->GetListBox()->GetDefaultSize().fWidth, 70);
4258  return cb;
4259 }
4260 
4261 ////////////////////////////////////////////////////////////////////////////////
4262 /// Slot called when an item of the menu is selected.
4263 
4265 {
4266  switch (menuID) {
4267  case kMenuNew: DoNew(); break;
4268  case kMenuDelete: DoDelete(); break;
4269  case kMenuRename: DoRename(); break;
4270  case kMenuImportCanvas: DoImportCanvas(); break;
4271  case kMenuImportMacro: DoImportMacro(kTRUE); break;
4272  case kMenuExport: DoExport(); break;
4273  case kMenuExit: DoExit(); break;
4274  case kMenuHelp: DoHelp(42); break;
4275  case kMenuHelpEditor: DoHelp(fCurTabNum); break;
4276  case kMenuHelpGeneral: DoHelp(0); break;
4277  case kMenuHelpCanvas: DoHelp(1); break;
4278  case kMenuHelpPad: DoHelp(2); break;
4279  case kMenuHelpHistos: DoHelp(3); break;
4280  case kMenuHelpAxis: DoHelp(4); break;
4281  case kMenuHelpTitle: DoHelp(5); break;
4282  case kMenuHelpStats: DoHelp(6); break;
4283  case kMenuHelpPSPDF: DoHelp(7); break;
4284  }
4285 }
4286 
4287 ////////////////////////////////////////////////////////////////////////////////
4288 /// Slot called to import a style from a C++ macro file. If create=kTRUE,
4289 /// a new style is created. Otherwise, the current style is reseted.
4290 
4292 {
4293  // Import a style from a macro.
4294  // If create = kTRUE, a new style is created.
4295  // Otherwise, the selected style is:
4296  // - reseted with the macro's values.
4297  // - recreated (if it is one of the 5 basic styles).
4298 
4299  if ((!create) && (!strcmp(fCurSelStyle->GetName(), "Default"))) {
4300  if ((!strcmp(fCurSelStyle->GetName(),gStyle->GetName())))
4301  gStyle->Reset("Default");
4302  else {
4303  delete gROOT->GetStyle("Default");
4304  new TStyle("Default", "Default Style");
4305  }
4306  } else if ((!create) && (!strcmp(fCurSelStyle->GetName(), "Plain"))) {
4307  if ((!strcmp(fCurSelStyle->GetName(),gStyle->GetName())))
4308  gStyle->Reset("Plain");
4309  else {
4310  delete gROOT->GetStyle("Plain");
4311  new TStyle("Plain", "Plain Style (no colors/fill areas)");
4312  }
4313  } else if ((!create) && (!strcmp(fCurSelStyle->GetName(), "Bold"))) {
4314  if ((!strcmp(fCurSelStyle->GetName(),gStyle->GetName())))
4315  gStyle->Reset("Bold");
4316  else {
4317  delete gROOT->GetStyle("Bold");
4318  new TStyle("Bold", "Bold Style");
4319  }
4320  } else if ((!create) && (!strcmp(fCurSelStyle->GetName(), "Video"))) {
4321  if ((!strcmp(fCurSelStyle->GetName(),gStyle->GetName())))
4322  gStyle->Reset("Video");
4323  else {
4324  delete gROOT->GetStyle("Video");
4325  new TStyle("Video", "Style for video presentation histograms");
4326  }
4327  } else if ((!create) && (!strcmp(fCurSelStyle->GetName(), "Pub"))) {
4328  if ((!strcmp(fCurSelStyle->GetName(),gStyle->GetName())))
4329  gStyle->Reset("Pub");
4330  else {
4331  delete gROOT->GetStyle("Pub");
4332  new TStyle("Pub", "Style for Publications");
4333  }
4334  } else {
4335  CreateMacro();
4336  if (!create) {
4337  TString newName;
4338  newName.Form("Style_%s.C", fCurSelStyle->GetName());
4339  fCurMacro->fFilename = StrDup(newName.Data());
4340  }
4341  new TGFileDialog(gClient->GetRoot(), this, kFDOpen, fCurMacro);
4342  if (fCurMacro->fFilename != 0) {
4343  gROOT->ProcessLine(Form(".x %s", fCurMacro->fFilename));
4345  }
4346  }
4347 
4348  BuildList();
4349 }
4350 
4351 ////////////////////////////////////////////////////////////////////////////////
4352 /// Slot called when the user select an item in the available styles' list.
4353 /// Update the preview, the editor, the status bar. The current selected
4354 /// style is changed.
4355 
4357 {
4358  // Select the new style and update the state of the style manager.
4359  fCurSelStyle = gROOT->GetStyle(((TGTextLBEntry*) fListComboBox->
4360  GetSelectedEntry())->GetText()->GetString());
4361 
4363 
4364  // Update the status bar.
4365  UpdateStatusBar();
4366 
4367  // Update the editor (if opened).
4368  if (fMoreAndNotLess) {
4372  }
4373 
4374  // Update the preview, if it exists and is visible.
4377 
4378  // Refresh the tooltip of the fMakeDefault's button.
4379  TString newTip;
4380  newTip.Form("'%s'", fCurSelStyle->GetName());
4381  newTip += " become current style";
4382  fMakeDefault->SetToolTipText(newTip.Data());
4383 
4384  // Refresh.
4386  fListComboBox->Layout();
4387 }
4388 
4389 ////////////////////////////////////////////////////////////////////////////////
4390 /// Slot called when the user click on the run time update check button.
4391 /// If b=kTRUE, the user asks for a real time preview.
4392 
4394 {
4395  if (b) {
4399  } else {
4402  }
4403 }
4404 
4405 ////////////////////////////////////////////////////////////////////////////////
4406 /// Slot called when the user click on the preview check button. If b=kTRUE,
4407 /// the user asks for a preview, otherwise they want to close it.
4408 
4410 {
4411  if (b) {
4413  if (fPreviewWindow) {
4416  } else {
4417  if (fCurPad && fCurObj) {
4418  TQObject::Disconnect("TCanvas", "Closed()");
4420  TQObject::Connect("TCanvas", "Closed()", "TStyleManager", this, "DoSelectNoCanvas()");
4421  }
4422  }
4423  fPreviewWindow->Connect("CloseWindow()", "TStyleManager", this, "DoPreviewClosed()");
4425  if (fRealTimePreview) {
4428  } else {
4431  }
4432  } else DoPreviewClosed();
4433 }
4434 
4435 ////////////////////////////////////////////////////////////////////////////////
4436 /// Slot called to close the preview, via the preview check button, or
4437 /// when the preview window is closed via the window manager.
4438 
4440 {
4441  fPreviewWindow->Disconnect("CloseWindow()");
4446 }
4447 
4448 ////////////////////////////////////////////////////////////////////////////////
4449 /// Slot called to make the current selected style (in the ComboBox)
4450 /// become gStyle.
4451 
4453 {
4454  gROOT->SetStyle(fCurSelStyle->GetName());
4456 }
4457 
4458 ////////////////////////////////////////////////////////////////////////////////
4459 /// Slot called to choose on which object(s) the 'Apply' button will
4460 /// have an effect.
4461 
4463 {
4464  fAllAndNotCurrent = (i == kTopApplyOnAll);
4465 }
4466 
4467 ////////////////////////////////////////////////////////////////////////////////
4468 /// Slot called when the user clicks on the 'Apply' button. Apply the
4469 /// current selected style to the specified object(s)
4470 
4472 {
4473  TStyle *tmp = gStyle;
4474  gStyle = fCurSelStyle;
4475 
4476  if (fAllAndNotCurrent) {
4477  // Apply on all canvases, excluding the preview.
4478  TCanvas *tmpCanvas = (TCanvas *) (gROOT->GetListOfCanvases()->First());
4479  while (tmpCanvas) {
4480  if ((!fPreviewWindow) || (tmpCanvas != fPreviewWindow->GetMainCanvas())) {
4481  tmpCanvas->UseCurrentStyle();
4482  tmpCanvas->Modified();
4483  tmpCanvas->Update();
4484  }
4485  tmpCanvas = (TCanvas *) (gROOT->GetListOfCanvases()->After(tmpCanvas));
4486  }
4487  } else
4488  if (fCurPad && fCurObj) {
4489  // Apply on selected object and refresh all canvases containing the object.
4491  TCanvas *tmpCanvas = (TCanvas *) (gROOT->GetListOfCanvases()->First());
4492  while (tmpCanvas) {
4493  if (((!fPreviewWindow) || (tmpCanvas != fPreviewWindow->GetMainCanvas()))
4494  && ((tmpCanvas == fCurObj) || tmpCanvas->FindObject(fCurObj))) {
4495  tmpCanvas->Modified();
4496  tmpCanvas->Update();
4497  }
4498  tmpCanvas = (TCanvas *) (gROOT->GetListOfCanvases()->After(tmpCanvas));
4499  }
4500  }
4501 
4502  gStyle = tmp;
4503 }
4504 
4505 ////////////////////////////////////////////////////////////////////////////////
4506 /// Slot called when the user try to show or hide the editor part of the
4507 /// style manager.
4508 
4510 {
4512  if (fMoreAndNotLess) {
4513  // Redraw the tabs.
4518  fMoreLess->SetText("&Close <<");
4520 
4521  // Update Editor's values.
4525  fMoreLess->SetToolTipText("Close the editor");
4526  } else {
4527  // Hide the tabs.
4531  fMoreLess->SetText("&Edit >>");
4534  fMoreLess->SetToolTipText("Open the editor");
4535  }
4536 }
4537 
4538 ////////////////////////////////////////////////////////////////////////////////
4539 /// Slot called when the user clicks on the 'Update preview' button.
4540 
4542 {
4543  if ((!fCurPad) || (!fCurObj)) return;
4544 
4545  if (fPreviewWindow) {
4546  TQObject::Disconnect("TCanvas", "Closed()");
4548  TQObject::Connect("TCanvas", "Closed()", "TStyleManager", this, "DoSelectNoCanvas()");
4549  }
4550 }
4551 
4552 ////////////////////////////////////////////////////////////////////////////////
4553 /// Slot called when the user changes the current tab.
4554 
4556 {
4557  // Disconnect the signal/slots communication mechanism from the previous
4558  // tab and connect them onto the new one.
4560  fCurTabNum = i;
4563 }
4564 
4565 ////////////////////////////////////////////////////////////////////////////////
4566 /// Slot called when the user changes the current axis tab.
4567 
4569 {
4570  fCurTabAxisNum = i;
4571 }
4572 
4573 ////////////////////////////////////////////////////////////////////////////////
4574 /// Slot called when the user close a TCanvas. Update the labels and the
4575 /// pointers to the current pad and the current object.
4576 
4578 {
4579  fCurPad = 0;
4580  fCurObj = 0;
4581 
4583  DoPreview(kFALSE);
4584 
4585  fCurPadTextEntry->SetText("No pad selected");
4586  fCurObjTextEntry->SetText("No object selected");
4587  fImportCascade->DisableEntry(kMenuImportCanvas);
4593 }
4594 
4595 ////////////////////////////////////////////////////////////////////////////////
4596 /// Slot called when the user clicks on a TCanvas or on any object inside
4597 /// a TCanvas. Update the pointers to the current pad and the current object.
4598 
4600 {
4601  if (mouseButton != kButton2Down) return;
4602 
4603  if (!pad || !obj) {
4604  DoSelectNoCanvas();
4605  return;
4606  }
4607 
4608  // Disable the selection of the preview.
4609  if (fPreviewWindow && (pad->GetCanvas() == fPreviewWindow->GetMainCanvas()))
4610  return;
4611 
4612  // Did the user select the same canvas as before ?
4613  Bool_t samePad = (fCurPad && (pad->GetCanvas() == fCurPad->GetCanvas()));
4614 
4615  fCurPad = pad;
4616  fCurObj = obj;
4617  Bool_t preview = (fPreviewWindow && fPreviewWindow->IsMapped());
4618 
4619  if ((!samePad) && preview) DoPreview(kFALSE);
4620 
4621  // Update the information' label about the selected objects.
4622  TString sPad;
4623  if (fCurPad->GetName() && strlen(fCurPad->GetName()))
4624  sPad.Append(fCurPad->GetName());
4625  else
4626  sPad.Append("[no name]");
4627  sPad.Append(" - '");
4628  if (fCurPad->GetTitle() && strlen(fCurPad->GetTitle()))
4629  sPad.Append(fCurPad->GetTitle());
4630  else
4631  sPad.Append("[no title]");
4632  sPad.Append("'::");
4633  sPad.Append(fCurPad->ClassName());
4634  fCurPadTextEntry->SetText(sPad);
4635  TString sObj;
4636  if (strlen(fCurObj->GetName()))
4637  sObj.Append(fCurObj->GetName());
4638  else
4639  sObj.Append("[no name]");
4640  sObj.Append("::");
4641  sObj.Append(fCurObj->ClassName());
4642  fCurObjTextEntry->SetText(sObj);
4643 
4644  if (!samePad) {
4645  fImportCascade->EnableEntry(kMenuImportCanvas);
4648  if (preview) {
4649  DoPreview(kTRUE);
4650  } else {
4654  }
4655  }
4656 }
4657 
4658 ////////////////////////////////////////////////////////////////////////////////
4659 /// Slot called to close the style manager via the window manager.
4660 
4662 {
4663  Hide();
4664 }
4665 
4666 ////////////////////////////////////////////////////////////////////////////////
4667 /// Slot called whenever the fill color is modified by the user.
4668 
4670 {
4672  DoEditor();
4673 }
4674 
4675 ////////////////////////////////////////////////////////////////////////////////
4676 /// Slot called whenever the fill style is modified by the user.
4677 
4679 {
4681  DoEditor();
4682 }
4683 
4684 ////////////////////////////////////////////////////////////////////////////////
4685 /// Slot called whenever the hatches line width is modified by the user.
4686 
4688 {
4690  DoEditor();
4691 }
4692 
4693 ////////////////////////////////////////////////////////////////////////////////
4694 /// Slot called whenever the hatches spacing is modified by the user.
4695 
4697 {
4699  DoEditor();
4700 }
4701 
4702 ////////////////////////////////////////////////////////////////////////////////
4703 /// Slot called whenever the marker color is modified by the user.
4704 
4706 {
4708  DoEditor();
4709 }
4710 
4711 ////////////////////////////////////////////////////////////////////////////////
4712 /// Slot called whenever the marker style is modified by the user.
4713 
4715 {
4717  DoEditor();
4718 }
4719 
4720 ////////////////////////////////////////////////////////////////////////////////
4721 /// Slot called whenever the marker size is modified by the user.
4722 
4724 {
4726  DoEditor();
4727 }
4728 
4729 ////////////////////////////////////////////////////////////////////////////////
4730 /// Slot called whenever the screen factor is modified by the user.
4731 
4733 {
4735  DoEditor();
4736 }
4737 
4738 ////////////////////////////////////////////////////////////////////////////////
4739 /// Slot called whenever the line color is modified by the user.
4740 
4742 {
4744  DoEditor();
4745 }
4746 
4747 ////////////////////////////////////////////////////////////////////////////////
4748 /// Slot called whenever the line width is modified by the user.
4749 
4751 {
4753  DoEditor();
4754 }
4755 
4756 ////////////////////////////////////////////////////////////////////////////////
4757 /// Slot called whenever the line style is modified by the user.
4758 
4760 {
4762  DoEditor();
4763 }
4764 
4765 ////////////////////////////////////////////////////////////////////////////////
4766 /// Slot called whenever the line style editor is opened by the user.
4767 
4769 {
4770  // TODO Open a LineStyle editor
4771 }
4772 
4773 ////////////////////////////////////////////////////////////////////////////////
4774 /// Slot called whenever the text color is modified by the user.
4775 
4777 {
4779  DoEditor();
4780 }
4781 
4782 ////////////////////////////////////////////////////////////////////////////////
4783 /// Slot called whenever the text size is modified by the user.
4784 
4786 {
4788  DoEditor();
4789 }
4790 
4791 ////////////////////////////////////////////////////////////////////////////////
4792 /// Slot called whenever the text size mode is modified by the user.
4793 
4795 {
4796  Int_t tmp = fCurSelStyle->GetTextFont() / 10;
4797  Int_t mod = fCurSelStyle->GetTextFont() % 10;
4799  if (b) {
4800  fCurSelStyle->SetTextFont(tmp * 10 + 3);
4804  if (mod == 2)
4806  } else {
4807  fCurSelStyle->SetTextFont(tmp * 10 + 2);
4811  if (mod == 3)
4813  }
4815  DoEditor();
4816 }
4817 
4818 ////////////////////////////////////////////////////////////////////////////////
4819 /// Slot called whenever the text font is modified by the user.
4820 
4822 {
4823  Int_t tmp = fCurSelStyle->GetTextFont() % 10;
4825  DoEditor();
4826 }
4827 
4828 ////////////////////////////////////////////////////////////////////////////////
4829 /// Slot called whenever the text align is modified by the user.
4830 
4832 {
4834  DoEditor();
4835 }
4836 
4837 ////////////////////////////////////////////////////////////////////////////////
4838 /// Slot called whenever the text angle is modified by the user.
4839 
4841 {
4843  DoEditor();
4844 }
4845 
4846 ////////////////////////////////////////////////////////////////////////////////
4847 /// Slot called whenever the canvas color is modified by the user.
4848 
4850 {
4852  DoEditor();
4853 }
4854 
4855 ////////////////////////////////////////////////////////////////////////////////
4856 /// Slot called whenever the canvas default abscissa is modified by the user.
4857 
4859 {
4861  DoEditor();
4862 }
4863 
4864 ////////////////////////////////////////////////////////////////////////////////
4865 /// Slot called whenever the canvas default ordinate is modified by the user.
4866 
4868 {
4870  DoEditor();
4871 }
4872 
4873 ////////////////////////////////////////////////////////////////////////////////
4874 /// Slot called whenever the canvas default width is modified by the user.
4875 
4877 {
4879  DoEditor();
4880 }
4881 
4882 ////////////////////////////////////////////////////////////////////////////////
4883 /// Slot called whenever the canvas default height is modified by the user.
4884 
4886 {
4888  DoEditor();
4889 }
4890 
4891 ////////////////////////////////////////////////////////////////////////////////
4892 /// Slot called whenever the canvas border mode is modified by the user.
4893 
4895 {
4896  Int_t i = kCanvasBorderModeSunken;
4897  TGButton *but = 0;
4898  while ((but = fCanvasBorderMode->Find(i)) && !but->IsDown())
4899  i++;
4900  fCurSelStyle->SetCanvasBorderMode(i - 1 - kCanvasBorderModeSunken);
4901  DoEditor();
4902 }
4903 
4904 ////////////////////////////////////////////////////////////////////////////////
4905 /// Slot called whenever the canvas border size is modified by the user.
4906 
4908 {
4910  DoEditor();
4911 }
4912 
4913 ////////////////////////////////////////////////////////////////////////////////
4914 /// Slot called whenever the OptDate boolean is modified by the user.
4915 
4917 {
4918  if (fOptDateBool->IsDown())
4920  else
4925  DoEditor();
4926 }
4927 
4928 ////////////////////////////////////////////////////////////////////////////////
4929 /// Slot called whenever the date text color is modified by the user.
4930 
4932 {
4933  // To modify this entry, the user must have check 'Show'
4935  DoEditor();
4936 }
4937 
4938 ////////////////////////////////////////////////////////////////////////////////
4939 /// Slot called whenever the date text size is modified by the user.
4940 
4942 {
4944  DoEditor();
4945 }
4946 
4947 ////////////////////////////////////////////////////////////////////////////////
4948 /// Slot called whenever the date text size mode is modified by the user.
4949 
4951 {
4952  Int_t tmp = fCurSelStyle->GetAttDate()->GetTextFont() / 10;
4953  Int_t mod = fCurSelStyle->GetAttDate()->GetTextFont() % 10;
4955 
4956  if (b) {
4957  fCurSelStyle->GetAttDate()->SetTextFont(tmp * 10 + 3);
4961  if (mod == 2)
4963  } else {
4964  fCurSelStyle->GetAttDate()->SetTextFont(tmp * 10 + 2);
4968  if (mod == 3)
4970  }
4972  DoEditor();
4973 }
4974 
4975 ////////////////////////////////////////////////////////////////////////////////
4976 /// Slot called whenever the date text format is modified by the user.
4977 
4979 {
4980  Int_t formatPrec = fCurSelStyle->GetOptDate() % 10;
4982  + formatPrec);
4983  DoEditor();
4984 }
4985 
4986 ////////////////////////////////////////////////////////////////////////////////
4987 /// Slot called whenever the date text font is modified by the user.
4988 
4990 {
4991  Int_t fontPrec = fCurSelStyle->GetAttDate()->GetTextFont() % 10;
4993  + fontPrec);
4994  DoEditor();
4995 }
4996 
4997 ////////////////////////////////////////////////////////////////////////////////
4998 /// Slot called whenever the date text align is modified by the user.
4999 
5001 {
5003  DoEditor();
5004 }
5005 
5006 ////////////////////////////////////////////////////////////////////////////////
5007 /// Slot called whenever the date text angle is modified by the user.
5008 
5010 {
5012  DoEditor();
5013 }
5014 
5015 ////////////////////////////////////////////////////////////////////////////////
5016 /// Slot called whenever the date abscissa is modified by the user.
5017 
5019 {
5021  DoEditor();
5022 }
5023 
5024 ////////////////////////////////////////////////////////////////////////////////
5025 /// Slot called whenever the date ordinate is modified by the user.
5026 
5028 {
5030  DoEditor();
5031 }
5032 
5033 ////////////////////////////////////////////////////////////////////////////////
5034 /// Slot called whenever the pad left margin is modified by the user.
5035 
5037 {
5039  DoEditor();
5040 }
5041 
5042 ////////////////////////////////////////////////////////////////////////////////
5043 /// Slot called whenever the pad right margin is modified by the user.
5044 
5046 {
5048  DoEditor();
5049 }
5050 
5051 ////////////////////////////////////////////////////////////////////////////////
5052 /// Slot called whenever the pad top margin is modified by the user.
5053 
5055 {
5057  DoEditor();
5058 }
5059 
5060 ////////////////////////////////////////////////////////////////////////////////
5061 /// Slot called whenever the pad bottom margin is modified by the user.
5062 
5064 {
5066  DoEditor();
5067 }
5068 
5069 ////////////////////////////////////////////////////////////////////////////////
5070 /// Slot called whenever the pad border mode is modified by the user.
5071 
5073 {
5074  Int_t i = kPadBorderModeSunken;
5075  TGButton *but = 0;
5076  while ((but = fPadBorderMode->Find(i)) && !but->IsDown())
5077  i++;
5078  fCurSelStyle->SetPadBorderMode(i - 1 - kPadBorderModeSunken);
5079  DoEditor();
5080 }
5081 
5082 ////////////////////////////////////////////////////////////////////////////////
5083 /// Slot called whenever the pad border size is modified by the user.
5084 
5086 {
5088  DoEditor();
5089 }
5090 
5091 ////////////////////////////////////////////////////////////////////////////////
5092 /// Slot called whenever the pad color is modified by the user.
5093 
5095 {
5097  DoEditor();
5098 }
5099 
5100 ////////////////////////////////////////////////////////////////////////////////
5101 /// Slot called whenever the pad tick X boolean is modified by the user.
5102 
5104 {
5106  DoEditor();
5107 }
5108 
5109 ////////////////////////////////////////////////////////////////////////////////
5110 /// Slot called whenever the pad tick Y boolean is modified by the user.
5111 
5113 {
5115  DoEditor();
5116 }
5117 
5118 ////////////////////////////////////////////////////////////////////////////////
5119 /// Slot called whenever the pad grid X boolean is modified by the user.
5120 
5122 {
5124  DoEditor();
5125 }
5126 
5127 ////////////////////////////////////////////////////////////////////////////////
5128 /// Slot called whenever the pad grid Y boolean is modified by the user.
5129 
5131 {
5133  DoEditor();
5134 }
5135 
5136 ////////////////////////////////////////////////////////////////////////////////
5137 /// Slot called whenever the grid line color is modified by the user.
5138 
5140 {
5142  DoEditor();
5143 }
5144 
5145 ////////////////////////////////////////////////////////////////////////////////
5146 /// Slot called whenever the grid line width is modified by the user.
5147 
5149 {
5151  DoEditor();
5152 }
5153 
5154 ////////////////////////////////////////////////////////////////////////////////
5155 /// Slot called whenever the grid line style is modified by the user.
5156 
5158 {
5160  DoEditor();
5161 }
5162 
5163 ////////////////////////////////////////////////////////////////////////////////
5164 /// Slot called whenever the histos fill color is modified by the user.
5165 
5167 {
5169  DoEditor();
5170 }
5171 
5172 ////////////////////////////////////////////////////////////////////////////////
5173 /// Slot called whenever the histos fill style is modified by the user.
5174 
5176 {
5178  DoEditor();
5179 }
5180 
5181 ////////////////////////////////////////////////////////////////////////////////
5182 /// Slot called whenever the histos line color is modified by the user.
5183 
5185 {
5187  DoEditor();
5188 }
5189 
5190 ////////////////////////////////////////////////////////////////////////////////
5191 /// Slot called whenever the histos line width is modified by the user.
5192 
5194 {
5196  DoEditor();
5197 }
5198 
5199 ////////////////////////////////////////////////////////////////////////////////
5200 /// Slot called whenever the histos line style is modified by the user.
5201 
5203 {
5205  DoEditor();
5206 }
5207 
5208 ////////////////////////////////////////////////////////////////////////////////
5209 /// Slot called whenever the histos bar width is modified by the user.
5210 
5212 {
5214  DoEditor();
5215 }
5216 
5217 ////////////////////////////////////////////////////////////////////////////////
5218 /// Slot called whenever the histos bar offset is modified by the user.
5219 
5221 {
5223  DoEditor();
5224 }
5225 
5226 ////////////////////////////////////////////////////////////////////////////////
5227 /// Slot called whenever the histos minimum zero boolean is modified
5228 /// by the user.
5229 
5231 {
5233  DoEditor();
5234 }
5235 
5236 ////////////////////////////////////////////////////////////////////////////////
5237 /// Slot called whenever the paint text format is modified by the user.
5238 
5240 {
5242  DoEditor();
5243 }
5244 
5245 ////////////////////////////////////////////////////////////////////////////////
5246 /// Slot called whenever the number of contours is modified by the user.
5247 
5249 {
5251  DoEditor();
5252 }
5253 
5254 ////////////////////////////////////////////////////////////////////////////////
5255 /// Slot called whenever the lego inner radius is modified by the user.
5256 
5258 {
5260  DoEditor();
5261 }
5262 
5263 ////////////////////////////////////////////////////////////////////////////////
5264 /// Slot called whenever the frame fill color is modified by the user.
5265 
5267 {
5269  DoEditor();
5270 }
5271 
5272 ////////////////////////////////////////////////////////////////////////////////
5273 /// Slot called whenever the frame fill style is modified by the user.
5274 
5276 {
5278  DoEditor();
5279 }
5280 
5281 ////////////////////////////////////////////////////////////////////////////////
5282 /// Slot called whenever the frame line color is modified by the user.
5283 
5285 {
5287  DoEditor();
5288 }
5289 
5290 ////////////////////////////////////////////////////////////////////////////////
5291 /// Slot called whenever the frame line width is modified by the user.
5292 
5294 {
5296  DoEditor();
5297 }
5298 
5299 ////////////////////////////////////////////////////////////////////////////////
5300 /// Slot called whenever the frame line style is modified by the user.
5301 
5303 {
5305  DoEditor();
5306 }
5307 
5308 ////////////////////////////////////////////////////////////////////////////////
5309 /// Slot called whenever the palette editor is opened by the user.
5310 
5312 {
5313  // TODO Open a palette editor
5314 }
5315 
5316 ////////////////////////////////////////////////////////////////////////////////
5317 /// Slot called whenever the frame border mode is modified by the user.
5318 
5320 {
5321  Int_t i = kFrameBorderModeSunken;
5322  TGButton *but = 0;
5323  while ((but = fFrameBorderMode->Find(i)) && !but->IsDown())
5324  i++;
5325  fCurSelStyle->SetFrameBorderMode(i - 1 - kFrameBorderModeSunken);
5326  DoEditor();
5327 }
5328 
5329 ////////////////////////////////////////////////////////////////////////////////
5330 /// Slot called whenever the frame border size is modified by the user.
5331 
5333 {
5335  DoEditor();
5336 }
5337 
5338 ////////////////////////////////////////////////////////////////////////////////
5339 /// Slot called whenever the function line color is modified by the user.
5340 
5342 {
5344  DoEditor();
5345 }
5346 
5347 ////////////////////////////////////////////////////////////////////////////////
5348 /// Slot called whenever the function line width is modified by the user.
5349 
5351 {
5353  DoEditor();
5354 }
5355 
5356 ////////////////////////////////////////////////////////////////////////////////
5357 /// Slot called whenever the function line style is modified by the user.
5358 
5360 {
5362  DoEditor();
5363 }
5364 
5365 ////////////////////////////////////////////////////////////////////////////////
5366 /// Slot called whenever the draw border boolean is modified by the user.
5367 
5369 {
5371  DoEditor();
5372 }
5373 
5374 ////////////////////////////////////////////////////////////////////////////////
5375 /// Slot called whenever the end error size is modified by the user.
5376 
5378 {
5380  DoEditor();
5381 }
5382 
5383 ////////////////////////////////////////////////////////////////////////////////
5384 /// Slot called whenever the error along X is modified by the user.
5385 
5387 {
5389  DoEditor();
5390 }
5391 
5392 ////////////////////////////////////////////////////////////////////////////////
5393 /// Slot called whenever the time offset is modified by the user.
5394 
5396 {
5397  Double_t offset = 0;
5398  Int_t year = ((Int_t) fTimeOffsetDate->GetNumber())/10000;
5399  Int_t month = (((Int_t) fTimeOffsetDate->GetNumber())/100) % 100;
5400  Int_t day = ((Int_t) fTimeOffsetDate->GetNumber()) % 100;
5401 
5402  while (day > 1) {
5403  day--;
5404  offset += 3600 * 24;
5405  }
5406 
5407  Int_t oneMonthInSecs;
5408  while (month > 1) {
5409  month--;
5410  switch (month) {
5411  case 2:
5412  if (year % 4) oneMonthInSecs = 3600 * 24 * 28;
5413  else oneMonthInSecs = 3600 * 24 * 29;
5414  break;
5415  case 1: case 3: case 5: case 7: case 8: case 10: case 12:
5416  oneMonthInSecs = 3600 * 24 * 31;
5417  break;
5418  default:
5419  oneMonthInSecs = 3600 * 24 * 30;
5420  }
5421  offset += oneMonthInSecs;
5422  }
5423 
5424  Int_t oneYearInSecs;
5425  while (year < 1995) {
5426  if (year % 4) oneYearInSecs = 3600 * 24 * 365;
5427  else oneYearInSecs = 3600 * 24 * 366;
5428  offset -= oneYearInSecs;
5429  year++;
5430  }
5431  while (year > 1995) {
5432  year--;
5433  if (year % 4) oneYearInSecs = 3600 * 24 * 365;
5434  else oneYearInSecs = 3600 * 24 * 366;
5435  offset += oneYearInSecs;
5436  }
5437 
5438  offset += 788918400 + fTimeOffsetTime->GetNumber();
5439 
5440  fCurSelStyle->SetTimeOffset(offset);
5441  DoEditor();
5442 }
5443 
5444 ////////////////////////////////////////////////////////////////////////////////
5445 /// Slot called whenever the strip decimal boolean is modified by the user.
5446 
5448 {
5450  DoEditor();
5451 }
5452 
5453 ////////////////////////////////////////////////////////////////////////////////
5454 /// Slot called whenever the apply on XYZ button is clicked. The settings of
5455 /// the current selected axis pad are applyed on all axis.
5456 /// NB: The logarithmic scale option isn't modified by this method.
5457 
5459 {
5460  switch (fCurTabAxisNum) {
5461  case 0: // X axis
5473  break;
5474  case 1: // Y axis
5486  break;
5487 
5488  case 2: // Z axis
5500  break;
5501  }
5502 
5506  DoEditor();
5507 }
5508 
5509 ////////////////////////////////////////////////////////////////////////////////
5510 /// Slot called whenever the X axis title size is modified by the user.
5511 
5513 {
5515  DoEditor();
5516 }
5517 
5518 ////////////////////////////////////////////////////////////////////////////////
5519 /// Slot called whenever the X axis title size mode is modified by the user.
5520 
5522 {
5523  Int_t tmp = fCurSelStyle->GetTitleFont("X") / 10;
5524  Int_t mod = fCurSelStyle->GetTitleFont("X") % 10;
5526  if (b) {
5527  fCurSelStyle->SetTitleFont(tmp * 10 + 3, "X");
5531  if (mod == 2)
5533  } else {
5534  fCurSelStyle->SetTitleFont(tmp * 10 + 2, "X");
5538  if (mod == 3)
5540  }
5542  DoEditor();
5543 }
5544 
5545 ////////////////////////////////////////////////////////////////////////////////
5546 /// Slot called whenever the X axis title color is modified by the user.
5547 
5549 {
5551  DoEditor();
5552 }
5553 
5554 ////////////////////////////////////////////////////////////////////////////////
5555 /// Slot called whenever the X axis title offset is modified by the user.
5556 
5558 {
5560  DoEditor();
5561 }
5562 
5563 ////////////////////////////////////////////////////////////////////////////////
5564 /// Slot called whenever the X axis title font is modified by the user.
5565 
5567 {
5568  Int_t fontPrec = fCurSelStyle->GetTitleFont("X") % 10;
5569  fCurSelStyle->SetTitleFont(fXTitleFont->GetSelected() * 10 + fontPrec, "X");
5570  DoEditor();
5571 }
5572 
5573 ////////////////////////////////////////////////////////////////////////////////
5574 /// Slot called whenever the X axis label size is modified by the user.
5575 
5577 {
5579  DoEditor();
5580 }
5581 
5582 ////////////////////////////////////////////////////////////////////////////////
5583 /// Slot called whenever the X axis label size mode is modified by the user.
5584 
5586 {
5587  Int_t tmp = fCurSelStyle->GetLabelFont("X") / 10;
5588  Int_t mod = fCurSelStyle->GetLabelFont("X") % 10;
5590  if (b) {
5591  fCurSelStyle->SetLabelFont(tmp * 10 + 3, "X");
5595  if (mod == 2)
5597  } else {
5598  fCurSelStyle->SetLabelFont(tmp * 10 + 2, "X");
5602  if (mod == 3)
5604  }
5606  DoEditor();
5607 }
5608 
5609 ////////////////////////////////////////////////////////////////////////////////
5610 /// Slot called whenever the X axis label color is modified by the user.
5611 
5613 {
5615  DoEditor();
5616 }
5617 
5618 ////////////////////////////////////////////////////////////////////////////////
5619 /// Slot called whenever the X axis label offset is modified by the user.
5620 
5622 {
5624  DoEditor();
5625 }
5626 
5627 ////////////////////////////////////////////////////////////////////////////////
5628 /// Slot called whenever the X axis label font is modified by the user.
5629 
5631 {
5632  Int_t fontPrec = fCurSelStyle->GetLabelFont("X") % 10;
5633  fCurSelStyle->SetLabelFont(fXLabelFont->GetSelected() * 10 + fontPrec, "X");
5634  DoEditor();
5635 }
5636 
5637 ////////////////////////////////////////////////////////////////////////////////
5638 /// Slot called whenever the X axis color is modified by the user.
5639 
5641 {
5643  DoEditor();
5644 }
5645 
5646 ////////////////////////////////////////////////////////////////////////////////
5647 /// Slot called whenever the X axis tick length is modified by the user.
5648 
5650 {
5652  DoEditor();
5653 }
5654 
5655 ////////////////////////////////////////////////////////////////////////////////
5656 /// Slot called whenever the X axis log scale boolean is modified
5657 /// by the user.
5658 
5660 {
5662  DoEditor();
5663 }
5664 
5665 ////////////////////////////////////////////////////////////////////////////////
5666 /// Slot called whenever the X axis Number of divisions is modified
5667 /// by the user.
5668 
5670 {
5671  Int_t sgn = -1;
5672  if (fXNdivisionsOptimize->IsDown()) sgn = 1;
5674  + 100 * fXNdivSub->GetIntNumber()
5675  + 10000 * fXNdivSubSub->GetIntNumber()), "X");
5676  DoEditor();
5677 }
5678 
5679 ////////////////////////////////////////////////////////////////////////////////
5680 /// Slot called whenever the Y axis title size is modified by the user.
5681 
5683 {
5685  DoEditor();
5686 }
5687 
5688 ////////////////////////////////////////////////////////////////////////////////
5689 /// Slot called whenever the Y axis title size mode is modified by the user.
5690 
5692 {
5693  Int_t tmp = fCurSelStyle->GetTitleFont("Y") / 10;
5694  Int_t mod = fCurSelStyle->GetTitleFont("Y") % 10;
5696  if (b) {
5697  fCurSelStyle->SetTitleFont(tmp * 10 + 3, "Y");
5701  if (mod == 2)
5703  } else {
5704  fCurSelStyle->SetTitleFont(tmp * 10 + 2, "Y");
5708  if (mod == 3)
5710  }
5712  DoEditor();
5713 }
5714 
5715 ////////////////////////////////////////////////////////////////////////////////
5716 /// Slot called whenever the Y axis title color is modified by the user.
5717 
5719 {
5721  DoEditor();
5722 }
5723 
5724 ////////////////////////////////////////////////////////////////////////////////
5725 /// Slot called whenever the Y axis title offset is modified by the user.
5726 
5728 {
5730  DoEditor();
5731 }
5732 
5733 ////////////////////////////////////////////////////////////////////////////////
5734 /// Slot called whenever the Y axis title font is modified by the user.
5735 
5737 {
5738  Int_t fontPrec = fCurSelStyle->GetTitleFont("Y") % 10;
5739  fCurSelStyle->SetTitleFont(fYTitleFont->GetSelected() * 10 + fontPrec, "Y");
5740  DoEditor();
5741 }
5742 
5743 ////////////////////////////////////////////////////////////////////////////////
5744 /// Slot called whenever the Y axis label size is modified by the user.
5745 
5747 {
5749  DoEditor();
5750 }
5751 
5752 ////////////////////////////////////////////////////////////////////////////////
5753 /// Slot called whenever the Y axis label size mode is modified by the user.
5754 
5756 {
5757  Int_t tmp = fCurSelStyle->GetLabelFont("Y") / 10;
5758  Int_t mod = fCurSelStyle->GetLabelFont("Y") % 10;
5760  if (b) {
5761  fCurSelStyle->SetLabelFont(tmp * 10 + 3, "Y");
5765  if (mod == 2)
5767  } else {
5768  fCurSelStyle->SetLabelFont(tmp * 10 + 2, "Y");
5772  if (mod == 3)
5774  }
5776  DoEditor();
5777 }
5778 
5779 ////////////////////////////////////////////////////////////////////////////////
5780 /// Slot called whenever the Y axis label color is modified by the user.
5781 
5783 {
5785  DoEditor();
5786 }
5787 
5788 ////////////////////////////////////////////////////////////////////////////////
5789 /// Slot called whenever the Y axis label offset is modified by the user.
5790 
5792 {
5794  DoEditor();
5795 }
5796 
5797 ////////////////////////////////////////////////////////////////////////////////
5798 /// Slot called whenever the Y axis label font is modified by the user.
5799 
5801 {
5802  Int_t fontPrec = fCurSelStyle->GetLabelFont("Y") % 10;
5803  fCurSelStyle->SetLabelFont(fYLabelFont->GetSelected() * 10 + fontPrec, "Y");
5804  DoEditor();
5805 }
5806 
5807 ////////////////////////////////////////////////////////////////////////////////
5808 /// Slot called whenever the Y axis color is modified by the user.
5809 
5811 {
5813  DoEditor();
5814 }
5815 
5816 ////////////////////////////////////////////////////////////////////////////////
5817 /// Slot called whenever the Y axis tick length is modified by the user.
5818 
5820 {
5822  DoEditor();
5823 }
5824 
5825 ////////////////////////////////////////////////////////////////////////////////
5826 /// Slot called whenever the Y axis log scale boolean is modified by the user.
5827 
5829 {
5831  DoEditor();
5832 }
5833 
5834 ////////////////////////////////////////////////////////////////////////////////
5835 /// Slot called whenever the Y axis Number of divisions is modified
5836 /// by the user.
5837 
5839 {
5840  Int_t sgn = -1;
5841  if (fYNdivisionsOptimize->IsDown()) sgn = 1;
5843  + 100 * fYNdivSub->GetIntNumber()
5844  + 10000 * fYNdivSubSub->GetIntNumber()), "Y");
5845  DoEditor();
5846 }
5847 
5848 ////////////////////////////////////////////////////////////////////////////////
5849 /// Slot called whenever the Z axis title size is modified by the user.
5850 
5852 {
5854  DoEditor();
5855 }
5856 
5857 ////////////////////////////////////////////////////////////////////////////////
5858 /// Slot called whenever the Z axis title size mode is modified by the user.
5859 
5861 {
5862  Int_t tmp = fCurSelStyle->GetTitleFont("Z") / 10;
5863  Int_t mod = fCurSelStyle->GetTitleFont("Z") % 10;
5865  if (b) {
5866  fCurSelStyle->SetTitleFont(tmp * 10 + 3, "Z");
5870  if (mod == 2)
5872  } else {
5873  fCurSelStyle->SetTitleFont(tmp * 10 + 2, "Z");
5877  if (mod == 3)
5879  }
5881  DoEditor();
5882 }
5883 
5884 ////////////////////////////////////////////////////////////////////////////////
5885 /// Slot called whenever the Z axis title color is modified by the user.
5886 
5888 {
5890  DoEditor();
5891 }
5892 
5893 ////////////////////////////////////////////////////////////////////////////////
5894 /// Slot called whenever the Z axis title offset is modified by the user.
5895 
5897 {
5899  DoEditor();
5900 }
5901 
5902 ////////////////////////////////////////////////////////////////////////////////
5903 /// Slot called whenever the Z axis title font is modified by the user.
5904 
5906 {
5907  Int_t fontPrec = fCurSelStyle->GetTitleFont("Z") % 10;
5908  fCurSelStyle->SetTitleFont(fZTitleFont->GetSelected() * 10 + fontPrec, "Z");
5909  DoEditor();
5910 }
5911 
5912 ////////////////////////////////////////////////////////////////////////////////
5913 /// Slot called whenever the Z axis label size is modified by the user.
5914 
5916 {
5918  DoEditor();
5919 }
5920 
5921 ////////////////////////////////////////////////////////////////////////////////
5922 /// Slot called whenever the Z axis Label size mode is modified by the user.
5923 
5925 {
5926  Int_t tmp = fCurSelStyle->GetLabelFont("Z") / 10;
5927  Int_t mod = fCurSelStyle->GetLabelFont("Z") % 10;
5929  if (b) {
5930  fCurSelStyle->SetLabelFont(tmp * 10 + 3, "Z");
5934  if (mod == 2)
5936  } else {
5937  fCurSelStyle->SetLabelFont(tmp * 10 + 2, "Z");
5941  if (mod == 3)
5943  }
5945  DoEditor();
5946 }
5947 
5948 ////////////////////////////////////////////////////////////////////////////////
5949 /// Slot called whenever the Z axis label color is modified by the user.
5950 
5952 {
5954  DoEditor();
5955 }
5956 
5957 ////////////////////////////////////////////////////////////////////////////////
5958 /// Slot called whenever the Z axis label offset is modified by the user.
5959 
5961 {
5963  DoEditor();
5964 }
5965 
5966 ////////////////////////////////////////////////////////////////////////////////
5967 /// Slot called whenever the Z axis label font is modified by the user.
5968 
5970 {
5971  Int_t fontPrec = fCurSelStyle->GetLabelFont("Z") % 10;
5972  fCurSelStyle->SetLabelFont(fZLabelFont->GetSelected() * 10 + fontPrec, "Z");
5973  DoEditor();
5974 }
5975 
5976 ////////////////////////////////////////////////////////////////////////////////
5977 /// Slot called whenever the Z axis color is modified by the user.
5978 
5980 {
5982  DoEditor();
5983 }
5984 
5985 ////////////////////////////////////////////////////////////////////////////////
5986 /// Slot called whenever the Z axis tick length is modified by the user.
5987 
5989 {
5991  DoEditor();
5992 }
5993 
5994 ////////////////////////////////////////////////////////////////////////////////
5995 /// Slot called whenever the Z axis log scale boolean is modified by the user.
5996 
5998 {
6000  DoEditor();
6001 }
6002 
6003 ////////////////////////////////////////////////////////////////////////////////
6004 /// Slot called whenever the Z axis Number of divisions is modified
6005 /// by the user.
6006 
6008 {
6009  Int_t sgn = -1;
6010  if (fZNdivisionsOptimize->IsDown()) sgn = 1;
6012  + 100 * fZNdivSub->GetIntNumber()
6013  + 10000 * fZNdivSubSub->GetIntNumber()), "Z");
6014  DoEditor();
6015 }
6016 
6017 ////////////////////////////////////////////////////////////////////////////////
6018 /// Slot called whenever the OptTitle boolean is modified by the user.
6019 
6021 {
6026  DoEditor();
6027 }
6028 
6029 ////////////////////////////////////////////////////////////////////////////////
6030 /// Slot called whenever the title fill color is modified by the user.
6031 
6033 {
6035  DoEditor();
6036 }
6037 
6038 ////////////////////////////////////////////////////////////////////////////////
6039 /// Slot called whenever the title fill style is modified by the user.
6040 
6042 {
6044  DoEditor();
6045 }
6046 
6047 ////////////////////////////////////////////////////////////////////////////////
6048 /// Slot called whenever the title text color is modified by the user.
6049 
6051 {
6053  DoEditor();
6054 }
6055 
6056 ////////////////////////////////////////////////////////////////////////////////
6057 /// Slot called whenever the text size is modified by the user.
6058 
6060 {
6062  DoEditor();
6063 }
6064 
6065 ////////////////////////////////////////////////////////////////////////////////
6066 /// Slot called whenever the text size mode is modified by the user.
6067 
6069 {
6070  Int_t tmp = fCurSelStyle->GetTitleFont() / 10;
6071  Int_t mod = fCurSelStyle->GetTitleFont() % 10;
6073  if (b) {
6074  fCurSelStyle->SetTitleFont(tmp * 10 + 3);
6078  if (mod == 2)
6080  } else {
6081  fCurSelStyle->SetTitleFont(tmp * 10 + 2);
6085  if (mod == 3)
6087  }
6089  DoEditor();
6090 }
6091 
6092 ////////////////////////////////////////////////////////////////////////////////
6093 /// Slot called whenever the title text font is modified by the user.
6094 
6096 {
6097  Int_t tmp = fCurSelStyle->GetTitleFont() % 10;
6099  DoEditor();
6100 }
6101 
6102 ////////////////////////////////////////////////////////////////////////////////
6103 /// Slot called whenever the title text align is modified by the user.
6104 
6106 {
6108  DoEditor();
6109 }
6110 
6111 ////////////////////////////////////////////////////////////////////////////////
6112 /// Slot called whenever the title border size is modified by the user.
6113 
6115 {
6117  DoEditor();
6118 }
6119 
6120 ////////////////////////////////////////////////////////////////////////////////
6121 /// Slot called whenever the legend border size is modified by the user.
6122 
6124 {
6126  DoEditor();
6127 }
6128 
6129 ////////////////////////////////////////////////////////////////////////////////
6130 /// Slot called whenever the title abscissa is modified by the user.
6131 
6133 {
6135  DoEditor();
6136 }
6137 
6138 ////////////////////////////////////////////////////////////////////////////////
6139 /// Slot called whenever the title ordinate is modified by the user.
6140 
6142 {
6144  DoEditor();
6145 }
6146 
6147 ////////////////////////////////////////////////////////////////////////////////
6148 /// Slot called whenever the title width is modified by the user.
6149 
6151 {
6153  DoEditor();
6154 }
6155 
6156 ////////////////////////////////////////////////////////////////////////////////
6157 /// Slot called whenever the title height is modified by the user.
6158 
6160 {
6162  DoEditor();
6163 }
6164 
6165 ////////////////////////////////////////////////////////////////////////////////
6166 /// Slot called whenever the stats fill color is modified by the user.
6167 
6169 {
6171  DoEditor();
6172 }
6173 
6174 ////////////////////////////////////////////////////////////////////////////////
6175 /// Slot called whenever the stats fill style is modified by the user.
6176 
6178 {
6179  fCurSelStyle->SetStatStyle(pattern);
6180  DoEditor();
6181 }
6182 
6183 ////////////////////////////////////////////////////////////////////////////////
6184 /// Slot called whenever the stats text color is modified by the user.
6185 
6187 {
6189  DoEditor();
6190 }
6191 
6192 ////////////////////////////////////////////////////////////////////////////////
6193 /// Slot called whenever the text size is modified by the user.
6194 
6196 {
6198  DoEditor();
6199 }
6200 
6201 ////////////////////////////////////////////////////////////////////////////////
6202 /// Slot called whenever the text size mode is modified by the user.
6203 
6205 {
6206  Int_t tmp = fCurSelStyle->GetStatFont() / 10;
6207  Int_t mod = fCurSelStyle->GetStatFont() % 10;
6209  if (b) {
6210  fCurSelStyle->SetStatFont(tmp * 10 + 3);
6214  if (mod == 2)
6217  } else {
6218  fCurSelStyle->SetStatFont(tmp * 10 + 2);
6222  if (mod == 3)
6225  }
6227  DoEditor();
6228 }
6229 
6230 ////////////////////////////////////////////////////////////////////////////////
6231 /// Slot called whenever the stats text font is modified by the user.
6232 
6234 {
6235  Int_t tmp = fCurSelStyle->GetStatFont() % 10;
6237  DoEditor();
6238 }
6239 
6240 ////////////////////////////////////////////////////////////////////////////////
6241 /// Slot called whenever the stats abscissa is modified by the user.
6242 
6244 {
6246  DoEditor();
6247 }
6248 
6249 ////////////////////////////////////////////////////////////////////////////////
6250 /// Slot called whenever the stats ordinate is modified by the user.
6251 
6253 {
6255  DoEditor();
6256 }
6257 
6258 ////////////////////////////////////////////////////////////////////////////////
6259 /// Slot called whenever the stats width is modified by the user.
6260 
6262 {
6264  DoEditor();
6265 }
6266 
6267 ////////////////////////////////////////////////////////////////////////////////
6268 /// Slot called whenever the stats height is modified by the user.
6269 
6271 {
6273  DoEditor();
6274 }
6275 
6276 ////////////////////////////////////////////////////////////////////////////////
6277 /// Slot called whenever the stats border size is modified by the user.
6278 
6280 {
6282  DoEditor();
6283 }
6284 
6285 ////////////////////////////////////////////////////////////////////////////////
6286 /// Slot called whenever one of the stats options is modified by the user.
6287 
6289 {
6290  Int_t stat = 0;
6291  if (fOptStatName->IsDown()) stat +=1;
6292  if (fOptStatEntries->IsDown()) stat +=10;
6293  if (fOptStatMean->IsDown()) stat +=100;
6294  if (fOptStatRMS->IsDown()) stat +=1000;
6295  if (fOptStatUnderflow->IsDown()) stat +=10000;
6296  if (fOptStatOverflow->IsDown()) stat +=100000;
6297  if (fOptStatIntegral->IsDown()) stat +=1000000;
6298  if (fOptStatSkewness->IsDown()) stat +=10000000;
6299  if (fOptStatKurtosis->IsDown()) stat +=100000000;
6300  if (fOptStatErrors->IsDown()) {
6301  if (fOptStatMean->IsDown()) stat +=100;
6302  if (fOptStatRMS->IsDown()) stat +=1000;
6303  if (fOptStatSkewness->IsDown()) stat +=10000000;
6304  if (fOptStatKurtosis->IsDown()) stat +=100000000;
6305  }
6306  if (stat == 1) stat = 1000000001;
6307  fCurSelStyle->SetOptStat(stat);
6308  DoEditor();
6309 }
6310 
6311 ////////////////////////////////////////////////////////////////////////////////
6312 /// Slot called whenever the stats paint format is modified by the user.
6313 
6314 void TStyleManager::ModStatFormat(const char *sformat)
6315 {
6316  fCurSelStyle->SetStatFormat(sformat);
6317  DoEditor();
6318 }
6319 
6320 ////////////////////////////////////////////////////////////////////////////////
6321 /// Slot called whenever one of the fit options is modified by the user.
6322 
6324 {
6325  Int_t fit = 0;
6326  if (fOptFitValues->IsDown()) fit +=1;
6327  if (fOptFitErrors->IsDown()) fit +=10;
6328  if (fOptFitChi->IsDown()) fit +=100;
6329  if (fOptFitProbability->IsDown()) fit +=1000;
6330  if (fit == 1) fit = 10001;
6331  fCurSelStyle->SetOptFit(fit);
6332  DoEditor();
6333 }
6334 
6335 ////////////////////////////////////////////////////////////////////////////////
6336 /// Slot called whenever the fit paint format is modified by the user.
6337 
6338 void TStyleManager::ModFitFormat(const char *fitformat)
6339 {
6340  fCurSelStyle->SetFitFormat(fitformat);
6341  DoEditor();
6342 }
6343 
6344 ////////////////////////////////////////////////////////////////////////////////
6345 /// Slot called whenever the PS header is modified by the user.
6346 
6348 {
6350  DoEditor();
6351 }
6352 
6353 ////////////////////////////////////////////////////////////////////////////////
6354 /// Slot called whenever the PS title is modified by the user.
6355 
6357 {
6359  DoEditor();
6360 }
6361 
6362 ////////////////////////////////////////////////////////////////////////////////
6363 /// Slot called whenever the PS color model is modified by the user.
6364 
6366 {
6367  Int_t i = kPSPDFColorModelPSRGB;
6368  TGButton *but = 0;
6369  while ((but = fColorModelPS->Find(i)) && !but->IsDown()) i++;
6370  fCurSelStyle->SetColorModelPS(i - kPSPDFColorModelPSRGB);
6371  DoEditor();
6372 }
6373 
6374 ////////////////////////////////////////////////////////////////////////////////
6375 /// Slot called whenever the PS line scale is modified by the user.
6376 
6378 {
6380  DoEditor();
6381 }
6382 
6383 ////////////////////////////////////////////////////////////////////////////////
6384 /// Slot called whenever the PS paper size is modified by the user.
6385 
6387 {
6388  Float_t papSizeX;
6389  Float_t papSizeY;
6390  fCurSelStyle->GetPaperSize(papSizeX, papSizeY);
6391 
6392  if (fPaperSizePredef->GetSelected() == 1) {
6393  if (!fPaperSizeEnCm) {
6395  fPaperSizeX->SetNumber(papSizeX);
6396  fPaperSizeY->SetNumber(papSizeY);
6397  }
6398  } else if (fPaperSizePredef->GetSelected() == 2) {
6399  if (fPaperSizeEnCm) {
6401  fPaperSizeX->SetNumber(papSizeX * 0.394);
6402  fPaperSizeY->SetNumber(papSizeY * 0.394);
6403  }
6404  } else if (fPaperSizePredef->GetSelected() == 3) {
6406  fPaperSizeX->SetNumber(20);
6407  fPaperSizeY->SetNumber(26);
6408  fCurSelStyle->SetPaperSize(20, 26);
6409  } else if (fPaperSizePredef->GetSelected() == 4) {
6411  fPaperSizeX->SetNumber(20 * 0.394);
6412  fPaperSizeY->SetNumber(24 * 0.394);
6413  fCurSelStyle->SetPaperSize(20, 24);
6414  }
6415  DoEditor();
6416 }
6417 
6418 ////////////////////////////////////////////////////////////////////////////////
6419 /// Slot called whenever the PS paper size is modified by the user.
6420 
6422 {
6423  if (fPaperSizeEnCm) {
6425  fPaperSizeY->GetNumber());
6427  } else {
6429  fPaperSizeY->GetNumber() * 2.54);
6431  }
6432  DoEditor();
6433 }
const char * kFiletypes[]
void DoApplyOnSelect(Int_t i)
Slot called to choose on which object(s) the 'Apply' button will have an effect.
TGLabel * fStatFormatLabel
void CreateTabPsPdf(TGCompositeFrame *tab)
Add the tab 'PS / PDF' to the editor.
void ModZTitleColor()
Slot called whenever the Z axis title color is modified by the user.
void AddHistosHistosContours(TGCompositeFrame *f)
Add the 'Contours' group frame to the 'Histos - Histos' tab.
virtual void HideFrame(TGFrame *f)
Hide sub frame.
Definition: TGFrame.cxx:1172
void AddStatsStats(TGCompositeFrame *f)
Add the 'Stat Options' group frame to the 'Stats' tab.
TGButtonGroup * fFrameBorderMode
void ModZTitleSize()
Slot called whenever the Z axis title size is modified by the user.
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
Definition: TSystem.cxx:928
void ModXLabelOffset()
Slot called whenever the X axis label offset is modified by the user.
TGVerticalFrame * fEditionFrame
virtual const char * GetTitle() const
Returns title of object.
Definition: TNamed.h:52
TGCheckButton * fOptStatUnderflow
void AddHistosHistosAxis(TGCompositeFrame *f)
Add the 'Axis' group frame to the 'Histos - Histos' tab.
void DoChangeAxisTab(Int_t i)
Slot called when the user changes the current axis tab.
void ModHistFillColor()
Slot called whenever the histos fill color is modified by the user.
virtual Style_t GetLineStyle() const
Definition: TAttLine.h:48
virtual Style_t GetFillStyle() const
Definition: TAttFill.h:44
void ModPadBorderSize()
Slot called whenever the pad border size is modified by the user.
virtual void SetLineWidth(Width_t lwidth)
Definition: TAttLine.h:57
virtual void Resize(UInt_t w=0, UInt_t h=0)
Resize the frame.
Definition: TGFrame.cxx:587
Float_t GetEndErrorSize() const
Definition: TStyle.h:195
void ModOptLogx()
Slot called whenever the X axis log scale boolean is modified by the user.
void AddPsPdfColorModel(TGCompositeFrame *f)
Add the 'Color Model' group frame to the 'PS / PDF' tab.
TGTextEntry * AddTextEntry(TGCompositeFrame *f, const char *s, Int_t id)
Add a text entry to the frame f. A caption can be added.
const char * GetHeaderPS() const
Definition: TStyle.h:292
Width_t GetGridWidth() const
Definition: TStyle.h:233
TGLineWidthComboBox * fFuncWidth
Float_t GetLabelSize(Option_t *axis="X") const
Return label size.
Definition: TStyle.cxx:774
void SetBarWidth(Float_t barwidth=0.5)
Definition: TStyle.h:332
TGHorizontalFrame * fEditionButtonFrame
Bool_t fSigSlotConnected
Definition: TStyleManager.h:83
virtual void Resize(UInt_t w, UInt_t h)
Resize the listbox widget.
Definition: TGListBox.cxx:1419
TGColorSelect * fZAxisColor
void SetEndErrorSize(Float_t np=2)
Set the size (in pixels) of the small lines drawn at the end of the error bars (TH1 or TGraphErrors)...
Definition: TStyle.cxx:961
R__EXTERN const char gHelpSMPad[]
Definition: HelpSMText.h:19
void DisconnectAll()
Disconnect every entry in the top level interface of the slot.
TGColorSelect * fYLabelColor
void SetPadGridX(Bool_t gridx)
Definition: TStyle.h:357
void ModXTitleOffset()
Slot called whenever the X axis title offset is modified by the user.
virtual Float_t GetTextAngle() const
Definition: TAttText.h:47
static Vc_ALWAYS_INLINE int_v min(const int_v &x, const int_v &y)
Definition: vector.h:433
Float_t GetTitleW() const
Definition: TStyle.h:290
void ModXTickLength()
Slot called whenever the X axis tick length is modified by the user.
TGComboBox * fTextAlign
TGLineWidthComboBox * fHistLineWidth
Bool_t GetPadGridX() const
Definition: TStyle.h:224
void SetPadLeftMargin(Float_t margin=0.1)
Definition: TStyle.h:355
TGLineWidthComboBox * fHatchesLineWidth
void AddHistosFramesBorder(TGCompositeFrame *f)
Add the 'Border' group frame to the 'Histos - Frames' tab.
Width_t GetFrameBorderSize() const
Definition: TStyle.h:239
TGNumberEntry * AddNumberEntry(TGCompositeFrame *f, Int_t e1, Int_t e2, Int_t e3, Int_t id, const char *s, Double_t init, Int_t digits, TGNumberFormat::EStyle nfS, TGNumberFormat::EAttribute nfA, TGNumberFormat::ELimit nfL, Double_t min, Double_t max)
Add a number entry to the frame f. A caption can be added.
void SetTitleY(Float_t y=0.985)
Definition: TStyle.h:408
Int_t GetCanvasBorderMode() const
Definition: TStyle.h:200
void ModFuncWidth()
Slot called whenever the function line width is modified by the user.
const Double_t * v1
Definition: TArcBall.cxx:33
virtual void MoveResize(Int_t x, Int_t y, UInt_t w=0, UInt_t h=0)
Move and/or resize the frame.
Definition: TGFrame.cxx:611
void ModPaintTextFormat()
Slot called whenever the paint text format is modified by the user.
virtual Font_t GetTextFont() const
Definition: TAttText.h:49
TGCheckButton * fStripDecimals
short Style_t
Definition: RtypesCore.h:76
TGStatusBar * fStatusBar
void ModHistLineWidth()
Slot called whenever the histos line width is modified by the user.
void SetStatColor(Color_t color=19)
Definition: TStyle.h:384
void ModStatTextColor(Pixel_t color)
Slot called whenever the stats text color is modified by the user.
void SetFrameBorderMode(Int_t mode=1)
Definition: TStyle.h:373
void ModPadLeftMargin()
Slot called whenever the pad left margin is modified by the user.
TGComboBox * AddPaperSizeEntry(TGCompositeFrame *f, Int_t id)
Add a prefered paper size combo box to the frame f.
const TGWindow * GetParent() const
Definition: TGWindow.h:87
Definition: TGTab.h:66
TObject * fCurObj
TLine * line
void ModStatFormat(const char *sformat)
Slot called whenever the stats paint format is modified by the user.
Int_t GetDrawBorder() const
Definition: TStyle.h:194
TGComboBox * fListComboBox
void ModPadTickY()
Slot called whenever the pad tick Y boolean is modified by the user.
float Float_t
Definition: RtypesCore.h:53
void SetStatH(Float_t h=0.1)
Definition: TStyle.h:394
void ConnectEditor(Int_t tabNum)
Connect every widget entry of the editor to its specific slot.
TGPopupMenu * fMenuStyle
Definition: TStyleManager.h:89
void AddAxisZTitle(TGCompositeFrame *f)
Add the 'Title' group frame to the 'Axis - Z Axis' tab.
void ModBarOffset()
Slot called whenever the histos bar offset is modified by the user.
Double_t GetTimeOffset() const
Definition: TStyle.h:277
void SetLabelFont(Style_t font=62, Option_t *axis="X")
Set font number used to draw axis labels.
Definition: TStyle.cxx:1032
void DoApplyOn()
Slot called when the user clicks on the 'Apply' button.
TGColorSelect * fZLabelColor
Style_t GetHistLineStyle() const
Definition: TStyle.h:244
void DoHelp(Int_t i)
Open an help window. Called via the menu bar or the tool bar.
TGColorSelect * AddColorEntry(TGCompositeFrame *f, Int_t id)
Add a color entry to the frame f.
Int_t GetFrameBorderMode() const
Definition: TStyle.h:240
void AddGeneralFill(TGCompositeFrame *f)
Add the 'Fill' group frame to the 'General' tab.
void CreateTabGeneral(TGCompositeFrame *tab)
Add the tab 'General' to the editor.
void AddCanvasGeometry(TGCompositeFrame *f)
Add the 'Geometry' group frame to the 'Canvas' tab.
TGColorSelect * fLineColor
void SetStatStyle(Style_t style=1001)
Definition: TStyle.h:386
TGCheckButton * fOptLogx
void SetDateY(Float_t y=0.01)
Definition: TStyle.h:334
void SetWindowName(const char *name=0)
Set window name. This is typically done via the window manager.
Definition: TGFrame.cxx:1746
R__EXTERN const char gHelpSMAxis[]
Definition: HelpSMText.h:21
TGNumberEntry * fYTitleOffset
void ModCanvasDefX()
Slot called whenever the canvas default abscissa is modified by the user.
void ModPadBottomMargin()
Slot called whenever the pad bottom margin is modified by the user.
Color_t GetFrameFillColor() const
Definition: TStyle.h:234
void SetAxisColor(Color_t color=1, Option_t *axis="X")
Set color to draw the axis line and tick marks.
Definition: TStyle.cxx:945
Int_t GetPadTickX() const
Definition: TStyle.h:226
Color_t GetGridColor() const
Definition: TStyle.h:231
TStyle * fCurSelStyle
Definition: TStyleManager.h:73
void ModStripDecimals()
Slot called whenever the strip decimal boolean is modified by the user.
void SetTitleW(Float_t w=0)
Definition: TStyle.h:409
virtual void SetToolTipText(const char *text, Long_t delayms=500)
Set tool tip text associated with this text entry.
R__EXTERN TStyle * gStyle
Definition: TStyle.h:423
void SetHistLineWidth(Width_t width=1)
Definition: TStyle.h:378
TGComboBox * AddTextAlignEntry(TGCompositeFrame *f, Int_t id)
Add a text align combo box to the frame f.
virtual ~TStyleManager()
Destructor.
void ModPaperSizeXY()
Slot called whenever the PS paper size is modified by the user.
TGPopupMenu * fImportCascade
Definition: TStyleManager.h:90
Float_t GetTickLength(Option_t *axis="X") const
Return tick length.
Definition: TStyle.cxx:814
virtual void SetButton(Int_t id, Bool_t down=kTRUE)
Sets the button with id to be on/down, and if this is an exclusive group, all other button in the gro...
Color_t GetTitleFillColor() const
Definition: TStyle.h:279
TH1 * h
Definition: legend2.C:5
void ModYLabelSize()
Slot called whenever the Y axis label size is modified by the user.
void ModPadTickX()
Slot called whenever the pad tick X boolean is modified by the user.
Width_t GetPadBorderSize() const
Definition: TStyle.h:218
TGNumberEntry * fBarWidth
void Draw3DCorner(Bool_t corner)
Definition: TGStatusBar.h:69
void UpdateStatusBar()
Update the content of the status bar: show the name of the current selected style, its title and the macro from which it has been imported.
void SetGridStyle(Style_t style=3)
Definition: TStyle.h:364
void ModTitleAlign()
Slot called whenever the title text align is modified by the user.
virtual void DisableEntry(Int_t id)
Disable entry (disabled entries appear in a sunken relieve).
Definition: TGMenu.cxx:1714
void SetColor(Pixel_t color, Bool_t emit=kTRUE)
Set color.
void SaveSource(const char *filename, Option_t *option=0)
Save the current style in a C++ macro file.
Definition: TStyle.cxx:1484
TGedPatternSelect * AddFillStyleEntry(TGCompositeFrame *f, Int_t id)
Add a fill style entry to the frame f.
TGCheckButton * fAttDateTextSizeInPixels
virtual TGDimension GetDefaultSize() const
Return default size of listbox widget.
Definition: TGListBox.cxx:1444
void ModZLabelSizeInPixels(Bool_t b)
Slot called whenever the Z axis Label size mode is modified by the user.
virtual void SetTextColor(Pixel_t color, Bool_t local=kTRUE)
Changes text color.
void ModOptLogy()
Slot called whenever the Y axis log scale boolean is modified by the user.
void ModXLabelFont()
Slot called whenever the X axis label font is modified by the user.
Float_t GetTitleSize(Option_t *axis="X") const
Return title size.
Definition: TStyle.cxx:862
TGPopupMenu * fMenuHelp
Definition: TStyleManager.h:91
virtual void SetNumber(Double_t val)
TGNumberEntry * fTimeOffsetDate
void SetFrameLineWidth(Width_t width=1)
Definition: TStyle.h:371
virtual void AddFirst(TObject *obj)
Add object at the beginning of the list.
Definition: TList.cxx:92
void ModXLabelSizeInPixels(Bool_t b)
Slot called whenever the X axis label size mode is modified by the user.
TGColorSelect * fHistLineColor
void UpdateEditor(Int_t tabNum)
Update the values of every widget entry in the editor.
TGTextButton * fEditionHelp
virtual Bool_t IsDown() const
Definition: TGButton.h:316
virtual Float_t GetTextSize() const
Definition: TAttText.h:50
void SetMarkerStyle(Style_t pattern)
Set marker.
void AddAxisXLabels(TGCompositeFrame *f)
Add the 'Labels' group frame to the 'Axis - X Axis' tab.
Int_t GetNumberContours() const
Definition: TStyle.h:249
TGCheckButton * fYLabelSizeInPixels
TGPictureButton * fToolBarNew
Definition: TStyleManager.h:94
void ModZTitleOffset()
Slot called whenever the Z axis title offset is modified by the user.
void ModOptFit()
Slot called whenever one of the fit options is modified by the user.
void AddStatsGeometry(TGCompositeFrame *f)
Add the 'Geometry' group frame to the 'Stats' tab.
ClassImp(TStyleManager) enum EStyleManagerWid
TGNumberEntry * fCanvasDefY
TGLineWidthComboBox * fTitleBorderSize
TGLabel * fCurPadLabel
#define gROOT
Definition: TROOT.h:340
TGFontTypeComboBox * fXLabelFont
TGFontTypeComboBox * fTextFont
void ModFillStyle()
Slot called whenever the fill style is modified by the user.
TGedMarkerSelect * AddMarkerStyleEntry(TGCompositeFrame *f, Int_t id)
Add a marker style entry to the frame f.
TGComboBox * AddMarkerSizeEntry(TGCompositeFrame *f, Int_t id)
Add a marker size entry to the frame f.
void ModFrameBorderMode()
Slot called whenever the frame border mode is modified by the user.
void SetStatX(Float_t x=0)
Definition: TStyle.h:391
TGTextEntry * fTitlePS
void CreateMacro()
Create a TGFileInfo concerning a macro, if it doesn't exist already.
void SetStatBorderSize(Width_t size=2)
Definition: TStyle.h:387
void DoImportMacro(Bool_t create)
Slot called to import a style from a C++ macro file.
void SetTitleFont(Style_t font=62, Option_t *axis="X")
Definition: TStyle.cxx:1388
Float_t GetTitleX() const
Definition: TStyle.h:288
void DoDelete()
Delete the current selected style from the ROOT session.
Basic string class.
Definition: TString.h:137
void ModApplyOnXYZ()
Slot called whenever the apply on XYZ button is clicked.
#define gClient
Definition: TGClient.h:174
virtual void SetLayoutManager(TGLayoutManager *l)
Set the layout manager for the composite frame.
Definition: TGFrame.cxx:982
void Hide()
Called to hide the style manager.
void GetPaperSize(Float_t &xsize, Float_t &ysize) const
Set paper size for PostScript output.
Definition: TStyle.cxx:805
Float_t GetLineScalePS() const
Definition: TStyle.h:295
void MapTheWindow()
Initialize the layout algorithm.
void DoMakeDefault()
Slot called to make the current selected style (in the ComboBox) become gStyle.
TGLayoutHints * fLayoutExpandXMargin
void AddAxisZLabels(TGCompositeFrame *f)
Add the 'Labels' group frame to the 'Axis - Z Axis' tab.
TGCheckButton * fOptLogy
virtual void ShowFrame(TGFrame *f)
Show sub frame.
Definition: TGFrame.cxx:1186
Float_t GetTitleFontSize() const
Definition: TStyle.h:282
Short_t Min(Short_t a, Short_t b)
Definition: TMathBase.h:170
void ModLineWidth()
Slot called whenever the line width is modified by the user.
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
void ModTitleFillColor()
Slot called whenever the title fill color is modified by the user.
void SetBarOffset(Float_t baroff=0.5)
Definition: TStyle.h:331
TArc * a
Definition: textangle.C:12
Style_t GetFrameLineStyle() const
Definition: TStyle.h:237
void ModTitleW()
Slot called whenever the title width is modified by the user.
const Bool_t kFALSE
Definition: Rtypes.h:92
virtual Int_t GetNumberOfEntries() const
Definition: TGComboBox.h:129
Int_t GetOptStat() const
Definition: TStyle.h:253
virtual void AddEntry(TGHotString *s, Int_t id, void *ud=0, const TGPicture *p=0, TGMenuEntry *before=0)
Add a menu entry.
Definition: TGMenu.cxx:987
virtual void SetState(Bool_t enable=kTRUE)
Set the active state.
TList * fTrashListFrame
Definition: TStyleManager.h:85
virtual void SetLimits(ELimit limits=TGNumberFormat::kNELNoLimits, Double_t min=0, Double_t max=1)
virtual void SetFillStyle(Style_t fstyle)
Definition: TAttFill.h:52
void ModLineStyle()
Slot called whenever the line style is modified by the user.
TAttText * GetAttDate()
Definition: TStyle.h:180
TGNumberEntry * fYTitleSize
TGColorSelect * fFrameLineColor
TGCheckButton * fOptFitValues
void DoMoreLess()
Slot called when the user try to show or hide the editor part of the style manager.
TGCheckButton * fPadTickY
TGNumberEntry * fTitleW
virtual void UseCurrentStyle()
Set current style settings in this object This function is called when either TCanvas::UseCurrentStyl...
Definition: TObject.cxx:753
TGNumberEntry * fZTitleSize
void DoRename()
Rename the current selected style. Called via the menu bar.
TGColorSelect * fXTitleColor
void SetStatY(Float_t y=0)
Definition: TStyle.h:392
void ModYTitleOffset()
Slot called whenever the Y axis title offset is modified by the user.
Width_t GetFuncWidth() const
Definition: TStyle.h:230
void DoExit()
Close the style manager. Called via the menu bar.
void SetFrameLineStyle(Style_t styl=0)
Definition: TStyle.h:370
void SetTimeOffset(Double_t toffset)
Change the time offset for time plotting.
Definition: TStyle.cxx:1463
void BuildList(TStyle *style=0)
Build the list of styles which will appear in the available styles combo box.
void CloseWindow()
Slot called to close the style manager via the window manager.
void ModAttDateTextSize()
Slot called whenever the date text size is modified by the user.
UInt_t GetHeight() const
Definition: TGFrame.h:288
void AddStatsFill(TGCompositeFrame *f)
Add the 'Fill' group frame to the 'Stats' tab.
Int_t GetHatchesLineWidth() const
Definition: TStyle.h:210
Style_t GetHistFillStyle() const
Definition: TStyle.h:243
TGTextButton * fMoreLess
void AddAxisXLine(TGCompositeFrame *f)
Add the 'Line' group frame to the 'Axis - X Axis' tab.
void Disable()
Set state of widget as disabled.
TGComboBox * fOptDateFormat
void AddCanvasFill(TGCompositeFrame *f)
Add the 'Fill' group frame to the 'Canvas' tab.
void DoSelectNoCanvas()
Slot called when the user close a TCanvas.
void CreateTabTitle(TGCompositeFrame *tab)
Add the tab 'Title' to the editor.
void AddTitle(TGCompositeFrame *f, const char *s)
Add a title to the frame f.
Bool_t fLastChoice
Definition: TStyleManager.h:74
void SetPadBottomMargin(Float_t margin=0.1)
Definition: TStyle.h:353
void AddHistosHistosFill(TGCompositeFrame *f)
Add the 'Fill' group frame to the 'Histos - Histos' tab.
TGNumberEntry * fTextSize
TGComboBox * AddDateFormatEntry(TGCompositeFrame *f, Int_t id)
Add a date format combo box to the frame f.
Bool_t GetHistMinimumZero() const
Definition: TStyle.h:246
Short_t Abs(Short_t d)
Definition: TMathBase.h:110
void ModZTitleFont()
Slot called whenever the Z axis title font is modified by the user.
void SetCanvasDefH(Int_t h=500)
Definition: TStyle.h:342
virtual void AddSeparator(TGMenuEntry *before=0)
Add a menu separator to the menu.
Definition: TGMenu.cxx:1057
TGNumberEntry * fXLabelSize
void SetTitlePS(const char *pstitle)
Define a string to be used in the %Title of the Postscript files.
Definition: TStyle.cxx:1002
TGCheckButton * fOptStatOverflow
TGFontTypeComboBox * fStatFont
TGCheckButton * fOptStatMean
TGNumberEntry * fErrorX
void SetPadBorderSize(Width_t size=1)
Definition: TStyle.h:351
void ModColorModelPS()
Slot called whenever the PS color model is modified by the user.
TVirtualPad * fCurPad
void ModZLabelOffset()
Slot called whenever the Z axis label offset is modified by the user.
Width_t GetTitleBorderSize() const
Definition: TStyle.h:283
TGCheckButton * fOptStatSkewness
void ModFuncStyle()
Slot called whenever the function line style is modified by the user.
TGNumberEntry * fPaperSizeY
virtual const char * UnixPathName(const char *unixpathname)
Convert from a Unix pathname to a local pathname.
Definition: TSystem.cxx:1036
void SetCanvasColor(Color_t color=19)
Definition: TStyle.h:339
Style_t GetStatFont() const
Definition: TStyle.h:268
void SetNdivisions(Int_t n=510, Option_t *axis="X")
Set the number of divisions to draw an axis.
Definition: TStyle.cxx:931
Float_t GetLegoInnerR() const
Definition: TStyle.h:248
void AddPadBorder(TGCompositeFrame *f)
Add the 'Border' group frame to the 'Pad' tab.
void Update(TStyle *style, TVirtualPad *pad)
Update the preview with possibly another style and another object than previously.
TGLabel * fTitleBorderSizeLabel
void SetOptLogz(Int_t logz=1)
Definition: TStyle.h:327
TGFontTypeComboBox * fZTitleFont
void SetTitleSize(Float_t size=0.02, Option_t *axis="X")
Definition: TStyle.cxx:1430
void ModGridStyle()
Slot called whenever the grid line style is modified by the user.
void AddStatsText(TGCompositeFrame *f)
Add the 'Text' group frame to the 'Stats' tab.
const char * Data() const
Definition: TString.h:349
TGLineStyleComboBox * fFuncStyle
void SetTitleAlign(Int_t a=13)
Definition: TStyle.h:397
TGNumberEntry * fXNdivMain
void ModStatFont()
Slot called whenever the stats text font is modified by the user.
virtual void SetTextFont(Font_t tfont=62)
Definition: TAttText.h:59
void AddPsPdfPaperSize(TGCompositeFrame *f)
Add the 'Paper Size' group frame to the 'PS / PDF' tab.
Int_t GetTitleAlign()
Definition: TStyle.h:278
void SetNumberContours(Int_t number=20)
Set the default number of contour levels when drawing 2-d plots.
Definition: TStyle.cxx:1119
void SetTitleBorderSize(Width_t size=2)
Definition: TStyle.h:402
void SetText(const char *helpText)
Set help text from helpText buffer in TGTextView.
TGNumberEntry * fZLabelOffset
void SetLegendBorderSize(Width_t size=4)
Definition: TStyle.h:346
TGCheckButton * fOptStatName
TGHButtonGroup * fApplyOnGroup
void ModYTitleColor()
Slot called whenever the Y axis title color is modified by the user.
void ModFrameFillStyle()
Slot called whenever the frame fill style is modified by the user.
TGPictureButton * fToolBarExport
Definition: TStyleManager.h:98
void AddAxisZLine(TGCompositeFrame *f)
Add the 'Line' group frame to the 'Axis - Z Axis' tab.
TGColorSelect * fXAxisColor
virtual Short_t GetTextAlign() const
Definition: TAttText.h:46
TGTextButton * AddTextButton(TGCompositeFrame *f, const char *s, Int_t id)
Add a text button to the frame f.
Double_t x[n]
Definition: legend1.C:17
TGTextEntry * fStatFormat
TGNumberEntryField * GetNumberEntry() const
void SetFrameFillColor(Color_t color=1)
Definition: TStyle.h:367
virtual TGButton * Find(Int_t id) const
Finds and returns a pointer to the button with the specified identifier id.
TGPictureButton * fToolBarImportCanvas
Definition: TStyleManager.h:96
void SetLabelColor(Color_t color=1, Option_t *axis="X")
Set axis labels color.
Definition: TStyle.cxx:1012
TGNumberEntry * fXNdivSubSub
virtual TObject * After(const TObject *obj) const
Returns the object after object obj.
Definition: TList.cxx:288
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString...
Definition: TString.cxx:2334
ULong_t Pixel_t
Definition: GuiTypes.h:41
Float_t GetBarOffset() const
Definition: TStyle.h:192
void SetHistFillColor(Color_t color=1)
Definition: TStyle.h:374
void ModYTickLength()
Slot called whenever the Y axis tick length is modified by the user.
virtual const char * GetName() const =0
Returns name of object.
R__EXTERN const char gHelpSMCanvas[]
Definition: HelpSMText.h:18
TGRadioButton * fColorModelPSCMYK
Float_t GetPadBottomMargin() const
Definition: TStyle.h:220
Color_t GetTitleTextColor() const
Definition: TStyle.h:280
const char ** fFileTypes
Definition: TGFileDialog.h:65
void SetTitleX(Float_t x=0)
Definition: TStyle.h:407
Width_t GetStatBorderSize() const
Definition: TStyle.h:267
void SetWMSizeHints(UInt_t wmin, UInt_t hmin, UInt_t wmax, UInt_t hmax, UInt_t winc, UInt_t hinc)
Give the window manager minimum and maximum size hints.
Definition: TGFrame.cxx:1862
TGFontTypeComboBox * fYLabelFont
void ModAttDateTextAngle()
Slot called whenever the date text angle is modified by the user.
void ModXTitleSize()
Slot called whenever the X axis title size is modified by the user.
void DoSelectCanvas(TVirtualPad *pad, TObject *obj, Int_t mouseButton)
Slot called when the user clicks on a TCanvas or on any object inside a TCanvas.
void ModLegoInnerR()
Slot called whenever the lego inner radius is modified by the user.
TGColorSelect * fTitleColor
const char * GetText() const
Definition: TGTextEntry.h:140
void ModYNdivisions()
Slot called whenever the Y axis Number of divisions is modified by the user.
virtual Color_t GetTextColor() const
Definition: TAttText.h:48
void CreateTabStats(TGCompositeFrame *tab)
Add the tab 'Stats' to the editor.
TGComboBox * fTitleAlign
void ModDrawBorder()
Slot called whenever the draw border boolean is modified by the user.
virtual Bool_t IsDown() const
Definition: TGButton.cxx:251
Style_t GetFrameFillStyle() const
Definition: TStyle.h:236
Color_t GetFuncColor() const
Definition: TStyle.h:228
TGLayoutHints * fLayoutExpandXCenterYMargin
TGPictureButton * fToolBarImportMacro
Definition: TStyleManager.h:97
void SetCanvasBorderSize(Width_t size=1)
Definition: TStyle.h:340
TGCheckButton * AddCheckButton(TGCompositeFrame *f, const char *s, Int_t id, Int_t e1=0, Int_t e2=2)
Add a check button to the frame f.
virtual void Select(Int_t id, Bool_t emit=kTRUE)
Make the selected item visible in the combo box window and emit signals according to the second param...
Definition: TGComboBox.cxx:443
void AddTopLevelInterface(TGCompositeFrame *cf)
Add the top level interface to the frame 'cf'.
void SetPadTickX(Int_t tickx)
Definition: TStyle.h:359
TGColorSelect * fFuncColor
TGLabel * fCurObjLabel
virtual void SetMarkerColor(Color_t mcolor=1)
Definition: TAttMarker.h:51
TGColorSelect * fStatTextColor
void ModHatchesSpacing()
Slot called whenever the hatches spacing is modified by the user.
Color_t GetStatColor() const
Definition: TStyle.h:265
TString & Append(const char *cs)
Definition: TString.h:492
static const std::string pattern("pattern")
void AddHistosHistosLine(TGCompositeFrame *f)
Add the 'Line' group frame to the 'Histos - Histos' tab.
TGNumberEntry * fXTitleOffset
TGCheckButton * fOptFitErrors
Double_t GetHatchesSpacing() const
Definition: TStyle.h:211
void AddMenus(TGCompositeFrame *p)
Add the menu bar to the frame 'p'.
R__EXTERN const char gHelpSMTitle[]
Definition: HelpSMText.h:22
TGTextEntry * fFitFormat
TGTab * fHistosTab
void SetTitleTextColor(Color_t color=1)
Definition: TStyle.h:399
void ModTextSizeInPixels(Bool_t b)
Slot called whenever the text size mode is modified by the user.
TGNumberEntry * fYLabelOffset
TGNumberEntry * fTimeOffsetTime
TGNumberEntry * fYNdivSubSub
TGCheckButton * fOptDateBool
static void Show()
Called to show the style manager. Static method.
TGMenuBar * fMenuBar
Definition: TStyleManager.h:88
void AddTitleGeometry(TGCompositeFrame *f)
Add the 'Geometry' group frame to the 'Title' tab.
void ModStatBorderSize()
Slot called whenever the stats border size is modified by the user.
Float_t GetBarWidth() const
Definition: TStyle.h:193
TGTextButton * fLineStyleEdit
void SetHeaderPS(const char *header)
Define a string to be inserted in the Postscript header The string in header will be added to the Pos...
Definition: TStyle.cxx:982
TGNumberEntry * fPadTopMargin
TGCheckButton * fOptStatKurtosis
TGPictureButton * fToolBarDelete
Definition: TStyleManager.h:95
virtual void SetText(TGString *text, Int_t partidx=0)
Set text in partition partidx in status bar.
void ModEndErrorSize()
Slot called whenever the end error size is modified by the user.
TGCheckButton * fOptFitProbability
TH1F * h1
Definition: legend1.C:5
void AddPsPdfLineScale(TGCompositeFrame *f)
Add the 'Line scale' number entry to the 'PS / PDF' tab.
void ModOptLogz()
Slot called whenever the Z axis log scale boolean is modified by the user.
TGNumberEntry * fZTickLength
TGCheckButton * fOptFitChi
TGLineStyleComboBox * fHistLineStyle
void ModStatFontSizeInPixels(Bool_t b)
Slot called whenever the text size mode is modified by the user.
TGNumberEntry * fCanvasDefX
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Definition: TVirtualPad.h:59
void ModOptDateFormat()
Slot called whenever the date text format is modified by the user.
void ModCanvasBorderMode()
Slot called whenever the canvas border mode is modified by the user.
TGCheckButton * fOptTitle
void AddCanvasDate(TGCompositeFrame *f)
Add the 'Date' group frame to the 'Canvas' tab.
void AddHistosFramesFill(TGCompositeFrame *f)
Add the 'Fill' group frame to the 'Histos - Frames' tab.
Style_t GetLabelFont(Option_t *axis="X") const
Return label font.
Definition: TStyle.cxx:750
void ModYLabelOffset()
Slot called whenever the Y axis label offset is modified by the user.
TGTextEntry * fCurStyle
TGColorSelect * fTitleTextColor
Int_t fCurTabAxisNum
Definition: TStyleManager.h:77
void DoNew()
Create a new style. Called via the menu bar or the tool bar.
void ModHeaderPS()
Slot called whenever the PS header is modified by the user.
virtual const char * GetTitle() const =0
Returns title of object.
Int_t GetOptFit() const
Definition: TStyle.h:252
TGCheckButton * fOptStatIntegral
TGNumberEntry * fStatFontSize
void CreateTabAxisX(TGCompositeFrame *tab)
Add the sub-tab 'X Axis' to the tab 'Axis'.
void SetCanvasDefY(Int_t topy=10)
Definition: TStyle.h:345
TGTextButton * fPaletteEdit
static void Terminate()
Called to delete the style manager.
void ModYLabelFont()
Slot called whenever the Y axis label font is modified by the user.
virtual void SetTextAlign(Short_t align=11)
Definition: TAttText.h:55
void ModPadColor()
Slot called whenever the pad color is modified by the user.
Int_t GetColorModelPS() const
Definition: TStyle.h:206
void SetTitleColor(Color_t color=1, Option_t *axis="X")
Definition: TStyle.cxx:1367
Bool_t fAllAndNotCurrent
Definition: TStyleManager.h:84
virtual void Disable()
Clear widget state flag.
virtual void EnableEntry(Int_t id)
Enable entry. By default entries are enabled.
Definition: TGMenu.cxx:1695
void ModScreenFactor()
Slot called whenever the screen factor is modified by the user.
void SetFuncStyle(Style_t style=1)
Definition: TStyle.h:361
A doubly linked list.
Definition: TList.h:47
TGCheckButton * fOptStatEntries
Int_t GetOptLogz() const
Definition: TStyle.h:257
void ModTitleH()
Slot called whenever the title height is modified by the user.
virtual Int_t GetSelected() const
Definition: TGComboBox.h:136
void ModFrameLineStyle()
Slot called whenever the frame line style is modified by the user.
Pixel_t GetColor() const
TGNumberEntry * fPadLeftMargin
TGLabel * fListLabel
void CreateTabHistosFrames(TGCompositeFrame *tab)
Add the sub-tab 'Frames' to the tab 'Histos'.
void SetStatFont(Style_t font=62)
Definition: TStyle.h:388
void SetOptLogx(Int_t logx=1)
Definition: TStyle.h:325
void ModLineStyleEdit()
Slot called whenever the line style editor is opened by the user.
void SetGridColor(Color_t color=0)
Definition: TStyle.h:365
TCanvas * GetMainCanvas()
Return pointer to the selected canvas.
void ModStatY()
Slot called whenever the stats ordinate is modified by the user.
Int_t GetPadTickY() const
Definition: TStyle.h:227
Int_t GetOptTitle() const
Definition: TStyle.h:254
TStyle objects may be created to define special styles.
Definition: TStyle.h:52
virtual void SetStyle(UInt_t newstyle)
Set the button style (modern or classic).
Definition: TGButton.cxx:221
TGTextButton * fApplyOnXYZ
TGColorSelect * fHistFillColor
Float_t GetPadRightMargin() const
Definition: TStyle.h:223
Color_t GetAxisColor(Option_t *axis="X") const
Return the axis color number in the axis.
Definition: TStyle.cxx:718
TGTextEntry * fPaintTextFormat
virtual void SetLineColor(Color_t lcolor)
Definition: TAttLine.h:54
void SetGridWidth(Width_t width=1)
Definition: TStyle.h:366
Bool_t Connect(const char *signal, const char *receiver_class, void *receiver, const char *slot)
Non-static method is used to connect from the signal of this object to the receiver slot...
Definition: TQObject.cxx:1135
virtual void Associate(const TGWindow *w)
Make w the window that will receive the generated messages.
TGColorSelect * fAttDateTextColor
void ModTitleFontSize()
Slot called whenever the text size is modified by the user.
void AddAxisZDivisions(TGCompositeFrame *f)
Add the 'Divisions' group frame to the 'Axis - Z Axis' tab.
void AddToolbar(TGCompositeFrame *p)
Add the tool bar to the frame 'p'.
TGNumberEntry * fStatH
void ModYTitleFont()
Slot called whenever the Y axis title font is modified by the user.
TGNumberEntry * fEndErrorSize
virtual Size_t GetMarkerSize() const
Definition: TAttMarker.h:46
TGCheckButton * fTitleFontSizeInPixels
virtual TObject * FindObject(const char *name) const
Search if object named name is inside this pad or in pads inside this pad.
Definition: TPad.cxx:2495
UInt_t fWidth
Definition: TGDimension.h:31
TGedPatternSelect * fHistFillStyle
TGTab * fEditionTab
Style_t GetMarkerStyle() const
Color_t GetHistFillColor() const
Definition: TStyle.h:241
TGNumberEntry * fLegoInnerR
Float_t GetStatY() const
Definition: TStyle.h:273
void AddAxisXDivisions(TGCompositeFrame *f)
Add the 'Divisions' group frame to the 'Axis - X Axis' tab.
TGNumberEntry * fZNdivMain
TGToolBar * fToolBar
Definition: TStyleManager.h:93
Width_t GetHistLineWidth() const
Definition: TStyle.h:245
void SetPadBorderMode(Int_t mode=1)
Definition: TStyle.h:352
void SetCanvasBorderMode(Int_t mode=1)
Definition: TStyle.h:341
void AddAxisYDivisions(TGCompositeFrame *f)
Add the 'Divisions' group frame to the 'Axis - Y Axis' tab.
TGNumberEntry * fYNdivMain
TGLineStyleComboBox * fGridStyle
const TGPicture * fToolBarExportPic
void DisconnectEditor(Int_t tabNum)
Disconnect every widget entry of the editor from its slot.
void SetHistFillStyle(Style_t styl=0)
Definition: TStyle.h:376
virtual void SetLayoutHints(TGLayoutHints *l, TGButton *button=0)
Set layout hints for the specified button or if button=0 for all buttons.
TGNumberEntry * fTitleX
void ModHistLineColor()
Slot called whenever the histos line color is modified by the user.
R__EXTERN TSystem * gSystem
Definition: TSystem.h:549
TGLabel * fStatBorderSizeLabel
void Popup()
Show help dialog.
TGTextButton * fEditionReset
void ModXTitleColor()
Slot called whenever the X axis title color is modified by the user.
SVector< double, 2 > v
Definition: Dict.h:5
void SetPadColor(Color_t color=19)
Definition: TStyle.h:350
Int_t GetStripDecimals() const
Definition: TStyle.h:276
TGedPatternSelect * fFrameFillStyle
void ModHistLineStyle()
Slot called whenever the histos line style is modified by the user.
virtual void SetFillColor(Color_t fcolor)
Definition: TAttFill.h:50
void SetFrameLineColor(Color_t color=1)
Definition: TStyle.h:368
TGFontTypeComboBox * fZLabelFont
void AddTitleFill(TGCompositeFrame *f)
Add the 'Fill' group frame to the 'Title' tab.
Int_t GetOptLogy() const
Definition: TStyle.h:256
TGColorSelect * fFillColor
TGButtonGroup * fColorModelPS
TGRadioButton * fApplyOnSel
Float_t GetTitleOffset(Option_t *axis="X") const
Return title offset.
Definition: TStyle.cxx:850
void ModYAxisColor()
Slot called whenever the Y axis color is modified by the user.
void AddPadTicks(TGCompositeFrame *f)
Add the 'Ticks' group frame to the 'Pad' tab.
void SetOptDate(Int_t datefl=1)
If optdate is non null, the current date/time will be printed in the canvas.
Definition: TStyle.cxx:1165
TGNumberEntry * fXNdivSub
void SetTitleStyle(Style_t style=1001)
Definition: TStyle.h:400
virtual const char * ClassName() const
Returns name of class to which the object belongs.
Definition: TObject.cxx:187
TGFontTypeComboBox * AddFontTypeEntry(TGCompositeFrame *f, Int_t id)
Add a font type combo box to the frame f.
virtual void Associate(const TGWindow *w)
Definition: TGWidget.h:90
virtual TObject * Remove(TObject *obj)
Remove object from the list.
Definition: TList.cxx:674
virtual void Associate(const TGWindow *w)
Definition: TGMenu.h:227
void SetScreenFactor(Float_t factor=1)
Definition: TStyle.h:315
TGTab * fAxisTab
TGLabel * fFitFormatLabel
void CreateTabAxisY(TGCompositeFrame *tab)
Add the sub-tab 'Y Axis' to the tab 'Axis'.
virtual TGCompositeFrame * AddTab(TGString *text)
Add a tab to the tab widget.
Definition: TGTab.cxx:341
virtual void SetTextAngle(Float_t tangle=0)
Definition: TAttText.h:56
TStylePreview * fPreviewWindow
virtual Color_t GetFillColor() const
Definition: TAttFill.h:43
TGLayoutHints * fLayoutExpandXYMargin
void SetOptFit(Int_t fit=1)
The type of information about fit parameters printed in the histogram statistics box can be selected ...
Definition: TStyle.cxx:1204
TGNumberEntry * fStatX
TGNumberEntry * fAttDateTextSize
TGButtonGroup * fPadBorderMode
void SetStatTextColor(Color_t color=1)
Definition: TStyle.h:385
void ModAttDateTextFont()
Slot called whenever the date text font is modified by the user.
void ModYTitleSize()
Slot called whenever the Y axis title size is modified by the user.
TGColorSelect * fStatColor
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
Definition: TString.cxx:2321
TGNumberEntry * fHatchesSpacing
unsigned int UInt_t
Definition: RtypesCore.h:42
void AddPadFill(TGCompositeFrame *f)
Add the 'Fill' group frame to the 'Pad' tab.
TGComboBox * fAttDateTextAlign
TGColorSelect * fCanvasColor
const char * GetPaintTextFormat() const
Definition: TStyle.h:258
char * Form(const char *fmt,...)
virtual TGListBox * GetListBox() const
Definition: TGComboBox.h:132
void ModPadTopMargin()
Slot called whenever the pad top margin is modified by the user.
void SetTickLength(Float_t length=0.03, Option_t *axis="X")
Set the tick marks length for an axis.
Definition: TStyle.cxx:1348
void AddAxisYLabels(TGCompositeFrame *f)
Add the 'Labels' group frame to the 'Axis - Y Axis' tab.
TGCheckButton * fPadTickX
void ModZLabelSize()
Slot called whenever the Z axis label size is modified by the user.
TGNumberEntry * fNumberContours
void ModYLabelColor()
Slot called whenever the Y axis label color is modified by the user.
const TGPicture * fToolBarImportCanvasPic
virtual void ChangeOptions(UInt_t options)
Change composite frame options. Options is an OR of the EFrameTypes.
Definition: TGFrame.cxx:1025
void ModFillColor()
Slot called whenever the fill color is modified by the user.
void ModTitleFontSizeInPixels(Bool_t b)
Slot called whenever the text size mode is modified by the user.
TGLayoutHints * fLayoutExpandX
Float_t GetStatW() const
Definition: TStyle.h:274
static Int_t GetColor(const char *hexcolor)
Static method returning color number for color specified by hex color string of form: "#rrggbb"...
Definition: TColor.cxx:1666
TGButtonGroup * AddBorderModeEntry(TGCompositeFrame *f, Int_t id1, Int_t id2, Int_t id3)
Add a border mode button group to the frame f.
void DoPreviewClosed()
Slot called to close the preview, via the preview check button, or when the preview window is closed ...
Style_t GetPattern() const
void AddGeneralLine(TGCompositeFrame *f)
Add the 'Line' group frame to the 'General' tab.
virtual const char * GetName() const
Returns name of object.
Definition: TNamed.h:51
void ModTitleStyle()
Slot called whenever the title fill style is modified by the user.
void SetStatW(Float_t w=0.19)
Definition: TStyle.h:393
TGedPatternSelect * fTitleStyle
void SetPattern(Style_t pattern, Bool_t emit=kTRUE)
Set pattern.
void SetFuncWidth(Width_t width=4)
Definition: TStyle.h:363
virtual void SetMarkerStyle(Style_t mstyle=1)
Definition: TAttMarker.h:53
void ModHistFillStyle()
Slot called whenever the histos fill style is modified by the user.
Bool_t fRealTimePreview
Definition: TStyleManager.h:75
void SetColorModelPS(Int_t c=0)
Define the color model used by TPostScript and TPDF (RGB or CMYK).
Definition: TStyle.cxx:899
R__EXTERN const char gHelpSMGeneral[]
Definition: HelpSMText.h:17
TGNumberEntry * fZNdivSubSub
TList * fTrashListLayout
Definition: TStyleManager.h:86
Style_t GetTitleStyle() const
Definition: TStyle.h:281
TGComboBox * fPaperSizePredef
virtual void SetIntNumber(Long_t val)
virtual Color_t GetLineColor() const
Definition: TAttLine.h:47
const TGPicture * fToolBarNewPic
void ModStatColor(Pixel_t color)
Slot called whenever the stats fill color is modified by the user.
void SetHistMinimumZero(Bool_t zero=kTRUE)
If the argument zero=kTRUE the minimum value for the Y axis of 1-d histograms is set to 0 if the mini...
Definition: TStyle.cxx:910
void SetTitleH(Float_t h=0)
Definition: TStyle.h:410
void ModPaperSizePredef()
Slot called whenever the PS paper size is modified by the user.
TGLineWidthComboBox * fStatBorderSize
void ModXLabelSize()
Slot called whenever the X axis label size is modified by the user.
virtual void SetMarkerSize(Size_t msize=1)
Definition: TAttMarker.h:54
Float_t GetErrorX() const
Definition: TStyle.h:196
TGNumberEntry * fZTitleOffset
void DoChangeTab(Int_t i)
Slot called when the user changes the current tab.
#define gVirtualX
Definition: TVirtualX.h:362
Int_t GetCanvasDefW() const
Definition: TStyle.h:202
void ModTextAngle()
Slot called whenever the text angle is modified by the user.
void SetDateX(Float_t x=0.01)
Definition: TStyle.h:333
void SetFrameFillStyle(Style_t styl=0)
Definition: TStyle.h:369
void SetTitleFontSize(Float_t size=0)
Definition: TStyle.h:401
TGColorSelect * fFrameFillColor
void Init()
Set up the interface. Called by the ctor or by the 'Show' method.
TGLabel * fCurStylabel
TGedPatternSelect * fFillStyle
void ModOptStat()
Slot called whenever one of the stats options is modified by the user.
char * StrDup(const char *str)
Duplicate the string str.
Definition: TString.cxx:2513
TGCheckButton * fXTitleSizeInPixels
void ModTextSize()
Slot called whenever the text size is modified by the user.
void AddTitleBorderSize(TGCompositeFrame *f)
Add the 'Shadow' group frame to the 'Title' tab.
virtual void Enable()
Set widget state flag (kTRUE=enabled, kFALSE=disabled).
virtual const TGWindow * GetMainFrame() const
Returns top level main frame.
Definition: TGWindow.cxx:133
virtual void SetText(TGHotString *new_label)
Set new button text.
Definition: TGButton.cxx:594
Float_t GetPadLeftMargin() const
Definition: TStyle.h:222
TGLineWidthComboBox * fLegendBorderSize
void ModOptDateBool()
Slot called whenever the OptDate boolean is modified by the user.
void ModHatchesLineWidth()
Slot called whenever the hatches line width is modified by the user.
TGNumberEntry * fDateX
void CreateTabPad(TGCompositeFrame *tab)
Add the tab 'Pad' to the editor.
TGTextEntry * fCurObjTextEntry
void SetLabelOffset(Float_t offset=0.005, Option_t *axis="X")
Set offset between axis and axis labels.
Definition: TStyle.cxx:1048
static ULong_t Number2Pixel(Int_t ci)
Static method that given a color index number, returns the corresponding pixel value.
Definition: TColor.cxx:1862
TGLineStyleComboBox * fFrameLineStyle
TGLineStyleComboBox * AddLineStyleEntry(TGCompositeFrame *f, Int_t id)
Add a line style entry to the frame f.
The Canvas class.
Definition: TCanvas.h:48
virtual void SetFormat(EStyle style, EAttribute attr=TGNumberFormat::kNEAAnyNumber)
void ModCanvasDefW()
Slot called whenever the canvas default width is modified by the user.
TGLayoutHints * fLayoutExpandXY
void ConnectAll()
Connect every entry in the top level interface to the slot.
void AddPsPdfTitle(TGCompositeFrame *f)
Add the 'Title' group frame to the 'PS / PDF' tab.
void ModLineColor()
Slot called whenever the line color is modified by the user.
void AddHistosHistosLegoInnerR(TGCompositeFrame *f)
Add the '3D Cylindrical' group frame to the 'Histos - Histos' tab.
Int_t GetCanvasDefX() const
Definition: TStyle.h:203
TGColorSelect * fMarkerColor
void ModZNdivisions()
Slot called whenever the Z axis Number of divisions is modified by the user.
void SetEnabled(Bool_t flag=kTRUE)
Definition: TGTextEntry.h:170
TGCheckButton * fOptStatErrors
void AddPadMargin(TGCompositeFrame *f)
Add the 'Margin' group frame to the 'Pad' tab.
Int_t GetCanvasDefY() const
Definition: TStyle.h:204
void ModTitleFont()
Slot called whenever the title text font is modified by the user.
Color_t GetLabelColor(Option_t *axis="X") const
Return the label color number in the axis.
Definition: TStyle.cxx:738
TGNumberEntry * fCanvasDefH
double f(double x)
Int_t GetNdivisions(Option_t *axis="X") const
Return number of divisions.
Definition: TStyle.cxx:706
TGNumberEntry * fXTitleSize
Bool_t fMoreAndNotLess
Definition: TStyleManager.h:82
TGNumberEntry * fStatW
void SetHatchesLineWidth(Int_t l)
Definition: TStyle.h:303
void ModCanvasDefY()
Slot called whenever the canvas default ordinate is modified by the user.
static Int_t init()
TGCheckButton * fYNdivisionsOptimize
virtual const char * GetName() const
Returns name of object.
Definition: TObject.cxx:415
void SetDrawBorder(Int_t drawborder=1)
Definition: TStyle.h:338
static TStyleManager *& GetSM()
static: return style manager
TGCheckButton * fXNdivisionsOptimize
void ModStatStyle(Style_t pattern)
Slot called whenever the stats fill style is modified by the user.
void AddEdition(TGCompositeFrame *p)
Add the editor to the frame 'p'.
void SetTitleOffset(Float_t offset=1, Option_t *axis="X")
Specify a parameter offset to control the distance between the axis and the axis title.
Definition: TStyle.cxx:1411
double Double_t
Definition: RtypesCore.h:55
Float_t GetStatFontSize() const
Definition: TStyle.h:269
void AddCanvasBorder(TGCompositeFrame *f)
Add the 'Border' group frame to the 'Canvas' tab.
virtual void SetCleanup(Int_t mode=kLocalCleanup)
Turn on automatic cleanup of child frames in dtor.
Definition: TGFrame.cxx:1054
virtual void AddEntry(TGString *s, Int_t id)
Definition: TGComboBox.h:108
virtual void SetEnabled(Bool_t e=kTRUE)
Set enabled or disabled state of button.
Definition: TGButton.cxx:409
void ModTitleY()
Slot called whenever the title ordinate is modified by the user.
void SetHistLineStyle(Style_t styl=0)
Definition: TStyle.h:377
void AddTitleText(TGCompositeFrame *f)
Add the 'Text' group frame to the 'Title' tab.
void ModStatW()
Slot called whenever the stats width is modified by the user.
void ModBarWidth()
Slot called whenever the histos bar width is modified by the user.
TGNumberEntry * fTextAngle
TGLineWidthComboBox * fGridWidth
TGCheckButton * fStatFontSizeInPixels
TGLineWidthComboBox * fLineWidth
void ModOptTitle()
Slot called whenever the OptTitle boolean is modified by the user.
TGedPatternSelect * fStatStyle
Color_t GetTitleColor(Option_t *axis="X") const
Return title color.
Definition: TStyle.cxx:826
ClassImp(TMCParticle) void TMCParticle printf(": p=(%7.3f,%7.3f,%9.3f) ;", fPx, fPy, fPz)
TGNumberEntry * fXTickLength
Color_t GetPadColor() const
Definition: TStyle.h:217
void ModXTitleFont()
Slot called whenever the X axis title font is modified by the user.
void ModAttDateTextColor()
Slot called whenever the date text color is modified by the user.
void DoExport()
Save the current selected style in a C++ macro file.
void AddHistosGraphsErrors(TGCompositeFrame *f)
Add the 'Errors' group frame to the 'Histos - Graphs' tab.
void CreateTabCanvas(TGCompositeFrame *tab)
Add the tab 'Canvas' to the editor.
void ModPadGridX()
Slot called whenever the pad grid X boolean is modified by the user.
void ModAttDateTextAlign()
Slot called whenever the date text align is modified by the user.
void DoEditionUpdatePreview()
Slot called when the user clicks on the 'Update preview' button.
TCanvas * style()
Definition: style.C:1
char * fFilename
Definition: TGFileDialog.h:63
void ModXAxisColor()
Slot called whenever the X axis color is modified by the user.
Double_t y[n]
Definition: legend1.C:17
Width_t GetFrameLineWidth() const
Definition: TStyle.h:238
void ModErrorX()
Slot called whenever the error along X is modified by the user.
virtual Bool_t IsMapped()
Returns kTRUE if window is mapped on screen, kFALSE otherwise.
Definition: TGWindow.cxx:180
const TGPicture * fMakeDefaultPic
void ModFrameLineWidth()
Slot called whenever the frame line width is modified by the user.
virtual void Reset(Option_t *option="")
Reset.
Definition: TStyle.cxx:439
void AddHistosGraphsLine(TGCompositeFrame *f)
Add the 'Line' group frame to the 'Histos - Graphs' tab.
void SetLineScalePS(Float_t scale=3)
Definition: TStyle.h:306
TGCheckButton * fHistMinimumZero
void AddAxisYLine(TGCompositeFrame *f)
Add the 'Line' group frame to the 'Axis - Y Axis' tab.
Style_t GetStatStyle() const
Definition: TStyle.h:270
void ModMarkerSize()
Slot called whenever the marker size is modified by the user.
Bool_t Disconnect(const char *signal=0, void *receiver=0, const char *slot=0)
Disconnects signal of this object from slot of receiver.
Definition: TQObject.cxx:1293
void CreateTabAxisZ(TGCompositeFrame *tab)
Add the sub-tab 'Z Axis' to the tab 'Axis'.
TGLineWidthComboBox * fPadBorderSize
void AddGeneralText(TGCompositeFrame *f)
Add the 'Text' group frame to the 'General' tab.
void ModStatX()
Slot called whenever the stats abscissa is modified by the user.
TGCheckButton * fTextSizeInPixels
TGCheckButton * fPadGridX
void ModHistMinimumZero()
Slot called whenever the histos minimum zero boolean is modified by the user.
void DoPreview(Bool_t b)
Slot called when the user click on the preview check button.
Color_t GetHistLineColor() const
Definition: TStyle.h:242
TGLineWidthComboBox * fFrameLineWidth
virtual void AddFrame(TGFrame *f, TGLayoutHints *l=0)
Add frame to the composite frame using the specified layout hints.
Definition: TGFrame.cxx:1099
void DoEditor()
Called each time something is changed in the style editor.
Style_t GetFuncStyle() const
Definition: TStyle.h:229
void AddPadGrid(TGCompositeFrame *f)
Add the 'Grid' group frame to the 'Pad' tab.
virtual void Show()
Show group of buttons.
void CreateTabAxis(TGCompositeFrame *tab)
Add the tab 'Axis' to the editor.
void ModTextColor()
Slot called whenever the text color is modified by the user.
virtual void SetLineStyle(Style_t lstyle)
Definition: TAttLine.h:56
void SetLegoInnerR(Float_t rad=0.5)
Definition: TStyle.h:314
void DoRealTime(Bool_t b)
Slot called when the user click on the run time update check button.
virtual void MapSubwindows()
Map all sub windows that are part of the composite frame.
Definition: TGFrame.cxx:1146
void SetPadTopMargin(Float_t margin=0.1)
Definition: TStyle.h:354
static Vc_ALWAYS_INLINE int_v max(const int_v &x, const int_v &y)
Definition: vector.h:440
TGHorizontal3DLine * fHorizontal3DLine
Width_t GetLegendBorderSize() const
Definition: TStyle.h:212
void CreateTabHistosGraphs(TGCompositeFrame *tab)
Add the sub-tab 'Graphs' to the tab 'Histos'.
void AddAxisXTitle(TGCompositeFrame *f)
Add the 'Title' group frame to the 'Axis - X Axis' tab.
TGNumberEntry * fYNdivSub
static TStyleManager * fgStyleManager
Definition: TStyleManager.h:71
void ModXTitleSizeInPixels(Bool_t b)
Slot called whenever the X axis title size mode is modified by the user.
TGColorSelect * fZTitleColor
void SetPaperSize(EPaperSize size)
Set paper size for PostScript output.
Definition: TStyle.cxx:1317
void ModPadRightMargin()
Slot called whenever the pad right margin is modified by the user.
TGLineWidthComboBox * AddLineWidthEntry(TGCompositeFrame *f, Int_t id)
Add a line width entry to the frame f.
Mother of all ROOT objects.
Definition: TObject.h:58
void UseCurrentStyle()
Force a copy of current style for all objects in canvas.
Definition: TCanvas.cxx:1087
Float_t GetDateX() const
Definition: TStyle.h:207
TStyleManager(const TGWindow *)
Constructor. Create the main window of the style manager.
TGLabel * fLegendBorderSizeLabel
void ModZTickLength()
Slot called whenever the Z axis tick length is modified by the user.
Float_t GetStatX() const
Definition: TStyle.h:272
virtual TObject * First() const
Return the first object in the list. Returns 0 when list is empty.
Definition: TList.cxx:556
void ModTitleBorderSize()
Slot called whenever the title border size is modified by the user.
void SetLabelSize(Float_t size=0.04, Option_t *axis="X")
Set size of axis labels.
Definition: TStyle.cxx:1063
TGNumberEntry * fYTickLength
void AddGeneralMarker(TGCompositeFrame *f)
Add the 'Marker' group frame to the 'General' tab.
TGNumberEntry * fZNdivSub
TGColorSelect * fPadColor
TGCheckButton * fDrawBorder
void SetStatFontSize(Float_t size=0)
Definition: TStyle.h:389
Handle_t Window_t
Definition: GuiTypes.h:30
virtual void UnmapWindow()
Definition: TGFrame.h:269
void ModStatFontSize()
Slot called whenever the text size is modified by the user.
void ModPadBorderMode()
Slot called whenever the pad border mode is modified by the user.
void ModFrameBorderSize()
Slot called whenever the frame border size is modified by the user.
void AddHistosFramesLine(TGCompositeFrame *f)
Add the 'Line' group frame to the 'Histos - Frames' tab.
virtual Color_t GetMarkerColor() const
Definition: TAttMarker.h:44
void ModXNdivisions()
Slot called whenever the X axis Number of divisions is modified by the user.
void DoMenu(Int_t menuID)
Slot called when an item of the menu is selected.
Color_t GetFrameLineColor() const
Definition: TStyle.h:235
void ModTitleX()
Slot called whenever the title abscissa is modified by the user.
const char * GetFitFormat() const
Definition: TStyle.h:209
TGFontTypeComboBox * fYTitleFont
Style_t GetGridStyle() const
Definition: TStyle.h:232
virtual void Add(TObject *obj)
Definition: TList.h:81
TGColorSelect * fXLabelColor
void SetHatchesSpacing(Double_t h)
Definition: TStyle.h:304
void SetTitleFillColor(Color_t color=1)
Definition: TStyle.h:398
Bool_t fPaperSizeEnCm
void ModPadGridY()
Slot called whenever the pad grid Y boolean is modified by the user.
void ModPaletteEdit()
Slot called whenever the palette editor is opened by the user.
TGNumberEntry * fStatY
virtual void MapWindow()
Definition: TGFrame.h:267
Float_t GetTitleY() const
Definition: TStyle.h:289
Short_t Max(Short_t a, Short_t b)
Definition: TMathBase.h:202
void DoImportCanvas()
Create a new style (a copy of gStyle) and import the properties of the current canvas inside...
void ModNumberContours()
Slot called whenever the number of contours is modified by the user.
Float_t GetDateY() const
Definition: TStyle.h:208
TGPictureButton * fToolBarHelp
Definition: TStyleManager.h:99
TGedMarkerSelect * fMarkerStyle
TGCheckButton * fOptLogz
Float_t GetLabelOffset(Option_t *axis="X") const
Return label offset.
Definition: TStyle.cxx:762
Int_t GetPadBorderMode() const
Definition: TStyle.h:219
void AddAxisYTitle(TGCompositeFrame *f)
Add the 'Title' group frame to the 'Axis - Y Axis' tab.
void ModLegendBorderSize()
Slot called whenever the legend border size is modified by the user.
void ModTextFont()
Slot called whenever the text font is modified by the user.
void SetOptLogy(Int_t logy=1)
Definition: TStyle.h:326
void ModCanvasColor()
Slot called whenever the canvas color is modified by the user.
void SetOptStat(Int_t stat=1)
The type of information printed in the histogram statistics box can be selected via the parameter mod...
Definition: TStyle.cxx:1252
void SetOptTitle(Int_t tit=1)
Definition: TStyle.h:330
void AddPsPdfHeader(TGCompositeFrame *f)
Add the 'Header' group frame to the 'PS / PDF' tab.
const TGPicture * fToolBarHelpPic
TGFontTypeComboBox * fAttDateTextFont
const TGPicture * fToolBarDeletePic
TGNumberEntry * fCanvasDefW
void AddHistosGraphsBorder(TGCompositeFrame *f)
Add the 'Draw Border' check button to the 'Histos - Graphs' tab.
TGFontTypeComboBox * fXTitleFont
TGNumberEntry * fDateY
void ModMarkerStyle()
Slot called whenever the marker style is modified by the user.
virtual void SetTextColor(Color_t tcolor=1)
Definition: TAttText.h:57
Width_t GetCanvasBorderSize() const
Definition: TStyle.h:199
Bool_t fStyleChanged
Definition: TStyleManager.h:80
void ModTitleTextColor()
Slot called whenever the title text color is modified by the user.
virtual void SetParts(Int_t npart)
Divide the status bar in npart equal sized parts.
TGLineWidthComboBox * fFrameBorderSize
TGFontTypeComboBox * fTitleFont
TGNumberEntry * fZLabelSize
void ModZTitleSizeInPixels(Bool_t b)
Slot called whenever the Z axis title size mode is modified by the user.
TGLineStyleComboBox * fLineStyle
void ModGridWidth()
Slot called whenever the grid line width is modified by the user.
TGNumberEntry * fTitleY
virtual Long_t GetIntNumber() const
void DoListSelect()
Slot called when the user select an item in the available styles' list.
TGTextButton * fApplyOnButton
void ModZLabelFont()
Slot called whenever the Z axis label font is modified by the user.
void ModCanvasDefH()
Slot called whenever the canvas default height is modified by the user.
Bool_t GetPadGridY() const
Definition: TStyle.h:225
virtual Double_t GetNumber() const
void SetPadTickY(Int_t ticky)
Definition: TStyle.h:360
void AddHistosHistosBar(TGCompositeFrame *f)
Add the 'Bar' group frame to the 'Histos - Histos' tab.
R__EXTERN const char gHelpSMHistos[]
Definition: HelpSMText.h:20
TGComboBox * fMarkerSize
Style_t GetTitleFont(Option_t *axis="X") const
Return title font.
Definition: TStyle.cxx:838
void SetStatFormat(const char *format="6.4g")
Definition: TStyle.h:390
virtual void AddPopup(TGHotString *s, TGPopupMenu *popup, TGMenuEntry *before=0, const TGPicture *p=0)
Add a (cascading) popup menu to a popup menu.
Definition: TGMenu.cxx:1149
void ModYTitleSizeInPixels(Bool_t b)
Slot called whenever the Y axis title size mode is modified by the user.
TGCheckButton * fYTitleSizeInPixels
virtual void SetState(EButtonState state, Bool_t emit=kFALSE)
Set check button state.
Definition: TGButton.cxx:1200
void Enable(Bool_t on=kTRUE)
Set state of widget as enabled.
TGNumberEntry * fBarOffset
TGNumberEntry * fPadBottomMargin
virtual TGDimension GetDefaultSize() const
std::cout << fWidth << "x" << fHeight << std::endl;
Definition: TGFrame.h:391
R__EXTERN const char gHelpSMTopLevel[]
Definition: HelpSMText.h:16
void SetPaintTextFormat(const char *format="g")
Definition: TStyle.h:381
Color_t GetStatTextColor() const
Definition: TStyle.h:266
R__EXTERN const char gHelpSMStats[]
Definition: HelpSMText.h:23
TGNumberEntry * fScreenFactor
virtual void SetTextSize(Float_t tsize=1)
Definition: TAttText.h:60
void SetFitFormat(const char *format="5.4g")
Definition: TStyle.h:301
virtual void SetText(const char *text, Bool_t emit=kTRUE)
Sets text entry to text, clears the selection and moves the cursor to the end of the line...
TGColorSelect * fGridColor
void ModFrameLineColor()
Slot called whenever the frame line color is modified by the user.
void ModTextAlign()
Slot called whenever the text align is modified by the user.
void CreateTabHistosHistos(TGCompositeFrame *tab)
Add the sub-tab 'Histos' to the tab 'Histos'.
virtual void Update()
Update canvas pad buffers.
Definition: TCanvas.cxx:2179
TGNumberEntry * fTitleH
virtual void Layout()
layout combobox
Definition: TGComboBox.cxx:524
Float_t GetPadTopMargin() const
Definition: TStyle.h:221
TGRadioButton * fApplyOnAll
void ModZLabelColor()
Slot called whenever the Z axis label color is modified by the user.
void SetPadRightMargin(Float_t margin=0.1)
Definition: TStyle.h:356
void ModCanvasBorderSize()
Slot called whenever the canvas border size is modified by the user.
virtual Style_t GetMarkerStyle() const
Definition: TAttMarker.h:45
TGPictureButton * fMakeDefault
void SetErrorX(Float_t errorx=0.5)
Definition: TStyle.h:336
TGNumberEntry * fPadRightMargin
TGFileInfo * fCurMacro
TGButtonGroup * fCanvasBorderMode
Int_t GetOptLogx() const
Definition: TStyle.h:255
const Bool_t kTRUE
Definition: Rtypes.h:91
void ModTimeOffset()
Slot called whenever the time offset is modified by the user.
TGCheckButton * fXLabelSizeInPixels
virtual Width_t GetLineWidth() const
Definition: TAttLine.h:49
Float_t GetStatH() const
Definition: TStyle.h:275
void ModDateX()
Slot called whenever the date abscissa is modified by the user.
void SetPadGridY(Bool_t gridy)
Definition: TStyle.h:358
virtual void RemoveEntries(Int_t from_ID, Int_t to_ID)
Definition: TGComboBox.h:127
TGTextButton * fEditionUpdatePreview
Float_t GetScreenFactor() const
Definition: TStyle.h:264
void SetHistLineColor(Color_t color=1)
Definition: TStyle.h:375
TObject * obj
void ModTitlePS()
Slot called whenever the PS title is modified by the user.
void ModDateY()
Slot called whenever the date ordinate is modified by the user.
Int_t GetCanvasDefH() const
Definition: TStyle.h:201
TGNumberEntry * fTitleFontSize
void ModFuncColor()
Slot called whenever the function line color is modified by the user.
TGCheckButton * fPreviewButton
const char * GetTitlePS() const
Definition: TStyle.h:293
Handle_t GetId() const
Definition: TGObject.h:52
TGCheckButton * fZTitleSizeInPixels
void AddStatsFit(TGCompositeFrame *f)
Add the 'Fit Options' group frame to the 'Stats' tab.
virtual void SetToolTipText(const char *text, Long_t delayms=400)
Set tool tip text associated with this button.
Definition: TGButton.cxx:395
TGCheckButton * fPadGridY
TGTextEntry * fCurPadTextEntry
TGCheckButton * fPreviewRealTime
Color_t GetCanvasColor() const
Definition: TStyle.h:198
TGNumberEntry * fLineScalePS
UInt_t fSMHeight
Definition: TStyleManager.h:79
TGCheckButton * fOptStatRMS
virtual void AddPopup(TGHotString *s, TGPopupMenu *menu, TGLayoutHints *l, TGPopupMenu *before=0)
Add popup menu to menu bar.
Definition: TGMenu.cxx:415
TGTextEntry * fHeaderPS
void ModXLabelColor()
Slot called whenever the X axis label color is modified by the user.
void Modified(Bool_t flag=1)
Definition: TPad.h:407
void SetFuncColor(Color_t color=1)
Definition: TStyle.h:362
void ModFitFormat(const char *fitformat)
Slot called whenever the fit paint format is modified by the user.
void ModMarkerColor()
Slot called whenever the marker color is modified by the user.
TGNumberEntry * fYLabelSize
Int_t GetOptDate() const
Definition: TStyle.h:250
TGRadioButton * fColorModelPSRGB
void ModFrameFillColor()
Slot called whenever the frame fill color is modified by the user.
TGCheckButton * fZLabelSizeInPixels
R__EXTERN const char gHelpSMPSPDF[]
Definition: HelpSMText.h:24
void SetCanvasDefW(Int_t w=700)
Definition: TStyle.h:343
void SetStripDecimals(Bool_t strip=kTRUE)
Set option to strip decimals when drawing axis labels.
Definition: TStyle.cxx:1476
TGNumberEntry * fXLabelOffset
Float_t GetTitleH() const
Definition: TStyle.h:291
TGNumberEntry * fPaperSizeX
void SetCanvasDefX(Int_t topx=10)
Definition: TStyle.h:344
char * fIniDir
Definition: TGFileDialog.h:64
const char * GetStatFormat() const
Definition: TStyle.h:271
void SetFrameBorderSize(Width_t size=1)
Definition: TStyle.h:372
const TGPicture * fToolBarImportMacroPic
TGColorSelect * fYAxisColor
void ModGridColor()
Slot called whenever the grid line color is modified by the user.
TGLineWidthComboBox * fCanvasBorderSize
void ModZAxisColor()
Slot called whenever the Z axis color is modified by the user.
void ModLineScalePS()
Slot called whenever the PS line scale is modified by the user.
virtual TCanvas * GetCanvas() const =0
TGNumberEntry * fAttDateTextAngle
TGColorSelect * fTextColor
TGColorSelect * fYTitleColor
TGCheckButton * fZNdivisionsOptimize
void ModStatH()
Slot called whenever the stats height is modified by the user.
void CreateTabHistos(TGCompositeFrame *tab)
Add the tab 'Histos' to the editor.
void ModAttDateTextSizeInPixels(Bool_t b)
Slot called whenever the date text size mode is modified by the user.
void ModYLabelSizeInPixels(Bool_t b)
Slot called whenever the Y axis label size mode is modified by the user.