ROOT logo
#ifndef GROUPOFHISTS
#define GROUPOFHISTS
#include <TVirtualPad.h>
#include <TGWindow.h>
#include <HTCanvas.h>
#include <TRootCanvas.h>
#include <TList.h>
#include <TGMenu.h>
#include <TTimer.h>
#include <iostream>
#include "TGMrbValuesAndText.h"
//_____________________________________________________________________________________


namespace std {} using namespace std;

class GroupOfHists;

class GoHTimer : public TTimer 
{
private:
   GroupOfHists *fGoH;
public:  
   GoHTimer(Long_t ms, Bool_t synch, GroupOfHists *goh);
   virtual ~GoHTimer(){};
   Bool_t Notify();

ClassDef(GoHTimer,0)
};
//________________________________________________________________________

class HistPresent;

class GroupOfHists : public TNamed {

private:
   void *fValp[100];
   TList *fRow_lab;
   TList *fHList;
   TList fPadList;
   TGMrbValuesAndText *fDialog;
   HistPresent *fHistPresent;
   HTCanvas    *fCanvas;
   TList       fHistList;
   GoHTimer    *fTimer;
   TGPopupMenu *fMenu;
   TGPopupMenu *fOptionMenu;
   TRootCanvas *fRootCanvas;   
   Bool_t      fAnyFromSocket;

   Int_t       fWindowXWidth;
   Int_t       fWindowYWidth;
   Int_t       fNx;
   Int_t       fNy;

