ROOT logo
#ifndef __DGFParamsPanel_h__
#define __DGFParamsPanel_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           DGFParamsPanel.h
// Purpose:        Class defs for the XIA DGF-4C GUI
// Class:          DGFParamsPanel
// Description:    A GUI to operate a XIA DGF-4C
// Author:         R. Lutter
// Revision:       $Id: DGFParamsPanel.h,v 1.11 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 "TGMrbLabelCombo.h"
#include "TGMrbFocusList.h"

#include "DGFControlCommon.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           DGFParamsPanel
// Purpose:        Main frame to set module parameters
// Constructors:   
// Description:    A dialog window to set module parameters
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class DGFParamsPanel : public TGCompositeFrame {

	public:

		// cmd ids to dispatch over X events in this panel
		enum EDGFParamsActionId 	{	kDGFParamsSelectParam,
										kDGFParamsSelectChannel,
										kDGFParamsRead,
										kDGFParamsApply,
										kDGFParamsApplyMarked,
										kDGFParamsSelectAll,
										kDGFParamsSelectNone,
										kDGFParamsSelectColumn
																// Attention: HAS TO BE LAST INDEX!
									};
				
	public:
		DGFParamsPanel(TGCompositeFrame * TabFrame);
		virtual ~DGFParamsPanel() { fHeap.Delete(); };

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

		Bool_t ReadParams();
		Bool_t ApplyParams(Bool_t Marked = kFALSE);
		
	protected:
		Int_t fActiveParam; 						// index of active param
	
		TList fHeap;								//! list of objects created on heap
		TGGroupFrame * fSelectFrame; 				// select
		TGMrbLabelCombo * fSelectParam; 			//		param
		TGMrbRadioButtonList * fAlpha;				//		alpha list
		TGGroupFrame * fModules;			 		// module list
		TGMrbCheckButtonList * fCluster[kNofClusters];
		TGHorizontalFrame * fGroupFrame;
		TGMrbPictureButtonList * fGroupSelect[kNofModulesPerCluster];
		TGMrbPictureButtonList * fAllSelect;
		TGGroupFrame * fValueFrame; 			 	// param values
		TGHorizontalFrame * fClusterVals[kNofClusters];
		TGMrbLabelEntry * fParVal[kNofClusters * kNofModulesPerCluster];
		TGMrbTextButtonGroup * fActionFrame;

		TMrbLofNamedX fActions;						// text buttons:	actions to be taken
		
		TMrbLofNamedX fLofModuleKeys[kNofClusters];
		TMrbLofNamedX fLofParams;					// param names, sorted
		TMrbLofNamedX fLofInitials; 				// chars A .. Z
		
		TGMrbFocusList fFocusList;

		TMrbDGFData * fDGFData; 					// local data struct

	ClassDef(DGFParamsPanel, 0)		// [DGFControl] Set/display module params
};

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