ROOT logo
#ifndef __DGFTraceDisplayPanel_h__
#define __DGFTraceDisplayPanel_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           DGFTraceDisplayPanel.h
// Purpose:        Class defs for the XIA DGF-4C GUI
// Class:          DGFTraceDisplayPanel
// Description:    A GUI to operate a XIA DGF-4C
// Author:         R. Lutter
// Revision:       $Id: DGFTraceDisplayPanel.h,v 1.13 2008-12-29 13:48:25 Rudolf.Lutter Exp $       
// Date:           
// URL:            
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

namespace std {} using namespace std;

#include <iostream>
#include <iomanip>

#include "TList.h"

#include "TGWindow.h"
#include "TGFrame.h"
#include "TGButton.h"

#include "TMrbLofNamedX.h"
#include "TMrbDGF.h"

#include "TGMrbCheckButton.h"
#include "TGMrbRadioButton.h"
#include "TGMrbTextButton.h"
#include "TGMrbPictureButton.h"
#include "TGMrbLabelEntry.h"
#include "TGMrbFocusList.h"

#include "DGFControlCommon.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           DGFTraceDisplayPanel
// Purpose:        Main frame to take untriggered traces
// Constructors:   
// Description:    A dialog window to take untriggered traces
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class DGFTraceDisplayPanel : public TGCompositeFrame {

	public:

		// cmd ids to dispatch over X events in this panel
		enum EDGFTraceDisplayActionId 	{
														kDGFTraceDisplayTraceLength,
														kDGFTraceDisplayXwait,
														kDGFTraceDisplayNormal,
														kDGFTraceDisplayAutoTrig,
														kDGFTraceDisplayStop,
														kDGFTraceDisplaySelectAll,
														kDGFTraceDisplaySelectNone,
														kDGFTraceDisplaySelectColumn
										};
				
	public:
		DGFTraceDisplayPanel(TGCompositeFrame * TabFrame);
		virtual ~DGFTraceDisplayPanel() { fHeap.Delete(); };

		void PerformAction(Int_t FrameId, Int_t Selection); 	// slot methods
		void SelectModule(Int_t FrameId, Int_t Selection);

	protected:
		Bool_t StartTrace(Bool_t AutoTrigFlag);
		Bool_t Update(Int_t EntryId);											// update program state on X events
		void MoveFocus(Int_t EntryId);											// move focus to next entry

	protected:
		TList fHeap;								//! list of objects created on heap
		TGGroupFrame * fModules;			 		// module list
		TGMrbCheckButtonList * fCluster[kNofClusters];
		TGHorizontalFrame * fGroupFrame;
		TGMrbPictureButtonList * fGroupSelect[kNofModulesPerCluster];
		TGMrbPictureButtonList * fAllSelect;
		TGHorizontalFrame * fHFrame;
		TGGroupFrame * fTFrame;
		TGMrbLabelEntry * fTraceLength;						// trace length
		TGGroupFrame * fXFrame;
		TGMrbLabelEntry * fXwait;							// wait states
		TGMrbCheckButtonGroup * fSelectChannel;		//	channel
		TGMrbTextButtonGroup * fActionFrame;

		TMrbLofNamedX fActions;						// text buttons:	actions to be taken
		
		TMrbLofNamedX fLofChannels;				//! channel numbers

		TMrbLofNamedX fLofDGFModuleKeys[kNofClusters];
		
		TGMrbFocusList fFocusList;

	ClassDef(DGFTraceDisplayPanel, 0)		// [DGFControl] Collect a trace
};

