#ifndef __DGFMcaDisplayPanel_h__
#define __DGFMcaDisplayPanel_h__
#include "TList.h"
#include "TRootEmbeddedCanvas.h"
#include "TTimer.h"
#include "TCanvas.h"
#include "TGWindow.h"
#include "TGFrame.h"
#include "TGButton.h"
#include "TGFileDialog.h"
#include "TGMenu.h"
#include "TMrbLofNamedX.h"
#include "TMrbNamedX.h"
#include "TMrbDGF.h"
#include "TMrbDGFEventBuffer.h"
#include "HistPresent.h"
#include "FitHist.h"
#include "TGMrbTextButton.h"
#include "TGMrbRadioButton.h"
#include "TGMrbPictureButton.h"
#include "TGMrbLabelEntry.h"
#include "TGMrbFileEntry.h"
#include "TGMrbLabelCombo.h"
#include "TGMrbMacroBrowser.h"
#include "TGMrbProgressBar.h"
#include "DGFControlCommon.h"
class DGFMcaDisplayPanel : public TGCompositeFrame {
public:
enum EDGFMcaCmdId {
kDGFMcaDisplayRunTime,
kDGFMcaDisplayTimeScale,
kDGFMcaDisplaySelectDisplay,
kDGFMcaDisplayRefreshDisplay,
kDGFMcaDisplayAcquire,
kDGFMcaDisplayStop,
kDGFMcaDisplayHisto,
kDGFMcaDisplayHistoClear,
kDGFMcaDisplaySelectAll,
kDGFMcaDisplaySelectNone,
kDGFMcaDisplaySelectColumn,
kDGFMcaDisplaySelectChannel,
kDGFMcaDisplaySelectTimeScale
};
enum EDGFMcaTimeScaleId {
kDGFMcaTimeScaleSecs = BIT(0),
kDGFMcaTimeScaleMins = BIT(1),
kDGFMcaTimeScaleHours = BIT(2),
kDGFMcaTimeScaleInfin = BIT(3)
};
enum EDGFMcaRunState {
kDGFMcaRunStopped = 0,
kDGFMcaRunPausing,
kDGFMcaIsRunning
};
enum { kDGFAccuTimerID,
kDGFRefreshTimerID
};
public:
DGFMcaDisplayPanel(TGCompositeFrame * TabFrame);
virtual ~DGFMcaDisplayPanel() { fHeap.Delete(); };
virtual Bool_t HandleTimer(TTimer * Timer);
void SelectModule(Int_t FrameId, Int_t Selection);
void SelectDisplay(Int_t FrameId, Int_t Selection);
void EntryChanged(Int_t FrameId, Int_t Selection);
void PerformAction(Int_t FrameId, Int_t Selection);
void RadioButtonPressed(Int_t FrameId, Int_t Selection);
Bool_t McaPause();
Bool_t McaResume();
protected:
Bool_t ResetValues();
Bool_t Update(Int_t EntryId);
void MoveFocus(Int_t EntryId);
Bool_t AcquireHistos();
Bool_t StoreHistos();
Bool_t DisplayHisto(Bool_t ClearMCA = kFALSE);
protected:
TList fHeap;
TGGroupFrame * fModules;
TGMrbCheckButtonList * fCluster[kNofClusters];
TGHorizontalFrame * fGroupFrame;
TGMrbPictureButtonList * fGroupSelect[kNofModulesPerCluster];
TGMrbPictureButtonList * fAllSelect;
TGHorizontalFrame * fHFrame;
TGMrbCheckButtonGroup * fSelectChannel;
TGGroupFrame * fAccuFrame;
TGMrbLabelEntry * fRunTimeEntry;
TGMrbRadioButtonList * fTimeScale;
TGGroupFrame * fDisplayFrame;
TGMrbLabelCombo * fDisplayModule;
TGMrbRadioButtonList * fDisplayChannel;
TGMrbLabelEntry * fRefreshTimeEntry;
TGMrbTextButtonGroup * fButtonFrame;
TMrbLofNamedX fLofDGFModuleKeys[kNofClusters];
TMrbLofNamedX fMcaTimeScaleButtons;
TMrbLofNamedX fMcaActions;
TMrbLofNamedX fLofModuleKeys;
TMrbLofNamedX fLofChannels;
TGMrbFocusList fFocusList;
TGMrbProgressBar * fProgressBar;
TTimer * fAccuTimer;
Bool_t fStopAccu;
EDGFMcaRunState fRunState;
Int_t fSecsToWait;
Int_t fStopWatch;
TTimer * fRefreshTimer;
TGGroupFrame * fCanvasFrame;
TRootEmbeddedCanvas * fCanvas;
DGFModule * fModuleToBeDisplayed;
FitHist * fFitHist;
ClassDef(DGFMcaDisplayPanel, 0)
};
#endif