#ifndef __TMrbLofMacros_h__
#define __TMrbLofMacros_h__
#include "Rtypes.h"
#include "TString.h"
#include "TSystem.h"
#include "TObjArray.h"
#include "TMrbNamedX.h"
#include "TMrbLofNamedX.h"
class TMrbLofMacros: public TMrbLofNamedX {
public:
enum EMrbMacroEnvNames { kMrbMacroName,
kMrbMacroTitle,
kMrbMacroAuthor,
kMrbMacroKeyWords,
kMrbMacroPath,
kMrbMacroWidth,
kMrbMacroAclic,
kMrbMacroModify,
kMrbMacroGuiPtrMode,
kMrbMacroUserStart,
kMrbMacroRcFile,
kMrbMacroNofArgs,
kMrbMacroArgName,
kMrbMacroArgTitle,
kMrbMacroArgType,
kMrbMacroArgEntryType,
kMrbMacroArgNofEntryFields,
kMrbMacroArgEntryWidth,
kMrbMacroArgDefaultValue,
kMrbMacroArgValues,
kMrbMacroArgAddLofValues,
kMrbMacroArgLowerLimit,
kMrbMacroArgUpperLimit,
kMrbMacroArgIncrement,
kMrbMacroArgBase,
kMrbMacroArgPrecision,
kMrbMacroArgOrientation,
kMrbMacroArgNofCL,
kMrbMacroArgExecFunct,
kMrbMacroArgState
};
public:
TMrbLofMacros();
TMrbLofMacros(const Char_t * Path);
~TMrbLofMacros() { this->Delete(); };
inline void SetPath(const Char_t * Path) { fPath = Path; gSystem->ExpandPathName(fPath); };
inline const Char_t * GetPath() const { return(fPath); };
Bool_t AddMacro(const Char_t * MacroName, const Char_t * KeyWords = NULL);
Bool_t AskForArgs(const Char_t * ) const {return kTRUE;};
inline TMrbNamedX * FirstMacro() const { return((TMrbNamedX *) First()); };
inline TMrbNamedX * NextMacro(TMrbNamedX * LastL) const { return((TMrbNamedX *) After(LastL)); };
inline TMrbLofNamedX * GetLofEnvNames() { return(&fLofEnvNames); };
Bool_t CheckEnvName(const Char_t * EnvName, Bool_t IsArgEnv = kTRUE) const;
inline TObjArray * GetLofFilePatterns() { return(&fLofFilePatterns); };
void PrintMacro(const Char_t * MacroName = "") const ;
inline void Help() { gSystem->Exec(Form("mrbHelp %s", this->ClassName())); };
protected:
TMrbNamedX * ProcessMacro(const Char_t * MacroPath, const Char_t * MdefPath = NULL, Bool_t TestFormat = kTRUE);
Bool_t CheckMacro(TMrbNamedX * Macro) const;
Bool_t CheckKey(TMrbNamedX * Macro, const Char_t * Key) const;
protected:
TString fPath;
TObjArray fLofFilePatterns;
TMrbLofNamedX fLofEnvNames;
ClassDef(TMrbLofMacros, 1)
};
#endif