ROOT logo
#ifndef __DGFRunControlPanel_h__
#define __DGFRunControlPanel_h__

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

#include "TList.h"

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

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

#include "TGMrbTextButton.h"
#include "TGMrbLabelEntry.h"
#include "TGMrbMacroBrowser.h"
#include "TGMrbMessageViewer.h"
#include "TGMrbLofKeyBindings.h"

#include "DGFSetupPanel.h"
#include "DGFSetFilesPanel.h"
#include "DGFInstrumentPanel.h"
#include "DGFParamsPanel.h"
#include "DGFTauDisplayPanel.h"
#include "DGFTauFitPanel.h"
#include "DGFUntrigTracePanel.h"
#include "DGFTraceDisplayPanel.h"
#include "DGFOffsetsPanel.h"
#include "DGFMcaDisplayPanel.h"
#include "DGFRestoreModuleSettingsPanel.h"
#include "DGFSaveModuleSettingsPanel.h"
#include "DGFCopyModuleSettingsPanel.h"
#include "DGFMiscPanel.h"
#include "DGFCptmPanel.h"
#include "DGFControlCommon.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           DGFRunControlPanel
// Purpose:        Main frame for the DGF Control GUI
// Description:    Defines a main frame for the GUI
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class DGFRunControlPanel : public TGMainFrame {

	public:
		// cmd ids to dispatch over X events in main frame
		enum EDGFRunControlCmdId {	kDGFFileExit,					// pulldown menu "File"

									kDGFViewErrors, 				// pulldown menu "View"

									kDGFGeneralOutputNormal, 		// pulldown menu "General"
									kDGFGeneralOutputVerbose,
									kDGFGeneralOutputDebug,
									kDGFGeneralModNumLocal,
									kDGFGeneralModNumGlobal,
									kDGFGeneralOffline,
									kDGFGeneralOnline,
									kDGFGeneralEsoneSingleStep,
									kDGFGeneralEsoneNormal,

									kDGFHelpContents,				// pulldown menu "Help"
									kDGFHelpAbout,
								};

		enum EDGFRunControlTabId {
									kDGFRunControlTabSystem = 0,
									kDGFRunControlTabModules,
									kDGFRunControlTabParams,
									kDGFRunControlTabTrace,
									kDGFRunControlTabUntrigTrace,
									kDGFRunControlTabOffsets,
									kDGFRunControlTabMCA,
									kDGFRunControlTabTauFit1,
									kDGFRunControlTabTauFit2,
									kDGFRunControlTabMisc,
									kDGFRunControlTabSave,
									kDGFRunControlTabRestore,
									kDGFRunControlTabCopy,
									kDGFRunControlTabFiles,
									kDGFRunControlTabCptm
								};


	public:
		DGFRunControlPanel(const TGWindow * Window, UInt_t Width, UInt_t Height);
		virtual ~DGFRunControlPanel() { fHeap.Delete(); };

		virtual void CloseWindow();
		inline Bool_t HandleKey(Event_t * Event) { return(fKeyBindings.HandleKey(Event)); };
		
		void Activate(Int_t Selection); 	// slot methods
		void SelectTab(Int_t Selection);
		void KeyPressed(Int_t FrameId, Int_t Action);

	protected:
		void PopupMessageViewer();
		void McaPause();
		void McaResume();
	
	protected:
		TList fHeap;								//! list of objects created on heap

		TGMenuBar * fMenuBar;						// main menu bar
		TGPopupMenu * fMenuFile;					//					pulldown menu: file
		TGPopupMenu * fMenuView;					//					pulldown menu: view
		TGPopupMenu * fMenuGeneral;					//					pulldown menu: general
		TGMrbMacroBrowserPopup * fMenuMacros;		//					pulldown menu: macros
		TGPopupMenu * fMenuHelp;					//					pulldown menu: help

													// run control panel
		TGTab * fRunControlTab; 					//					vert. frame to store different items

		TGCompositeFrame * fSystemTab;
		TGCompositeFrame * fModulesTab;
		TGCompositeFrame * fParamsTab;
		TGCompositeFrame * fTracesTab;
		TGCompositeFrame * fUntrigTracesTab;
		TGCompositeFrame * fOffsetsTab;
		TGCompositeFrame * fMCATab;
		TGCompositeFrame * fTauDisplayTab;
		TGCompositeFrame * fTauFitTab;
		TGCompositeFrame * fMiscTab;
		TGCompositeFrame * fSaveTab;
		TGCompositeFrame * fRestoreTab;
		TGCompositeFrame * fCopyTab;
		TGCompositeFrame * fFilesTab;
		TGCompositeFrame * fCptmTab;

		DGFSetupPanel * fSetupPanel;
		DGFInstrumentPanel * fInstrumentPanel;
		DGFParamsPanel * fParamsPanel;
		DGFTraceDisplayPanel * fTraceDisplayPanel;
		DGFUntrigTracePanel * fUntrigTracePanel;
		DGFOffsetsPanel * fOffsetsPanel;
		DGFMcaDisplayPanel * fMcaDisplayPanel;
		DGFTauDisplayPanel * fTauDisplayPanel;
		DGFTauFitPanel * fTauFitPanel;
		DGFMiscPanel * fMiscPanel;
		DGFSaveModuleSettingsPanel * fSaveModuleSettingsPanel;
		DGFRestoreModuleSettingsPanel * fRestoreModuleSettingsPanel;
		DGFCopyModuleSettingsPanel * fCopyModuleSettingsPanel;
		DGFSetFilesPanel * fSetFilesPanel;
		DGFCptmPanel * fCptmPanel;

		TMrbLofMacros * fLofMacros; 				// list of macros

		TGMrbMessageViewer * fMsgViewer;
		
		TGMrbLofKeyBindings fKeyBindings; 		// key bindings
		
	ClassDef(DGFRunControlPanel, 0) 	// [DGFControl] Main control panel
};