   Double_t    fMagFac;
   Int_t       fMagFacButton;
   Int_t		fDisplayLogX;			// Log scale for all hists X
   Int_t		fDisplayLogY;			// Log scale for all hists Y
   Double_t		fDisplayLowX;		// Display range for all hists Low X
   Double_t		fDisplayLowY;		// Display range for all hists Low Y
   Double_t		fDisplayUpX;		// Display range for all hists upper X
   Double_t		fDisplayUpY;		// Display range for all hists upper Y
/*
   Double_t    fMarginX;
   Double_t    fMarginY;
   Double_t    fLeftMargin;
   Double_t    fRightMargin;
   Double_t    fTopMargin; 
   Double_t    fBotMargin;  
*/
   Int_t       fAutoUpdateDelay;
   Int_t       fCommonRotate;
   Int_t       fNoSpace;
   Int_t       fNoSpaceButton;
   Int_t       fShowAllAsFirst;
   Int_t       fArrangeOnTop;
   Int_t       fArrangeSideBySide;
   Int_t       fArrangeAsTiles;
   Int_t   fFill1Dim;      
   Color_t fHistFillColor ;
   Style_t fHistFillStyle; 
	Color_t fHistLineColor1Dim; 
	Color_t fHistLineColor2Dim; 
	Style_t fHistLineStyle;
	Width_t fHistLineWidth1Dim;
	Width_t fHistLineWidth2Dim;
	Int_t   fShowContour; 
	Int_t   fShowZScale;
	Int_t   fOptStat1Dim;
	Int_t   fOptStat2Dim;
	Int_t   fShowStatBox1Dim;
	Int_t   fShowStatBox2Dim;
	Int_t   fNh1Dim;
	Int_t   fNh2Dim;
	Double_t   fPadBottomMargin;
	Double_t   fPadTopMargin;  
	Double_t   fPadLeftMargin;
	Double_t   fPadRightMargin;
   TString fErrorMode;    
   TString fDrawOpt2Dim;
  
public:
   GroupOfHists(TList * hlist, HistPresent * hpr, const Char_t *title = NULL);
   ~GroupOfHists();
   void   BuildCanvas();
   void   RecursiveRemove(TObject *obj);
   void   ActivateTimer(Int_t delay);    // start timer, delay(milli seconds)
   void   UpdateHists();
   void   BuildMenu();
   void   HandleMenu(Int_t id);
   void   auto_exec();
   void   ShowAllAsSelected(TVirtualPad * pad, TCanvas * canvas, 
          Int_t mode = 0, TGWindow * win = NULL);
   void   RebinAll(TCanvas * canvas);
//   void   WarnBox(const char *message);
   TH1    *GetTheHist(TVirtualPad * pad);
   TList * GetPadList(){ return &fPadList;};
   void   SetOptions();
   void   SaveDefaults();
   void   RestoreDefaults();
   void   CloseDown(Int_t wid);
   void   CRButtonPressed(Int_t, Int_t, TObject*);

ClassDef(GroupOfHists,0)
};
#endif
 GroupOfHists.h:1
 GroupOfHists.h:2
 GroupOfHists.h:3
 GroupOfHists.h:4
 GroupOfHists.h:5
 GroupOfHists.h:6
 GroupOfHists.h:7
 GroupOfHists.h:8
 GroupOfHists.h:9
 GroupOfHists.h:10
 GroupOfHists.h:11
 GroupOfHists.h:12
 GroupOfHists.h:13
 GroupOfHists.h:14
 GroupOfHists.h:15
 GroupOfHists.h:16
 GroupOfHists.h:17
 GroupOfHists.h:18
 GroupOfHists.h:19
 GroupOfHists.h:20
 GroupOfHists.h:21
 GroupOfHists.h:22
 GroupOfHists.h:23
 GroupOfHists.h:24
 GroupOfHists.h:25
 GroupOfHists.h:26
 GroupOfHists.h:27
 GroupOfHists.h:28
 GroupOfHists.h:29
 GroupOfHists.h:30
 GroupOfHists.h:31
 GroupOfHists.h:32
 GroupOfHists.h:33
 GroupOfHists.h:34
 GroupOfHists.h:35
 GroupOfHists.h:36
 GroupOfHists.h:37
 GroupOfHists.h:38
 GroupOfHists.h:39
 GroupOfHists.h:40
 GroupOfHists.h:41
 GroupOfHists.h:42
 GroupOfHists.h:43
 GroupOfHists.h:44
 GroupOfHists.h:45
 GroupOfHists.h:46
 GroupOfHists.h:47
 GroupOfHists.h:48
 GroupOfHists.h:49
 GroupOfHists.h:50
 GroupOfHists.h:51
 GroupOfHists.h:52
 GroupOfHists.h:53
 GroupOfHists.h:54
 GroupOfHists.h:55
 GroupOfHists.h:56
 GroupOfHists.h:57
 GroupOfHists.h:58
 GroupOfHists.h:59
 GroupOfHists.h:60
 GroupOfHists.h:61
 GroupOfHists.h:62
 GroupOfHists.h:63
 GroupOfHists.h:64
 GroupOfHists.h:65
 GroupOfHists.h:66
 GroupOfHists.h:67
 GroupOfHists.h:68
 GroupOfHists.h:69
 GroupOfHists.h:70
 GroupOfHists.h:71
 GroupOfHists.h:72
 GroupOfHists.h:73
 GroupOfHists.h:74
 GroupOfHists.h:75
 GroupOfHists.h:76
 GroupOfHists.h:77
 GroupOfHists.h:78
 GroupOfHists.h:79
 GroupOfHists.h:80
 GroupOfHists.h:81
 GroupOfHists.h:82
 GroupOfHists.h:83
 GroupOfHists.h:84
 GroupOfHists.h:85
 GroupOfHists.h:86
 GroupOfHists.h:87
 GroupOfHists.h:88
 GroupOfHists.h:89
 GroupOfHists.h:90
 GroupOfHists.h:91
 GroupOfHists.h:92
 GroupOfHists.h:93
 GroupOfHists.h:94
 GroupOfHists.h:95
 GroupOfHists.h:96
 GroupOfHists.h:97
 GroupOfHists.h:98
 GroupOfHists.h:99
 GroupOfHists.h:100
 GroupOfHists.h:101
 GroupOfHists.h:102
 GroupOfHists.h:103
 GroupOfHists.h:104
 GroupOfHists.h:105
 GroupOfHists.h:106
 GroupOfHists.h:107
 GroupOfHists.h:108
 GroupOfHists.h:109
 GroupOfHists.h:110
 GroupOfHists.h:111
 GroupOfHists.h:112
 GroupOfHists.h:113
 GroupOfHists.h:114
 GroupOfHists.h:115
 GroupOfHists.h:116
 GroupOfHists.h:117
 GroupOfHists.h:118
 GroupOfHists.h:119
 GroupOfHists.h:120
 GroupOfHists.h:121
 GroupOfHists.h:122
 GroupOfHists.h:123
 GroupOfHists.h:124
 GroupOfHists.h:125
 GroupOfHists.h:126
 GroupOfHists.h:127