ROOT logo
#ifndef __DGFCopyModuleSettingsPanel_h__
#define __DGFCopyModuleSettingsPanel_h__

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

#include "TList.h"

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

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

#include "TGMrbTextButton.h"
#include "TGMrbCheckButton.h"
#include "TGMrbPictureButton.h"
#include "TGMrbLabelEntry.h"
#include "TGMrbFileEntry.h"
#include "TGMrbLabelCombo.h"
#include "TGMrbMacroBrowser.h"

#include "DGFControlCommon.h"
#include "DGFControlData.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           DGFCopyModuleSettingsPanel
// Purpose:        Main frame to copy module settings
// Constructors:   
// Methods:        ProcessMessage   -- process widget events
// Description:    A dialog window to copy module settings
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class DGFCopyModuleSettingsPanel : public TGCompositeFrame {

	public:

		// cmd ids to dispatch over X events in this panel
		enum EDGFCopyModuleSettingsCmdId 		{	kDGFCopyModuleSettingsButtonCopy,			//		copy to DSP
													kDGFCopySelectModule,						//		select src
													kDGFCopyModuleSelectAll,					//		select all
													kDGFCopyModuleSelectNone,					//		select none
													kDGFCopyModuleSelectColumn					//		select columns
																						// Attention: HAS TO BE LAST INDEX!
												};

		enum EDGFCopyModuleSettingsActionId 	{
													kDGFCopyBitGain 		= BIT(0),
													kDGFCopyBitOffset		= BIT(1),
													kDGFCopyBitSum			= BIT(2),
													kDGFCopyBitFilter		= BIT(3),
													kDGFCopyBitTrace		= BIT(4),
													kDGFCopyBitPileup		= BIT(5),
													kDGFCopyBitFIFO 		= BIT(6),
													kDGFCopyBitCSR			= BIT(7),
													kDGFCopyBitSwitchBus	= BIT(8),
													kDGFCopyBitCoinc		= BIT(9),
													kDGFCopyBitMCA			= BIT(10),
													kDGFCopyBitThresh		= BIT(11),
													kDGFCopyBitTau			= BIT(12),
													kDGFCopyBitUserPSA		= BIT(13)
												};

	public:
		DGFCopyModuleSettingsPanel(TGCompositeFrame * TabFrame);

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

	protected:
		Bool_t CopyModuleSettings();

	protected:
		TList fHeap;								//! list of objects created on heap

		Int_t fModuleFrom;							// where to copy from
		
		TGGroupFrame * fSelectFrame; 				// select
		TGMrbLabelCombo * fSelectModule; 			//		module
		TGMrbRadioButtonList * fSelectChannel;		//		channel

		TGMrbCheckButtonGroup * fCopyBits;

		TGVerticalFrame * fVFrame;					// vertical frame
		TGMrbCheckButtonGroup * fChannels;
		TGGroupFrame * fModules;
		TGMrbCheckButtonList * fCluster[kNofClusters];
		TGHorizontalFrame * fGroupFrame;
		TGMrbPictureButtonList * fGroupSelect[kNofModulesPerCluster];
		TGMrbPictureButtonList * fAllSelect;
				
		TGMrbTextButtonGroup * fButtonFrame;

		TMrbLofNamedX fLofSrcModuleKeys;						//! src modules
		TMrbLofNamedX fLofDestModuleKeys[kNofClusters];			//! destination
		TMrbLofNamedX fLofChannels;								//! channel numbers

		TMrbLofNamedX fLofCopyBits;					// list of copy bits
		TMrbLofNamedX fLofButtons;					// list of actions

	ClassDef(DGFCopyModuleSettingsPanel, 0) 		// [DGFControl] Copy module/channel settings
};

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