#endif
 DGFRunControlPanel.h:1
 DGFRunControlPanel.h:2
 DGFRunControlPanel.h:3
 DGFRunControlPanel.h:4
 DGFRunControlPanel.h:5
 DGFRunControlPanel.h:6
 DGFRunControlPanel.h:7
 DGFRunControlPanel.h:8
 DGFRunControlPanel.h:9
 DGFRunControlPanel.h:10
 DGFRunControlPanel.h:11
 DGFRunControlPanel.h:12
 DGFRunControlPanel.h:13
 DGFRunControlPanel.h:14
 DGFRunControlPanel.h:15
 DGFRunControlPanel.h:16
 DGFRunControlPanel.h:17
 DGFRunControlPanel.h:18
 DGFRunControlPanel.h:19
 DGFRunControlPanel.h:20
 DGFRunControlPanel.h:21
 DGFRunControlPanel.h:22
 DGFRunControlPanel.h:23
 DGFRunControlPanel.h:24
 DGFRunControlPanel.h:25
 DGFRunControlPanel.h:26
 DGFRunControlPanel.h:27
 DGFRunControlPanel.h:28
 DGFRunControlPanel.h:29
 DGFRunControlPanel.h:30
 DGFRunControlPanel.h:31
 DGFRunControlPanel.h:32
 DGFRunControlPanel.h:33
 DGFRunControlPanel.h:34
 DGFRunControlPanel.h:35
 DGFRunControlPanel.h:36
 DGFRunControlPanel.h:37
 DGFRunControlPanel.h:38
 DGFRunControlPanel.h:39
 DGFRunControlPanel.h:40
 DGFRunControlPanel.h:41
 DGFRunControlPanel.h:42
 DGFRunControlPanel.h:43
 DGFRunControlPanel.h:44
 DGFRunControlPanel.h:45
 DGFRunControlPanel.h:46
 DGFRunControlPanel.h:47
 DGFRunControlPanel.h:48
 DGFRunControlPanel.h:49
 DGFRunControlPanel.h:50
 DGFRunControlPanel.h:51
 DGFRunControlPanel.h:52
 DGFRunControlPanel.h:53
 DGFRunControlPanel.h:54
 DGFRunControlPanel.h:55
 DGFRunControlPanel.h:56
 DGFRunControlPanel.h:57
 DGFRunControlPanel.h:58
 DGFRunControlPanel.h:59
 DGFRunControlPanel.h:60
 DGFRunControlPanel.h:61
 DGFRunControlPanel.h:62
 DGFRunControlPanel.h:63
 DGFRunControlPanel.h:64
 DGFRunControlPanel.h:65
 DGFRunControlPanel.h:66
 DGFRunControlPanel.h:67
 DGFRunControlPanel.h:68
 DGFRunControlPanel.h:69
 DGFRunControlPanel.h:70
 DGFRunControlPanel.h:71
 DGFRunControlPanel.h:72
 DGFRunControlPanel.h:73
 DGFRunControlPanel.h:74
 DGFRunControlPanel.h:75
 DGFRunControlPanel.h:76
 DGFRunControlPanel.h:77
 DGFRunControlPanel.h:78
 DGFRunControlPanel.h:79
 DGFRunControlPanel.h:80
 DGFRunControlPanel.h:81
 DGFRunControlPanel.h:82
 DGFRunControlPanel.h:83
 DGFRunControlPanel.h:84
 DGFRunControlPanel.h:85
 DGFRunControlPanel.h:86
 DGFRunControlPanel.h:87
 DGFRunControlPanel.h:88
 DGFRunControlPanel.h:89
 DGFRunControlPanel.h:90
 DGFRunControlPanel.h:91
 DGFRunControlPanel.h:92
 DGFRunControlPanel.h:93
 DGFRunControlPanel.h:94
 DGFRunControlPanel.h:95
 DGFRunControlPanel.h:96
 DGFRunControlPanel.h:97
 DGFRunControlPanel.h:98
 DGFRunControlPanel.h:99
 DGFRunControlPanel.h:100
 DGFRunControlPanel.h:101
 DGFRunControlPanel.h:102
 DGFRunControlPanel.h:103
 DGFRunControlPanel.h:104
 DGFRunControlPanel.h:105
 DGFRunControlPanel.h:106
 DGFRunControlPanel.h:107
 DGFRunControlPanel.h:108
 DGFRunControlPanel.h:109
 DGFRunControlPanel.h:110
 DGFRunControlPanel.h:111
 DGFRunControlPanel.h:112
 DGFRunControlPanel.h:113
 DGFRunControlPanel.h:114
 DGFRunControlPanel.h:115
 DGFRunControlPanel.h:116
 DGFRunControlPanel.h:117
 DGFRunControlPanel.h:118
 DGFRunControlPanel.h:119
 DGFRunControlPanel.h:120
 DGFRunControlPanel.h:121
 DGFRunControlPanel.h:122
 DGFRunControlPanel.h:123
 DGFRunControlPanel.h:124
 DGFRunControlPanel.h:125
 DGFRunControlPanel.h:126
 DGFRunControlPanel.h:127
 DGFRunControlPanel.h:128
 DGFRunControlPanel.h:129
 DGFRunControlPanel.h:130
 DGFRunControlPanel.h:131
 DGFRunControlPanel.h:132
 DGFRunControlPanel.h:133
 DGFRunControlPanel.h:134
 DGFRunControlPanel.h:135
 DGFRunControlPanel.h:136
 DGFRunControlPanel.h:137
 DGFRunControlPanel.h:138
 DGFRunControlPanel.h:139
 DGFRunControlPanel.h:140
 DGFRunControlPanel.h:141
 DGFRunControlPanel.h:142
 DGFRunControlPanel.h:143
 DGFRunControlPanel.h:144
 DGFRunControlPanel.h:145
 DGFRunControlPanel.h:146
 DGFRunControlPanel.h:147
 DGFRunControlPanel.h:148
 DGFRunControlPanel.h:149
 DGFRunControlPanel.h:150
 DGFRunControlPanel.h:151
 DGFRunControlPanel.h:152
 DGFRunControlPanel.h:153
 DGFRunControlPanel.h:154
 DGFRunControlPanel.h:155
 DGFRunControlPanel.h:156
 DGFRunControlPanel.h:157
 DGFRunControlPanel.h:158
 DGFRunControlPanel.h:159
 DGFRunControlPanel.h:160
 DGFRunControlPanel.h:161
 DGFRunControlPanel.h:162
 DGFRunControlPanel.h:163
 DGFRunControlPanel.h:164
 DGFRunControlPanel.h:165
 DGFRunControlPanel.h:166
 DGFRunControlPanel.h:167
 DGFRunControlPanel.h:168
 DGFRunControlPanel.h:169
 DGFRunControlPanel.h:170