ROOT logo
#ifndef __TGMrbMacroBrowser_h__
#define __TGMrbMacroBrowser_h__

//_________________________________________________[C++ CLASS DEFINITION FILE]
//////////////////////////////////////////////////////////////////////////////
// Name:           gutils/inc/TGMrbMacroBrowser.h
// Purpose:        Define utilities to be used with the MARaBOU GUI
// Classes:        TGMrbMacroBrowserComposite   -- manage list of macros (composite frame)
//                 TGMrbMacroBrowserGroup       -- ... (group frame)
//                 TGMrbMacroBrowserPopup       -- ... (popup menu)
//                 TGMrbMacroBrowserTransient   -- ... (transient window)
// Description:    Graphic utilities for the MARaBOU GUI.
// Author:         R. Lutter
// Revision:       $Id: TGMrbMacroBrowser.h,v 1.28 2008-09-23 10:44:11 Rudolf.Lutter Exp $       
// Date:           
// Keywords:
//////////////////////////////////////////////////////////////////////////////

namespace std {} using namespace std;

#include <cstdlib>
#include <iostream>
#include <sstream>
#include <iomanip>
#include <fstream>

#include "Rtypes.h"
#include "TSystem.h"
#include "TROOT.h"
#include "TList.h"
#include "TObjArray.h"
#include "TEnv.h"
#include "TApplication.h"

#include "TGWindow.h"
#include "TGFrame.h"
#include "TGLabel.h"
#include "TGMenu.h"
#include "TGTab.h"
#include "TGFileDialog.h"

#include "RQ_OBJECT.h"

#include "TMrbNamedX.h"
#include "TMrbLofNamedX.h"
#include "TMrbLofMacros.h"