#endif
 DGFTraceDisplayPanel.h:1
 DGFTraceDisplayPanel.h:2
 DGFTraceDisplayPanel.h:3
 DGFTraceDisplayPanel.h:4
 DGFTraceDisplayPanel.h:5
 DGFTraceDisplayPanel.h:6
 DGFTraceDisplayPanel.h:7
 DGFTraceDisplayPanel.h:8
 DGFTraceDisplayPanel.h:9
 DGFTraceDisplayPanel.h:10
 DGFTraceDisplayPanel.h:11
 DGFTraceDisplayPanel.h:12
 DGFTraceDisplayPanel.h:13
 DGFTraceDisplayPanel.h:14
 DGFTraceDisplayPanel.h:15
 DGFTraceDisplayPanel.h:16
 DGFTraceDisplayPanel.h:17
 DGFTraceDisplayPanel.h:18
 DGFTraceDisplayPanel.h:19
 DGFTraceDisplayPanel.h:20
 DGFTraceDisplayPanel.h:21
 DGFTraceDisplayPanel.h:22
 DGFTraceDisplayPanel.h:23
 DGFTraceDisplayPanel.h:24
 DGFTraceDisplayPanel.h:25
 DGFTraceDisplayPanel.h:26
 DGFTraceDisplayPanel.h:27
 DGFTraceDisplayPanel.h:28
 DGFTraceDisplayPanel.h:29
 DGFTraceDisplayPanel.h:30
 DGFTraceDisplayPanel.h:31
 DGFTraceDisplayPanel.h:32
 DGFTraceDisplayPanel.h:33
 DGFTraceDisplayPanel.h:34
 DGFTraceDisplayPanel.h:35
 DGFTraceDisplayPanel.h:36
 DGFTraceDisplayPanel.h:37
 DGFTraceDisplayPanel.h:38
 DGFTraceDisplayPanel.h:39
 DGFTraceDisplayPanel.h:40
 DGFTraceDisplayPanel.h:41
 DGFTraceDisplayPanel.h:42
 DGFTraceDisplayPanel.h:43
 DGFTraceDisplayPanel.h:44
 DGFTraceDisplayPanel.h:45
 DGFTraceDisplayPanel.h:46
 DGFTraceDisplayPanel.h:47
 DGFTraceDisplayPanel.h:48
 DGFTraceDisplayPanel.h:49
 DGFTraceDisplayPanel.h:50
 DGFTraceDisplayPanel.h:51
 DGFTraceDisplayPanel.h:52
 DGFTraceDisplayPanel.h:53
 DGFTraceDisplayPanel.h:54
 DGFTraceDisplayPanel.h:55
 DGFTraceDisplayPanel.h:56
 DGFTraceDisplayPanel.h:57
 DGFTraceDisplayPanel.h:58
 DGFTraceDisplayPanel.h:59
 DGFTraceDisplayPanel.h:60
 DGFTraceDisplayPanel.h:61
 DGFTraceDisplayPanel.h:62
 DGFTraceDisplayPanel.h:63
 DGFTraceDisplayPanel.h:64
 DGFTraceDisplayPanel.h:65
 DGFTraceDisplayPanel.h:66
 DGFTraceDisplayPanel.h:67
 DGFTraceDisplayPanel.h:68
 DGFTraceDisplayPanel.h:69
 DGFTraceDisplayPanel.h:70
 DGFTraceDisplayPanel.h:71
 DGFTraceDisplayPanel.h:72
 DGFTraceDisplayPanel.h:73
 DGFTraceDisplayPanel.h:74
 DGFTraceDisplayPanel.h:75
 DGFTraceDisplayPanel.h:76
 DGFTraceDisplayPanel.h:77
 DGFTraceDisplayPanel.h:78
 DGFTraceDisplayPanel.h:79
 DGFTraceDisplayPanel.h:80
 DGFTraceDisplayPanel.h:81
 DGFTraceDisplayPanel.h:82
 DGFTraceDisplayPanel.h:83
 DGFTraceDisplayPanel.h:84
 DGFTraceDisplayPanel.h:85
 DGFTraceDisplayPanel.h:86
 DGFTraceDisplayPanel.h:87
 DGFTraceDisplayPanel.h:88
 DGFTraceDisplayPanel.h:89
 DGFTraceDisplayPanel.h:90
 DGFTraceDisplayPanel.h:91
 DGFTraceDisplayPanel.h:92
 DGFTraceDisplayPanel.h:93
 DGFTraceDisplayPanel.h:94
 DGFTraceDisplayPanel.h:95
 DGFTraceDisplayPanel.h:96
 DGFTraceDisplayPanel.h:97
 DGFTraceDisplayPanel.h:98
 DGFTraceDisplayPanel.h:99
 DGFTraceDisplayPanel.h:100
 DGFTraceDisplayPanel.h:101
 DGFTraceDisplayPanel.h:102
 DGFTraceDisplayPanel.h:103