00001 00002 #ifndef _QGUI_HISTOGRAM_DISPLAY_HH_ 00003 #define _QGUI_HISTOGRAM_DISPLAY_HH_ 00004 00005 #include "QGUIBaseFrame.hh" 00006 #include "QGUIHistogramHandler.hh" 00007 00008 #include <vector> 00009 00010 #include <TTimer.h> 00011 00012 class TGCompositeFrame; 00013 class TRootEmbeddedCanvas; 00014 class QGUINumberSelector; 00015 class TGTextButton; 00016 class TGCheckButton; 00017 class TGButtonGroup; 00018 class TGTextEntry; 00019 class TGNumberEntry; 00020 class QGuiColorSelect; 00021 00029 class QGUIHistogramDisplay: public QGUIBaseFrame 00030 { 00031 public: 00033 QGUIHistogramDisplay(const TGWindow* parent, 00034 unsigned int Width, 00035 unsigned int Height); 00036 00038 virtual ~QGUIHistogramDisplay(); 00039 00041 void Close(); 00042 00044 void UpdateChannel(); 00045 00047 void UpdateDisplay(); 00048 00054 void HandlePause(); 00055 00056 void SetUpdateActiveTypes() { fUpdateActiveTypes = true; } 00057 void SetUpdateColors() { fUpdateColors = true; } 00058 void UpdateRateMode(Int_t id); 00059 void UpdateLinLogMode(Int_t id); 00060 void UpdateSpectrumRange(); 00061 void CheckSpectrumRange(); 00062 private: 00063 00064 TGCompositeFrame *fControlFrame; 00065 TGCompositeFrame *fDisplayFrame; 00066 TGCompositeFrame *fChannelFrame; 00068 TRootEmbeddedCanvas *fPulseCanvas; 00069 TRootEmbeddedCanvas *fSpectrumCanvas; 00070 TRootEmbeddedCanvas *fRateCanvas; 00072 QGUINumberSelector *fChSelector; 00074 TGTextButton *fCloseButton; 00075 TGTextButton *fPauseButton; 00077 TGCheckButton *fSpectrumSignalButton; 00078 TGCheckButton *fSpectrumNoiseButton; 00079 TGCheckButton *fSpectrumHeaterButton; 00081 TGCheckButton *fRateSignalButton; 00082 TGCheckButton *fRateNoiseButton; 00083 TGCheckButton *fRateHeaterButton; 00085 QGuiColorSelect *fSignalColor; 00086 QGuiColorSelect *fNoiseColor; 00087 QGuiColorSelect *fHeaterColor; 00089 TGButtonGroup *fRateModeButton; 00090 TGButtonGroup *fLinLogButton; 00093 TGCheckButton *fMinAutoButton; 00095 TGCheckButton *fMaxAutoButton; 00096 TGNumberEntry *fSpectrumMinButton; 00097 TGNumberEntry *fSpectrumMaxButton; 00098 Int_t fSpectrumMin; 00099 Int_t fSpectrumMax; 00100 bool fAutoRangeSpectrumMin; 00101 bool fAutoRangeSpectrumMax; 00102 bool fLogScale; 00104 std::vector<unsigned int> fActiveChannels; 00106 const long kTimeout; 00107 TTimer fTimer; 00110 const Int_t kRateUpdatePeriodSec; 00111 00113 bool fUpdateActiveTypes; 00115 bool fUpdateColors; 00117 bool fRateStacked; 00118 00119 const Int_t kControlFrameWidth; 00122 QGUIHistogramHandler fHistoHandler; 00123 00125 void CreateSubFrames(); 00126 00128 void ConnectButtons(); 00129 00131 void GetActiveChannels(); 00132 00134 void UpdateColors(); 00135 00136 00141 void UpdateActiveTypes(); 00142 00143 ClassDef(QGUIHistogramDisplay,0) 00144 }; 00145 #endif