#include "TGMrbLayout.h"
#include "TGMrbLabelEntry.h"
#include "TGMrbFileEntry.h"
#include "TGMrbFileObject.h"
#include "TGMrbRadioButton.h"
#include "TGMrbCheckButton.h"
#include "TGMrbTextButton.h"
#include "TGMrbLabelCombo.h"
#include "TGMrbMessageViewer.h"
#include "TGMrbLofKeyBindings.h"

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbMacroArg
// Purpose:        Display a single macro argument
// Description:    Class to describe one singel macro argument
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class TGMrbMacroArg : public TMrbNamedX {

	friend class TGMrbMacroFrame;

	public:
		enum EGMrbMacroEntryType		{
											kGMrbMacroEntryBitEntry			= BIT(0),
											kGMrbMacroEntryBitMulti			= BIT(1),
											kGMrbMacroEntryBitChkBtn		= BIT(2),
											kGMrbMacroEntryBitRdoBtn		= BIT(3),
											kGMrbMacroEntryBitBeginEnd		= BIT(4),
											kGMrbMacroEntryBitUpDown		= BIT(5),

											kGMrbMacroEntryPlain			= kGMrbMacroEntryBitEntry,
											kGMrbMacroEntryPlain2			= kGMrbMacroEntryBitEntry | kGMrbMacroEntryBitMulti,
											kGMrbMacroEntryPlainC			= kGMrbMacroEntryBitEntry | kGMrbMacroEntryBitChkBtn,
											kGMrbMacroEntryPlainC2			= kGMrbMacroEntryPlainC | kGMrbMacroEntryBitMulti,

											kGMrbMacroEntryUpDown			= kGMrbMacroEntryBitEntry | kGMrbMacroEntryBitUpDown,
											kGMrbMacroEntryUpDown2			= kGMrbMacroEntryUpDown | kGMrbMacroEntryBitMulti,
											kGMrbMacroEntryUpDownC			= kGMrbMacroEntryUpDown | kGMrbMacroEntryBitChkBtn,
											kGMrbMacroEntryUpDownC2 		= kGMrbMacroEntryUpDownC | kGMrbMacroEntryBitMulti,

											kGMrbMacroEntryUpDownX			= kGMrbMacroEntryUpDown | kGMrbMacroEntryBitBeginEnd,
											kGMrbMacroEntryUpDownXC 		= kGMrbMacroEntryUpDownX | kGMrbMacroEntryBitChkBtn,
											kGMrbMacroEntryUpDownX2 		= kGMrbMacroEntryUpDownX | kGMrbMacroEntryBitMulti,
											kGMrbMacroEntryUpDownXC2		= kGMrbMacroEntryUpDownXC | kGMrbMacroEntryBitMulti,

											kGMrbMacroEntryYesNo			= BIT(6),
											kGMrbMacroEntryRadio			= BIT(7),
											kGMrbMacroEntryCheck			= BIT(8),
											kGMrbMacroEntryText 			= BIT(9),
											kGMrbMacroEntryCombo			= BIT(10),
											kGMrbMacroEntryFile 			= BIT(11),
											kGMrbMacroEntryFObjCombo		= BIT(12),
											kGMrbMacroEntryFObjListBox		= BIT(13),

											kGMrbMacroEntryComment			= BIT(14),
											kGMrbMacroEntrySection			= BIT(15),
											kGMrbMacroEntryGroup			= BIT(16),
											kGMrbMacroEntryPad 				= BIT(17),
											kGMrbMacroEntryTab				= BIT(18),
											kGMrbMacroEntryFrame			= BIT(20)
										};

		enum EGMrbMacroArgType		{
											kGMrbMacroArgInt,
											kGMrbMacroArgUInt,
											kGMrbMacroArgFloat,
											kGMrbMacroArgDouble,
											kGMrbMacroArgChar,
											kGMrbMacroArgBool,
											kGMrbMacroArgObjArr
										};

		enum EGMrbMacroArgBase			{
											kGMrbMacroArgBaseDec	=	BIT(0),
											kGMrbMacroArgBaseBin	=	BIT(1),
											kGMrbMacroArgBaseOct	=	BIT(2),
											kGMrbMacroArgBaseHex	=	BIT(3)
										};

		enum EGMrbMacroArgOrientation	{	kGMrbMacroEntryHorizontal	=	BIT(0),
											kGMrbMacroEntryVertical 	=	BIT(1)
										};

		enum							{	kGMrbMacroEntryNo		=	0	};
		enum							{	kGMrbMacroEntryYes		=	1	};
		enum							{	kGMrbMacroNofFileTypes	=	50	};

	public:
		TGMrbMacroArg() : TMrbNamedX(0, "Arg0") { 		// default ctor
			fFileInfo = new TGFileInfo();
		};
		TGMrbMacroArg(Int_t Number) : TMrbNamedX(Number, Form("Arg%d", Number)) {		// ctor
			fFileInfo = new TGFileInfo();
		};
		TGMrbMacroArg(Int_t Number, const Char_t * Name) : TMrbNamedX(Number, Name) {
			fFileInfo = new TGFileInfo();
		};
		virtual ~TGMrbMacroArg() { delete fFileInfo; };						// default dtor

		const Char_t * GetResource(TString & Resource, const Char_t * ResourceName) const;

		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	protected:
		TMrbNamedX * fType;				// argument type
		TMrbNamedX * fEntryType; 		// entry type;

		TString fCurrentValue;		// current
		TString fDefaultValue;		// default

		Bool_t fAddLofValues;			// add list of values on exec?

		TGLabel * fComment; 			// gui representation
		TGLabel * fSection;
		TGLabel * fTab;
		TGGroupFrame * fGroup;
		TGVerticalFrame * fFrame;
		TGMrbLabelEntry * fEntry;
		TGMrbRadioButtonList * fRadio;
		TGMrbCheckButtonList * fCheck;
		TGMrbTextButtonList * fText;
		TGMrbLabelCombo * fCombo;
		TGMrbFileEntry * fFile;
		TGMrbFileObjectCombo * fFObjCombo;
		TGMrbFileObjectListBox * fFObjListBox;

		TMrbLofNamedX fButtons; 		// list of buttons

		Int_t fEntryWidth;				// dimensions
		Int_t fNofEntryFields;
		Double_t fLowerLimit;
		Double_t fUpperLimit;
		Double_t fIncrement;
		Int_t fOrientation;
		Int_t fNofCL;
		TString fExecFunct;

		TGFileInfo * fFileInfo;			// file info to be used with FileEntry
		TObjArray fFileTypes;
		const Char_t * fPtrFileTypes[2 * TGMrbMacroArg::kGMrbMacroNofFileTypes];

 	ClassDef(TGMrbMacroArg, 0)		// [GraphUtils] Display an argument of a ROOT macro
};

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbMacroFrame
// Purpose:        Dispay and exec a macro
// Description:    A transient frame to display macro args and exec macro
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class TGMrbMacroFrame : public TGTransientFrame {

	RQ_OBJECT("TGMrbMacroFrame")

	public:
		// ids to dispatch over X events
		enum EGMrbMacroId				{	kGMrbMacroIdExec,
											kGMrbMacroIdReset,
											kGMrbMacroIdClose,
											kGMrbMacroIdQuit,
											kGMrbMacroIdModifyHeader,
											kGMrbMacroIdModifySource,
											kGMrbMacroIdExecClose
										};

		enum							{	kUserButtonStart	=	BIT(16)	};

		enum							{	kFrameWidth 		=	1200 	};
		enum							{	kLineHeight 		=	20		};

		enum							{	kGMrbMacroNofFrames 	=	10	};
		enum							{	kGMrbMacroNofSubframes	=	10	};
		enum							{	kGMrbMacroNofTabs		=	10	};

	public:
		TGMrbMacroFrame(const TGWindow * Parent, const TGWindow * Main, TMrbNamedX * Macro, UInt_t Width, UInt_t Height, UInt_t Options = kMainFrame | kVerticalFrame);
		~TGMrbMacroFrame() { fHeap.Delete(); };

		Bool_t ResetMacroArgs();						// reset arguments
		Bool_t ExecMacro(Bool_t UserStart = kFALSE);	// exec macro
		Bool_t ModifyMacroHeader(); 					// modify header
		Bool_t ModifyMacroSource(); 					// modify source

		inline TMrbLofNamedX * GetLofArgTypes() { return(&fLofArgTypes); };
		inline TMrbLofNamedX * GetLofEntryTypes() { return(&fLofEntryTypes); };
		inline TObjArray * GetLofMacroArgs() { return(&fLofMacroArgs); };

		TGMrbMacroArg * FindArgByName(const Char_t * ArgName);
		Bool_t SetArgValue(const Char_t * ArgName, Int_t Value, Int_t EntryNo = 0);
		Bool_t SetArgValue(const Char_t * ArgName, Bool_t Value, Int_t EntryNo = 0);
		Bool_t SetArgValue(const Char_t * ArgName, Double_t Value, Int_t EntryNo = 0);
		Bool_t SetArgValue(const Char_t * ArgName, const Char_t * Value, Int_t EntryNo = 0);
		Bool_t SetArgValue(const Char_t * ArgName, TObjArray & Selection);
		Bool_t GetArgValue(const Char_t * ArgName, Int_t & Value, Int_t EntryNo = 0);
		Bool_t GetArgValue(const Char_t * ArgName, Bool_t & Value, Int_t EntryNo = 0);
		Bool_t GetArgValue(const Char_t * ArgName, Double_t & Value, Int_t EntryNo = 0);
		Bool_t GetArgValue(const Char_t * ArgName, TString & Value, Int_t EntryNo = 0);
		Bool_t GetArgValue(const Char_t * ArgName, TObjArray & Selection);

		Bool_t SetArgCheck(const Char_t * ArgName, UInt_t Check);
		Bool_t GetArgCheck(const Char_t * ArgName, UInt_t & Check);
		Bool_t ArgIsChecked(const Char_t * ArgName);

		void ProcessSignal(Int_t FrameId, Int_t Signal); 			// slot methods
		void ActionButtonPressed(Int_t FrameId, Int_t Signal);

		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	protected:
		Bool_t LoadMacro();

	protected:
		TList fHeap;

		TMrbNamedX * fMacro;

		TGGroupFrame * fMacroInfo;
		TGLabel * fMacroName;
		TGLabel * fMacroPath;
		TGLabel * fMacroTitle;
		TGGroupFrame * fMacroArgs;
		TGTab * fMacroTab;
		TGCompositeFrame * fMacroLofTabs[kGMrbMacroNofTabs];
		TGVerticalFrame * fMacroLofTabFrames[kGMrbMacroNofTabs];
		TGHorizontalFrame * fMacroLofFrames[kGMrbMacroNofFrames];
		TGVerticalFrame * fMacroLofSubframes[kGMrbMacroNofSubframes];
		TGMrbTextButtonGroup * fAction;

		TMrbLofNamedX fLofArgTypes;
		TMrbLofNamedX fLofEntryTypes;

		TMrbLofNamedX fLofActions;
		TMrbLofNamedX fLofActionsM;
		TMrbLofNamedX fLofActionsX;

		TObjArray fLofMacroArgs;	// list of arguments

		Bool_t fMacroLoaded;

	ClassDef(TGMrbMacroFrame, 0)	// [GraphUtils] A frame containing definitions of a ROOT macro
};

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbMacroEdit
// Purpose:        Edit macro layout
// Description:    A transient frame to modify macro args
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class TGMrbMacroEdit : public TGTransientFrame {

	public:
		// button ids
		enum EGMrbMacroEditButtons		{	kGMrbMacroAclicPlus,
											kGMrbMacroAclicPlusPlus,
											kGMrbMacroAclicPlusG,
											kGMrbMacroAclicPlusPlusG,
											kGMrbMacroMayModify,
											kGMrbMacroDontModify,
											kGMrbMacroArglistOnly,
											kGMrbMacroGuiPtrOnly,
											kGMrbMacroArglistAndGui,
											kGMrbMacroUserStartOn,
											kGMrbMacroUserStartOff
										};

		// ids to dispatch over X events
		enum EGMrbMacroEditId			{	kGMrbMacroEditCurrentArg,
											kGMrbMacroEditIdFirstArg,
											kGMrbMacroEditIdLastArg,
											kGMrbMacroEditIdRemoveArg,
											kGMrbMacroEditIdResetArg,
											kGMrbMacroEditIdNewArgBefore,
											kGMrbMacroEditIdNewArgAfter,

											kGMrbMacroEditIdResetAll,
											kGMrbMacroEditIdResetHeader,
											kGMrbMacroEditIdResetAllArgs,
											kGMrbMacroEditIdSave,
											kGMrbMacroEditIdClose
										};

		enum							{	kEntryId		=	1000	};

		enum							{	kFrameWidth 	=	630 	};
		enum							{	kLineHeight 	=	20		};

		enum							{	kMaxNofArgs 	=	50		};

		enum EGMrbMacroTag	 			{	kMacroTagFile,
											kMacroTagName,
											kMacroTagTitle,
											kMacroTagProc,
											kMacroTagAuthor,
											kMacroTagMailAddr,
											kMacroTagUrl,
											kMacroTagCreationDate,
											kMacroTagSyntax,
											kMacroTagArguments,
											kMacroTagExec,
											kMacroTagIncludeHFiles,
											kMacroTagArgEnums,
											kMacroTagEnums,
											kMacroTagCode
										};

	public:
		TGMrbMacroEdit(const TGWindow * Parent, const TGWindow * Main, TMrbNamedX * Macro, UInt_t Width, UInt_t Height, UInt_t Options = kMainFrame | kVerticalFrame);
		~TGMrbMacroEdit() { fHeap.Delete(); };

		Bool_t SwitchToArg(Int_t FrameId, Int_t EntryNo = -1);				// slot methods
		void ActionButtonPressed(Int_t FrameId, Int_t Button);

		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	protected:
		Bool_t UpdateArg(Int_t ArgNo = -1);					// update GUI for a given argument
		Bool_t UpdateNofArgs(); 							// update number of arguments in GUI
		Bool_t StoreHeader();								// store header data
		Bool_t StoreArg(Int_t ArgNo = -1);					// store GUI settings for (current) arg
		Bool_t RemoveArg(Int_t ArgNo = -1);					// remove (current) argument and its env defs
		Bool_t InsertArg(Int_t ArgNo);				 		// insert a new argument
		Bool_t RestoreArg(Int_t ArgNo = -1);				// restore original settings for (current) argument
		Bool_t RestoreHeader(); 							// reset header env (Name, Title, Path ...) to original values
		Bool_t RestoreAllArgs();							// reset all args to original values
		Bool_t ChangeEnv(Int_t ArgNo, Bool_t Delete);		// change current environment by deleting/inserting this argument
		Bool_t SaveMacro(const Char_t * NewFile, const Char_t * OldFile);	// save settings to a file
		Int_t ExtractEnums(TMrbLofNamedX & LofEnums, Int_t ArgNo);	// extract enum defs

		Bool_t CopyUserCode(const Char_t * NewFile, const Char_t * OrgFile);		// copy user code fromn original to new file
		Bool_t CopyUserCode(ofstream & Out, const Char_t * OutFile, ifstream & In, const Char_t * InFile, const Char_t * Tag, Bool_t CopyFlag);

	protected:
		TList fHeap;

		TMrbNamedX * fMacro;

		TGGroupFrame * fMacroInfo;
		TGMrbLabelEntry * fMacroName;
		TGMrbLabelEntry * fMacroTitle;
		TGMrbLabelEntry * fMacroRcFile;
		TGMrbLabelEntry * fMacroProc;
		TGMrbLabelEntry * fMacroWidth;

		TGMrbRadioButtonList * fMacroAclic;
		TGMrbRadioButtonList * fMacroModify;
		TGMrbRadioButtonList * fMacroGuiPtrMode;
		TGMrbRadioButtonList * fMacroUserStart;

		TGMrbLabelEntry * fMacroNofArgs;

		TGGroupFrame * fMacroArg;
		TGMrbLabelEntry * fArgNumber;
		TGMrbTextButtonList * fArgAction;

		TGGroupFrame * fMacroLayout;
		TGMrbLabelEntry * fArgName;
		TGMrbLabelEntry * fArgTitle;
		TGMrbLabelCombo * fArgType;
		TGMrbLabelCombo * fArgEntryType;
		TGMrbLabelEntry * fArgNofEntryFields;
		TGMrbLabelEntry * fArgEntryWidth;
		TGMrbLabelEntry * fArgDefaultValue;
		TGMrbLabelEntry * fArgValues;
		TGMrbRadioButtonList * fArgAddLofValues;
		TGMrbRadioButtonList * fArgBase;
		TGMrbLabelEntry * fArgLimits;
		TGMrbRadioButtonList * fArgOrientation;
		TGMrbLabelEntry * fArgNofCL;
		TGMrbLabelEntry * fArgExecFunct;

		TGMrbTextButtonGroup * fAction;

		TMrbLofNamedX fLofAclicModes;
		TMrbLofNamedX fLofModifyModes;
		TMrbLofNamedX fLofArglistGuiModes;
		TMrbLofNamedX fLofUserStartModes;

		TMrbLofNamedX fLofArgTypes;
		TMrbLofNamedX fLofEntryTypes;
		TMrbLofNamedX fLofOrientations;
		TMrbLofNamedX fLofIntegerBases;
		TMrbLofNamedX fYesNo;

		TMrbLofNamedX fLofArgActions;
		TMrbLofNamedX fLofActions;

		Int_t fNofArgs; 					// actual number of arguments
		TGMrbMacroArg fCurrentArg;			// current argument number
		TEnv * fOriginalEnv;				// original settings
		TEnv * fCurrentEnv; 				// current settings
		TMrbLofNamedX fLofEnvNames; 		// list of legal env names

	ClassDef(TGMrbMacroEdit, 0)		// [GraphUtils] Edit macro args and layout
};

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbMacroList
// Purpose:        A list of buttons, one per macro
// Description:    A list of text buttons, one per macro,
//                 showing macro name & title
//                 Common subclass to be used by TGMrbBrowserVertical,
//                 TGMrbBrowserGroup, and TGMrbBrowserTransient
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class TGMrbMacroList : public TGVerticalFrame {

	public:
		TGMrbMacroList(const TGWindow * Parent, TMrbLofMacros * MacroList, UInt_t Width, UInt_t Height,
																TGMrbLayout * FrameGC, TGMrbLayout * ButtonGC,
																UInt_t FrameOptions = kChildFrame | kVerticalFrame,
																UInt_t ButtonOptions = kRaisedFrame | kDoubleBorder);
		~TGMrbMacroList() { fHeap.Delete(); };

		void SelectMacro(Int_t FrameId, Int_t Selection);	 	// slot method

		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	protected:
		TList fHeap;
		TGMrbTextButtonList * fButtonList;

		TMrbLofMacros * fLofMacros;
		TMrbLofNamedX fLofButtons;

	ClassDef(TGMrbMacroList, 0) 	// [GraphUtils] A list of ROOT macros
};

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbMacroBrowserMain
// Purpose:        Manage a list of macros
// Description:    A main frame showing a list of macros
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class TGMrbMacroBrowserMain : public TGMainFrame {

	public:
		enum EGMrbMacroMainId	{	kGMrbMacroMenuFileNew,
									kGMrbMacroMenuFileOpen,
									kGMrbMacroMenuFileExit,
									kGMrbMacroMenuViewErrors,
									kGMrbMacroMenuHelpContents,
									kGMrbMacroMenuHelpAbout
								};

	public:
		TGMrbMacroBrowserMain(const TGWindow * Parent, TMrbLofMacros * LofMacros,
												UInt_t Width, UInt_t Height);

		virtual ~TGMrbMacroBrowserMain() { fHeap.Delete(); };

		inline TMrbLofMacros * GetLofMacros() const { return(fLofMacros); };

		inline Bool_t HandleKey(Event_t * Event) { return(fKeyBindings.HandleKey(Event)); };
		
		void MenuSelect(Int_t Selection);			// slot method

		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

		inline void CloseWindow() { TGMainFrame::CloseWindow(); gApplication->Terminate(0); };

	protected:
		void PopupMessageViewer();
	
	protected:
		TList fHeap;
		TGPopupMenu * fMenuFile;
		TGPopupMenu * fMenuView;
		TGPopupMenu * fMenuHelp;
		TGMenuBar * fMenuBar;

		TGMrbLayout * fFrameGC;
		TGMrbLayout * fButtonGC;

		TMrbLofMacros * fLofMacros;
		TGMrbMacroList * fMacroList;

		TGMrbMessageViewer * fMsgViewer;

		TGMrbLofKeyBindings fKeyBindings;
		
	ClassDef(TGMrbMacroBrowserMain,0)		// [GraphUtils] Show ROOT macros in a main frame
};

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbMacroBrowserVertical
// Purpose:        Manage a list of macros
// Description:    A vertical frame showing a list of macros
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class TGMrbMacroBrowserVertical : public TGVerticalFrame {

	public:
		TGMrbMacroBrowserVertical(const TGWindow * Parent, TMrbLofMacros * LofMacros, UInt_t Width, UInt_t Height, UInt_t Options);

		virtual ~TGMrbMacroBrowserVertical() {};

		inline TMrbLofMacros * GetLofMacros() const { return(fLofMacros); };

		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	protected:
		TList fHeap;
		TMrbLofMacros * fLofMacros;
		TGMrbMacroList * fMacroList;

	ClassDef(TGMrbMacroBrowserVertical,0)	// [GraphUtils] Show ROOT macros in a vertical frame
};

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbMacroBrowserGroup
// Purpose:        Manage a list of macros
// Description:    Group frame showing a list of macros
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class TGMrbMacroBrowserGroup : public TGGroupFrame {

	public:
		TGMrbMacroBrowserGroup(const TGWindow * Parent, const Char_t * Title, TMrbLofMacros * LofMacros, TGMrbLayout * Layout);

		virtual ~TGMrbMacroBrowserGroup() {};

		inline TMrbLofMacros * GetLofMacros() const { return(fLofMacros); };

		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	protected:
		TList fHeap;
		TMrbLofMacros * fLofMacros;
		TGMrbMacroList * fMacroList;

	ClassDef(TGMrbMacroBrowserGroup,0)		// [GraphUtils] Show ROOT macros in a group frame
};

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbMacroBrowserPopup
// Purpose:        Manage a list of macros
// Description:    Popup menu showing a list of macros
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class TGMrbMacroBrowserPopup : public TGPopupMenu {

	public:
		enum EGMrbMacroPopupId	{	kGMrbPopupNew	= 1000,
									kGMrbPopupOpen
								};

	public:
		TGMrbMacroBrowserPopup(const TGWindow * Parent, TMrbLofMacros * LofMacros, UInt_t Width = 10, UInt_t Height = 10);

		virtual ~TGMrbMacroBrowserPopup() { fHeap.Delete(); };

		inline TMrbLofMacros * GetLofMacros() const { return(fLofMacros); };

		void MenuSelect(Int_t Signal);			// slot method

		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	protected:
		TList fHeap;
		TMrbLofMacros * fLofMacros;

	ClassDef(TGMrbMacroBrowserPopup,0)		// [GraphUtils] Show ROOT macros in a popup menu
};

