Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TMacro.h
Go to the documentation of this file.
1 // @(#)root/base:$Id$
2 // Author: Rene Brun 16/08/2005
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2005, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TMacro
13 #define ROOT_TMacro
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TMacro //
18 // //
19 // Class supporting a collection of lines with C++ code. //
20 // A TMacro can be executed, saved to a ROOT file, edited, etc. //
21 // //
22 //////////////////////////////////////////////////////////////////////////
23 
24 #include "TNamed.h"
25 
26 class TList;
27 class TObjString;
28 class TMD5;
29 
30 
31 class TMacro : public TNamed {
32 
33 protected:
34  TList *fLines; //collection of lines
35  TString fParams; //default string of macro parameters
36 
37  void SaveSource(FILE *fp);
38 
39 public:
40  TMacro();
41  TMacro(const TMacro&);
42  TMacro(const char *name, const char *title="");
43  virtual ~TMacro();
44  TMacro& operator=(const TMacro&);
45  virtual TObjString *AddLine(const char *text);
46  virtual void Browse(TBrowser *b);
47  virtual TMD5 *Checksum();
48  virtual TObjString *GetLineWith(const char *text) const;
49  virtual Bool_t Load() const; //*MENU*
50  virtual Long_t Exec(const char *params = 0, Int_t* error = 0); //*MENU*
51  TList *GetListOfLines() const {return fLines;}
52  virtual void Paint(Option_t *option="");
53  virtual void Print(Option_t *option="") const; //*MENU*
54  virtual Int_t ReadFile(const char *filename);
55  virtual void SaveSource(const char *filename); //*MENU*
56  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
57  virtual void SetParams(const char *params=0); //*MENU*
58 
59  ClassDef(TMacro,1) // Class supporting a collection of lines with C++ code.
60 };
61 
62 #endif