ROOT logo
#ifndef __DGFOffsetsPanel_h__
#define __DGFOffsetsPanel_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           DGFOffsetsPanel.h
// Purpose:        Class defs for the XIA DGF-4C GUI
// Class:          DGFOffsetsPanel
// Description:    A GUI to operate a XIA DGF-4C
// Author:         R. Lutter
// Revision:       $Id: DGFOffsetsPanel.h,v 1.10 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:           DGFOffsetsPanel
// Purpose:        Main frame to take untriggered traces
// Constructors:   
// Description:    A dialog window to take untriggered traces
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class DGFOffsetsPanel : public TGCompositeFrame {

	public:

		// cmd ids to dispatch over X events in this panel
		enum EDGFOffsetsActionId 	{	kDGFOffsetsStart,
										kDGFOffsetsAbort,
										kDGFOffsetsSelectAll,
										kDGFOffsetsSelectNone,
										kDGFOffsetsSelectColumn
									};
				
	public:
		DGFOffsetsPanel(TGCompositeFrame * TabFrame);
		virtual ~DGFOffsetsPanel() { fHeap.Delete(); };

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

	protected:
		Bool_t StartRamp();

	protected:
		Int_t CalibrateDac(const Char_t * DgfName, Int_t Channel, Int_t Data[], Int_t NofWords, Int_t Offset, Int_t & DacValue);
	
	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 * fActionFrame;
		TGMrbTextButtonList * fActionButtons;
		TGGroupFrame * fOffsetFrame;
		TGMrbLabelEntry * fOffsetValue;
		
		TMrbLofNamedX fActions;						// text buttons:	actions to be taken
		
		TMrbLofNamedX fLofModuleKeys[kNofClusters];
		
		TGMrbFocusList fFocusList;

	ClassDef(DGFOffsetsPanel, 0)		// [DGFControl] Set offset values
};

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