//______________________________________________________[C++ CLASS DEFINITION]
//////////////////////////////////////////////////////////////////////////////
// Name:           TGMrbMacroBrowserTransient
// Purpose:        Manage a list of macros
// Description:    Transient frame showing a list of macros
// Keywords:       
//////////////////////////////////////////////////////////////////////////////

class TGMrbMacroBrowserTransient : public TGTransientFrame {

	public:
		TGMrbMacroBrowserTransient(const TGWindow * Parent, const TGWindow * Main, const Char_t * Title, TMrbLofMacros * LofMacros,
															UInt_t Width, UInt_t Height, UInt_t Options = kMainFrame | kVerticalFrame);

		virtual ~TGMrbMacroBrowserTransient() {fHeap.Delete(); };

		inline TMrbLofMacros * GetLofMacros() const { return(fLofMacros); };

		inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };

	protected:
		TList fHeap;
		TMrbLofMacros * fLofMacros;
		TGMrbMacroList * fMacroList;

	ClassDef(TGMrbMacroBrowserTransient,0)		// [GraphUtils] Show ROOT macros in a transient frame
};

#endif
 TGMrbMacroBrowser.h:1
 TGMrbMacroBrowser.h:2
 TGMrbMacroBrowser.h:3
 TGMrbMacroBrowser.h:4
 TGMrbMacroBrowser.h:5
 TGMrbMacroBrowser.h:6
 TGMrbMacroBrowser.h:7
 TGMrbMacroBrowser.h:8
 TGMrbMacroBrowser.h:9
 TGMrbMacroBrowser.h:10
 TGMrbMacroBrowser.h:11
 TGMrbMacroBrowser.h:12
 TGMrbMacroBrowser.h:13
 TGMrbMacroBrowser.h:14
 TGMrbMacroBrowser.h:15
 TGMrbMacroBrowser.h:16
 TGMrbMacroBrowser.h:17
 TGMrbMacroBrowser.h:18
 TGMrbMacroBrowser.h:19
 TGMrbMacroBrowser.h:20
 TGMrbMacroBrowser.h:21
 TGMrbMacroBrowser.h:22
 TGMrbMacroBrowser.h:23
 TGMrbMacroBrowser.h:24
 TGMrbMacroBrowser.h:25
 TGMrbMacroBrowser.h:26
 TGMrbMacroBrowser.h:27
 TGMrbMacroBrowser.h:28
 TGMrbMacroBrowser.h:29
 TGMrbMacroBrowser.h:30
 TGMrbMacroBrowser.h:31
 TGMrbMacroBrowser.h:32
 TGMrbMacroBrowser.h:33
 TGMrbMacroBrowser.h:34
 TGMrbMacroBrowser.h:35
 TGMrbMacroBrowser.h:36
 TGMrbMacroBrowser.h:37
 TGMrbMacroBrowser.h:38
 TGMrbMacroBrowser.h:39
 TGMrbMacroBrowser.h:40
 TGMrbMacroBrowser.h:41
 TGMrbMacroBrowser.h:42
 TGMrbMacroBrowser.h:43
 TGMrbMacroBrowser.h:44
 TGMrbMacroBrowser.h:45
 TGMrbMacroBrowser.h:46
 TGMrbMacroBrowser.h:47
 TGMrbMacroBrowser.h:48
 TGMrbMacroBrowser.h:49
 TGMrbMacroBrowser.h:50
 TGMrbMacroBrowser.h:51
 TGMrbMacroBrowser.h:52
 TGMrbMacroBrowser.h:53
 TGMrbMacroBrowser.h:54
 TGMrbMacroBrowser.h:55
 TGMrbMacroBrowser.h:56
 TGMrbMacroBrowser.h:57
 TGMrbMacroBrowser.h:58
 TGMrbMacroBrowser.h:59
 TGMrbMacroBrowser.h:60
 TGMrbMacroBrowser.h:61
 TGMrbMacroBrowser.h:62
 TGMrbMacroBrowser.h:63
 TGMrbMacroBrowser.h:64
 TGMrbMacroBrowser.h:65
 TGMrbMacroBrowser.h:66
 TGMrbMacroBrowser.h:67
 TGMrbMacroBrowser.h:68
 TGMrbMacroBrowser.h:69
 TGMrbMacroBrowser.h:70
 TGMrbMacroBrowser.h:71
 TGMrbMacroBrowser.h:72
 TGMrbMacroBrowser.h:73
 TGMrbMacroBrowser.h:74
 TGMrbMacroBrowser.h:75
 TGMrbMacroBrowser.h:76
 TGMrbMacroBrowser.h:77
 TGMrbMacroBrowser.h:78
 TGMrbMacroBrowser.h:79
 TGMrbMacroBrowser.h:80
 TGMrbMacroBrowser.h:81
 TGMrbMacroBrowser.h:82
 TGMrbMacroBrowser.h:83
 TGMrbMacroBrowser.h:84
 TGMrbMacroBrowser.h:85
 TGMrbMacroBrowser.h:86
 TGMrbMacroBrowser.h:87
 TGMrbMacroBrowser.h:88
 TGMrbMacroBrowser.h:89
 TGMrbMacroBrowser.h:90
 TGMrbMacroBrowser.h:91
 TGMrbMacroBrowser.h:92
 TGMrbMacroBrowser.h:93
 TGMrbMacroBrowser.h:94
 TGMrbMacroBrowser.h:95
 TGMrbMacroBrowser.h:96
 TGMrbMacroBrowser.h:97
 TGMrbMacroBrowser.h:98
 TGMrbMacroBrowser.h:99
 TGMrbMacroBrowser.h:100
 TGMrbMacroBrowser.h:101
 TGMrbMacroBrowser.h:102
 TGMrbMacroBrowser.h:103
 TGMrbMacroBrowser.h:104
 TGMrbMacroBrowser.h:105
 TGMrbMacroBrowser.h:106
 TGMrbMacroBrowser.h:107
 TGMrbMacroBrowser.h:108
 TGMrbMacroBrowser.h:109
 TGMrbMacroBrowser.h:110
 TGMrbMacroBrowser.h:111
 TGMrbMacroBrowser.h:112
 TGMrbMacroBrowser.h:113
 TGMrbMacroBrowser.h:114
 TGMrbMacroBrowser.h:115
 TGMrbMacroBrowser.h:116
 TGMrbMacroBrowser.h:117
 TGMrbMacroBrowser.h:118
 TGMrbMacroBrowser.h:119
 TGMrbMacroBrowser.h:120
 TGMrbMacroBrowser.h:121
 TGMrbMacroBrowser.h:122
 TGMrbMacroBrowser.h:123
 TGMrbMacroBrowser.h:124
 TGMrbMacroBrowser.h:125
 TGMrbMacroBrowser.h:126
 TGMrbMacroBrowser.h:127
 TGMrbMacroBrowser.h:128
 TGMrbMacroBrowser.h:129
 TGMrbMacroBrowser.h:130
 TGMrbMacroBrowser.h:131
 TGMrbMacroBrowser.h:132
 TGMrbMacroBrowser.h:133
 TGMrbMacroBrowser.h:134
 TGMrbMacroBrowser.h:135
 TGMrbMacroBrowser.h:136
 TGMrbMacroBrowser.h:137
 TGMrbMacroBrowser.h:138
 TGMrbMacroBrowser.h:139
 TGMrbMacroBrowser.h:140
 TGMrbMacroBrowser.h:141
 TGMrbMacroBrowser.h:142
 TGMrbMacroBrowser.h:143
 TGMrbMacroBrowser.h:144
 TGMrbMacroBrowser.h:145
 TGMrbMacroBrowser.h:146
 TGMrbMacroBrowser.h:147
 TGMrbMacroBrowser.h:148
 TGMrbMacroBrowser.h:149
 TGMrbMacroBrowser.h:150
 TGMrbMacroBrowser.h:151
 TGMrbMacroBrowser.h:152
 TGMrbMacroBrowser.h:153
 TGMrbMacroBrowser.h:154
 TGMrbMacroBrowser.h:155
 TGMrbMacroBrowser.h:156
 TGMrbMacroBrowser.h:157
 TGMrbMacroBrowser.h:158
 TGMrbMacroBrowser.h:159
 TGMrbMacroBrowser.h:160
 TGMrbMacroBrowser.h:161
 TGMrbMacroBrowser.h:162
 TGMrbMacroBrowser.h:163
 TGMrbMacroBrowser.h:164
 TGMrbMacroBrowser.h:165
 TGMrbMacroBrowser.h:166
 TGMrbMacroBrowser.h:167
 TGMrbMacroBrowser.h:168
 TGMrbMacroBrowser.h:169
 TGMrbMacroBrowser.h:170
 TGMrbMacroBrowser.h:171
 TGMrbMacroBrowser.h:172
 TGMrbMacroBrowser.h:173
 TGMrbMacroBrowser.h:174
 TGMrbMacroBrowser.h:175
 TGMrbMacroBrowser.h:176
 TGMrbMacroBrowser.h:177
 TGMrbMacroBrowser.h:178
 TGMrbMacroBrowser.h:179
 TGMrbMacroBrowser.h:180
 TGMrbMacroBrowser.h:181
 TGMrbMacroBrowser.h:182
 TGMrbMacroBrowser.h:183
 TGMrbMacroBrowser.h:184
 TGMrbMacroBrowser.h:185
 TGMrbMacroBrowser.h:186
 TGMrbMacroBrowser.h:187
 TGMrbMacroBrowser.h:188
 TGMrbMacroBrowser.h:189
 TGMrbMacroBrowser.h:190
 TGMrbMacroBrowser.h:191
 TGMrbMacroBrowser.h:192
 TGMrbMacroBrowser.h:193
 TGMrbMacroBrowser.h:194
 TGMrbMacroBrowser.h:195
 TGMrbMacroBrowser.h:196
 TGMrbMacroBrowser.h:197
 TGMrbMacroBrowser.h:198
 TGMrbMacroBrowser.h:199
 TGMrbMacroBrowser.h:200
 TGMrbMacroBrowser.h:201
 TGMrbMacroBrowser.h:202
 TGMrbMacroBrowser.h:203
 TGMrbMacroBrowser.h:204
 TGMrbMacroBrowser.h:205
 TGMrbMacroBrowser.h:206
 TGMrbMacroBrowser.h:207
 TGMrbMacroBrowser.h:208
 TGMrbMacroBrowser.h:209
 TGMrbMacroBrowser.h:210
 TGMrbMacroBrowser.h:211
 TGMrbMacroBrowser.h:212
 TGMrbMacroBrowser.h:213
 TGMrbMacroBrowser.h:214
 TGMrbMacroBrowser.h:215
 TGMrbMacroBrowser.h:216
 TGMrbMacroBrowser.h:217
 TGMrbMacroBrowser.h:218
 TGMrbMacroBrowser.h:219
 TGMrbMacroBrowser.h:220
 TGMrbMacroBrowser.h:221
 TGMrbMacroBrowser.h:222
 TGMrbMacroBrowser.h:223
 TGMrbMacroBrowser.h:224
 TGMrbMacroBrowser.h:225
 TGMrbMacroBrowser.h:226
 TGMrbMacroBrowser.h:227
 TGMrbMacroBrowser.h:228
 TGMrbMacroBrowser.h:229
 TGMrbMacroBrowser.h:230
 TGMrbMacroBrowser.h:231
 TGMrbMacroBrowser.h:232
 TGMrbMacroBrowser.h:233
 TGMrbMacroBrowser.h:234
 TGMrbMacroBrowser.h:235
 TGMrbMacroBrowser.h:236
 TGMrbMacroBrowser.h:237
 TGMrbMacroBrowser.h:238
 TGMrbMacroBrowser.h:239
 TGMrbMacroBrowser.h:240
 TGMrbMacroBrowser.h:241
 TGMrbMacroBrowser.h:242
 TGMrbMacroBrowser.h:243
 TGMrbMacroBrowser.h:244
 TGMrbMacroBrowser.h:245
 TGMrbMacroBrowser.h:246
 TGMrbMacroBrowser.h:247
 TGMrbMacroBrowser.h:248
 TGMrbMacroBrowser.h:249
 TGMrbMacroBrowser.h:250
 TGMrbMacroBrowser.h:251
 TGMrbMacroBrowser.h:252
 TGMrbMacroBrowser.h:253
 TGMrbMacroBrowser.h:254
 TGMrbMacroBrowser.h:255
 TGMrbMacroBrowser.h:256
 TGMrbMacroBrowser.h:257
 TGMrbMacroBrowser.h:258
 TGMrbMacroBrowser.h:259
 TGMrbMacroBrowser.h:260
 TGMrbMacroBrowser.h:261
 TGMrbMacroBrowser.h:262
 TGMrbMacroBrowser.h:263
 TGMrbMacroBrowser.h:264
 TGMrbMacroBrowser.h:265
 TGMrbMacroBrowser.h:266
 TGMrbMacroBrowser.h:267
 TGMrbMacroBrowser.h:268
 TGMrbMacroBrowser.h:269
 TGMrbMacroBrowser.h:270
 TGMrbMacroBrowser.h:271
 TGMrbMacroBrowser.h:272
 TGMrbMacroBrowser.h:273
 TGMrbMacroBrowser.h:274
 TGMrbMacroBrowser.h:275
 TGMrbMacroBrowser.h:276
 TGMrbMacroBrowser.h:277
 TGMrbMacroBrowser.h:278
 TGMrbMacroBrowser.h:279
 TGMrbMacroBrowser.h:280
 TGMrbMacroBrowser.h:281
 TGMrbMacroBrowser.h:282
 TGMrbMacroBrowser.h:283
 TGMrbMacroBrowser.h:284
 TGMrbMacroBrowser.h:285
 TGMrbMacroBrowser.h:286
 TGMrbMacroBrowser.h:287
 TGMrbMacroBrowser.h:288
 TGMrbMacroBrowser.h:289
 TGMrbMacroBrowser.h:290
 TGMrbMacroBrowser.h:291
 TGMrbMacroBrowser.h:292
 TGMrbMacroBrowser.h:293
 TGMrbMacroBrowser.h:294
 TGMrbMacroBrowser.h:295
 TGMrbMacroBrowser.h:296
 TGMrbMacroBrowser.h:297
 TGMrbMacroBrowser.h:298
 TGMrbMacroBrowser.h:299
 TGMrbMacroBrowser.h:300
 TGMrbMacroBrowser.h:301
 TGMrbMacroBrowser.h:302
 TGMrbMacroBrowser.h:303
 TGMrbMacroBrowser.h:304
 TGMrbMacroBrowser.h:305
 TGMrbMacroBrowser.h:306
 TGMrbMacroBrowser.h:307
 TGMrbMacroBrowser.h:308
 TGMrbMacroBrowser.h:309
 TGMrbMacroBrowser.h:310
 TGMrbMacroBrowser.h:311
 TGMrbMacroBrowser.h:312
 TGMrbMacroBrowser.h:313
 TGMrbMacroBrowser.h:314
 TGMrbMacroBrowser.h:315
 TGMrbMacroBrowser.h:316
 TGMrbMacroBrowser.h:317
 TGMrbMacroBrowser.h:318
 TGMrbMacroBrowser.h:319
 TGMrbMacroBrowser.h:320
 TGMrbMacroBrowser.h:321
 TGMrbMacroBrowser.h:322
 TGMrbMacroBrowser.h:323
 TGMrbMacroBrowser.h:324
 TGMrbMacroBrowser.h:325
 TGMrbMacroBrowser.h:326
 TGMrbMacroBrowser.h:327
 TGMrbMacroBrowser.h:328
 TGMrbMacroBrowser.h:329
 TGMrbMacroBrowser.h:330
 TGMrbMacroBrowser.h:331
 TGMrbMacroBrowser.h:332
 TGMrbMacroBrowser.h:333
 TGMrbMacroBrowser.h:334
 TGMrbMacroBrowser.h:335
 TGMrbMacroBrowser.h:336
 TGMrbMacroBrowser.h:337
 TGMrbMacroBrowser.h:338
 TGMrbMacroBrowser.h:339
 TGMrbMacroBrowser.h:340
 TGMrbMacroBrowser.h:341
 TGMrbMacroBrowser.h:342
 TGMrbMacroBrowser.h:343
 TGMrbMacroBrowser.h:344
 TGMrbMacroBrowser.h:345
 TGMrbMacroBrowser.h:346
 TGMrbMacroBrowser.h:347
 TGMrbMacroBrowser.h:348
 TGMrbMacroBrowser.h:349
 TGMrbMacroBrowser.h:350
 TGMrbMacroBrowser.h:351
 TGMrbMacroBrowser.h:352
 TGMrbMacroBrowser.h:353
 TGMrbMacroBrowser.h:354
 TGMrbMacroBrowser.h:355
 TGMrbMacroBrowser.h:356
 TGMrbMacroBrowser.h:357
 TGMrbMacroBrowser.h:358
 TGMrbMacroBrowser.h:359
 TGMrbMacroBrowser.h:360
 TGMrbMacroBrowser.h:361
 TGMrbMacroBrowser.h:362
 TGMrbMacroBrowser.h:363
 TGMrbMacroBrowser.h:364
 TGMrbMacroBrowser.h:365
 TGMrbMacroBrowser.h:366
 TGMrbMacroBrowser.h:367
 TGMrbMacroBrowser.h:368
 TGMrbMacroBrowser.h:369
 TGMrbMacroBrowser.h:370
 TGMrbMacroBrowser.h:371
 TGMrbMacroBrowser.h:372
 TGMrbMacroBrowser.h:373
 TGMrbMacroBrowser.h:374
 TGMrbMacroBrowser.h:375
 TGMrbMacroBrowser.h:376
 TGMrbMacroBrowser.h:377
 TGMrbMacroBrowser.h:378
 TGMrbMacroBrowser.h:379
 TGMrbMacroBrowser.h:380
 TGMrbMacroBrowser.h:381
 TGMrbMacroBrowser.h:382
 TGMrbMacroBrowser.h:383
 TGMrbMacroBrowser.h:384
 TGMrbMacroBrowser.h:385
 TGMrbMacroBrowser.h:386
 TGMrbMacroBrowser.h:387
 TGMrbMacroBrowser.h:388
 TGMrbMacroBrowser.h:389
 TGMrbMacroBrowser.h:390
 TGMrbMacroBrowser.h:391
 TGMrbMacroBrowser.h:392
 TGMrbMacroBrowser.h:393
 TGMrbMacroBrowser.h:394
 TGMrbMacroBrowser.h:395
 TGMrbMacroBrowser.h:396
 TGMrbMacroBrowser.h:397
 TGMrbMacroBrowser.h:398
 TGMrbMacroBrowser.h:399
 TGMrbMacroBrowser.h:400
 TGMrbMacroBrowser.h:401
 TGMrbMacroBrowser.h:402
 TGMrbMacroBrowser.h:403
 TGMrbMacroBrowser.h:404
 TGMrbMacroBrowser.h:405
 TGMrbMacroBrowser.h:406
 TGMrbMacroBrowser.h:407
 TGMrbMacroBrowser.h:408
 TGMrbMacroBrowser.h:409
 TGMrbMacroBrowser.h:410
 TGMrbMacroBrowser.h:411
 TGMrbMacroBrowser.h:412
 TGMrbMacroBrowser.h:413
 TGMrbMacroBrowser.h:414
 TGMrbMacroBrowser.h:415
 TGMrbMacroBrowser.h:416
 TGMrbMacroBrowser.h:417
 TGMrbMacroBrowser.h:418
 TGMrbMacroBrowser.h:419
 TGMrbMacroBrowser.h:420
 TGMrbMacroBrowser.h:421
 TGMrbMacroBrowser.h:422
 TGMrbMacroBrowser.h:423
 TGMrbMacroBrowser.h:424
 TGMrbMacroBrowser.h:425
 TGMrbMacroBrowser.h:426
 TGMrbMacroBrowser.h:427
 TGMrbMacroBrowser.h:428
 TGMrbMacroBrowser.h:429
 TGMrbMacroBrowser.h:430
 TGMrbMacroBrowser.h:431
 TGMrbMacroBrowser.h:432
 TGMrbMacroBrowser.h:433
 TGMrbMacroBrowser.h:434
 TGMrbMacroBrowser.h:435
 TGMrbMacroBrowser.h:436
 TGMrbMacroBrowser.h:437
 TGMrbMacroBrowser.h:438
 TGMrbMacroBrowser.h:439
 TGMrbMacroBrowser.h:440
 TGMrbMacroBrowser.h:441
 TGMrbMacroBrowser.h:442
 TGMrbMacroBrowser.h:443
 TGMrbMacroBrowser.h:444
 TGMrbMacroBrowser.h:445
 TGMrbMacroBrowser.h:446
 TGMrbMacroBrowser.h:447
 TGMrbMacroBrowser.h:448
 TGMrbMacroBrowser.h:449
 TGMrbMacroBrowser.h:450
 TGMrbMacroBrowser.h:451
 TGMrbMacroBrowser.h:452
 TGMrbMacroBrowser.h:453
 TGMrbMacroBrowser.h:454
 TGMrbMacroBrowser.h:455
 TGMrbMacroBrowser.h:456
 TGMrbMacroBrowser.h:457
 TGMrbMacroBrowser.h:458
 TGMrbMacroBrowser.h:459
 TGMrbMacroBrowser.h:460
 TGMrbMacroBrowser.h:461
 TGMrbMacroBrowser.h:462
 TGMrbMacroBrowser.h:463
 TGMrbMacroBrowser.h:464
 TGMrbMacroBrowser.h:465
 TGMrbMacroBrowser.h:466
 TGMrbMacroBrowser.h:467
 TGMrbMacroBrowser.h:468
 TGMrbMacroBrowser.h:469
 TGMrbMacroBrowser.h:470
 TGMrbMacroBrowser.h:471
 TGMrbMacroBrowser.h:472
 TGMrbMacroBrowser.h:473
 TGMrbMacroBrowser.h:474
 TGMrbMacroBrowser.h:475
 TGMrbMacroBrowser.h:476
 TGMrbMacroBrowser.h:477
 TGMrbMacroBrowser.h:478
 TGMrbMacroBrowser.h:479
 TGMrbMacroBrowser.h:480
 TGMrbMacroBrowser.h:481
 TGMrbMacroBrowser.h:482
 TGMrbMacroBrowser.h:483
 TGMrbMacroBrowser.h:484
 TGMrbMacroBrowser.h:485
 TGMrbMacroBrowser.h:486
 TGMrbMacroBrowser.h:487
 TGMrbMacroBrowser.h:488
 TGMrbMacroBrowser.h:489
 TGMrbMacroBrowser.h:490
 TGMrbMacroBrowser.h:491
 TGMrbMacroBrowser.h:492
 TGMrbMacroBrowser.h:493
 TGMrbMacroBrowser.h:494
 TGMrbMacroBrowser.h:495
 TGMrbMacroBrowser.h:496
 TGMrbMacroBrowser.h:497
 TGMrbMacroBrowser.h:498
 TGMrbMacroBrowser.h:499
 TGMrbMacroBrowser.h:500
 TGMrbMacroBrowser.h:501
 TGMrbMacroBrowser.h:502
 TGMrbMacroBrowser.h:503
 TGMrbMacroBrowser.h:504
 TGMrbMacroBrowser.h:505
 TGMrbMacroBrowser.h:506
 TGMrbMacroBrowser.h:507
 TGMrbMacroBrowser.h:508
 TGMrbMacroBrowser.h:509
 TGMrbMacroBrowser.h:510
 TGMrbMacroBrowser.h:511
 TGMrbMacroBrowser.h:512
 TGMrbMacroBrowser.h:513
 TGMrbMacroBrowser.h:514
 TGMrbMacroBrowser.h:515
 TGMrbMacroBrowser.h:516
 TGMrbMacroBrowser.h:517
 TGMrbMacroBrowser.h:518
 TGMrbMacroBrowser.h:519
 TGMrbMacroBrowser.h:520
 TGMrbMacroBrowser.h:521
 TGMrbMacroBrowser.h:522
 TGMrbMacroBrowser.h:523
 TGMrbMacroBrowser.h:524
 TGMrbMacroBrowser.h:525
 TGMrbMacroBrowser.h:526
 TGMrbMacroBrowser.h:527
 TGMrbMacroBrowser.h:528
 TGMrbMacroBrowser.h:529
 TGMrbMacroBrowser.h:530
 TGMrbMacroBrowser.h:531
 TGMrbMacroBrowser.h:532
 TGMrbMacroBrowser.h:533
 TGMrbMacroBrowser.h:534
 TGMrbMacroBrowser.h:535
 TGMrbMacroBrowser.h:536
 TGMrbMacroBrowser.h:537
 TGMrbMacroBrowser.h:538
 TGMrbMacroBrowser.h:539
 TGMrbMacroBrowser.h:540
 TGMrbMacroBrowser.h:541
 TGMrbMacroBrowser.h:542
 TGMrbMacroBrowser.h:543
 TGMrbMacroBrowser.h:544
 TGMrbMacroBrowser.h:545
 TGMrbMacroBrowser.h:546
 TGMrbMacroBrowser.h:547
 TGMrbMacroBrowser.h:548
 TGMrbMacroBrowser.h:549
 TGMrbMacroBrowser.h:550
 TGMrbMacroBrowser.h:551
 TGMrbMacroBrowser.h:552
 TGMrbMacroBrowser.h:553
 TGMrbMacroBrowser.h:554
 TGMrbMacroBrowser.h:555
 TGMrbMacroBrowser.h:556
 TGMrbMacroBrowser.h:557
 TGMrbMacroBrowser.h:558
 TGMrbMacroBrowser.h:559
 TGMrbMacroBrowser.h:560
 TGMrbMacroBrowser.h:561
 TGMrbMacroBrowser.h:562
 TGMrbMacroBrowser.h:563
 TGMrbMacroBrowser.h:564
 TGMrbMacroBrowser.h:565
 TGMrbMacroBrowser.h:566
 TGMrbMacroBrowser.h:567
 TGMrbMacroBrowser.h:568
 TGMrbMacroBrowser.h:569
 TGMrbMacroBrowser.h:570
 TGMrbMacroBrowser.h:571
 TGMrbMacroBrowser.h:572
 TGMrbMacroBrowser.h:573
 TGMrbMacroBrowser.h:574
 TGMrbMacroBrowser.h:575
 TGMrbMacroBrowser.h:576
 TGMrbMacroBrowser.h:577
 TGMrbMacroBrowser.h:578
 TGMrbMacroBrowser.h:579
 TGMrbMacroBrowser.h:580
 TGMrbMacroBrowser.h:581
 TGMrbMacroBrowser.h:582
 TGMrbMacroBrowser.h:583
 TGMrbMacroBrowser.h:584
 TGMrbMacroBrowser.h:585
 TGMrbMacroBrowser.h:586
 TGMrbMacroBrowser.h:587
 TGMrbMacroBrowser.h:588
 TGMrbMacroBrowser.h:589
 TGMrbMacroBrowser.h:590
 TGMrbMacroBrowser.h:591
 TGMrbMacroBrowser.h:592
 TGMrbMacroBrowser.h:593
 TGMrbMacroBrowser.h:594
 TGMrbMacroBrowser.h:595
 TGMrbMacroBrowser.h:596
 TGMrbMacroBrowser.h:597
 TGMrbMacroBrowser.h:598
 TGMrbMacroBrowser.h:599
 TGMrbMacroBrowser.h:600
 TGMrbMacroBrowser.h:601
 TGMrbMacroBrowser.h:602
 TGMrbMacroBrowser.h:603
 TGMrbMacroBrowser.h:604
 TGMrbMacroBrowser.h:605
 TGMrbMacroBrowser.h:606
 TGMrbMacroBrowser.h:607
 TGMrbMacroBrowser.h:608
 TGMrbMacroBrowser.h:609
 TGMrbMacroBrowser.h:610
 TGMrbMacroBrowser.h:611
 TGMrbMacroBrowser.h:612
 TGMrbMacroBrowser.h:613
 TGMrbMacroBrowser.h:614
 TGMrbMacroBrowser.h:615
 TGMrbMacroBrowser.h:616
 TGMrbMacroBrowser.h:617
 TGMrbMacroBrowser.h:618
 TGMrbMacroBrowser.h:619
 TGMrbMacroBrowser.h:620
 TGMrbMacroBrowser.h:621
 TGMrbMacroBrowser.h:622
 TGMrbMacroBrowser.h:623
 TGMrbMacroBrowser.h:624
 TGMrbMacroBrowser.h:625
 TGMrbMacroBrowser.h:626
 TGMrbMacroBrowser.h:627
 TGMrbMacroBrowser.h:628
 TGMrbMacroBrowser.h:629
 TGMrbMacroBrowser.h:630
 TGMrbMacroBrowser.h:631
 TGMrbMacroBrowser.h:632
 TGMrbMacroBrowser.h:633
 TGMrbMacroBrowser.h:634
 TGMrbMacroBrowser.h:635
 TGMrbMacroBrowser.h:636
 TGMrbMacroBrowser.h:637
 TGMrbMacroBrowser.h:638
 TGMrbMacroBrowser.h:639
 TGMrbMacroBrowser.h:640
 TGMrbMacroBrowser.h:641
 TGMrbMacroBrowser.h:642
 TGMrbMacroBrowser.h:643
 TGMrbMacroBrowser.h:644
 TGMrbMacroBrowser.h:645
 TGMrbMacroBrowser.h:646
 TGMrbMacroBrowser.h:647
 TGMrbMacroBrowser.h:648
 TGMrbMacroBrowser.h:649
 TGMrbMacroBrowser.h:650
 TGMrbMacroBrowser.h:651
 TGMrbMacroBrowser.h:652
 TGMrbMacroBrowser.h:653
 TGMrbMacroBrowser.h:654
 TGMrbMacroBrowser.h:655
 TGMrbMacroBrowser.h:656