12 #ifndef ROOT_TDocDirective
13 #define ROOT_TDocDirective
34 class TDocDirective:
public TNamed {
36 TDocParser* fDocParser;
38 TDocOutput* fDocOutput;
42 virtual void AddParameter(
const TString& ,
const char* = 0) {}
45 TDocDirective(
const char* name):
46 TNamed(name,
""), fDocParser(0), fHtml(0), fDocOutput(0), fCounter(-1) {};
47 virtual ~TDocDirective() {}
49 const char* GetName()
const {
return TNamed::GetName(); }
50 void GetName(TString& name)
const;
51 TDocParser* GetDocParser()
const {
return fDocParser; }
52 TDocOutput* GetDocOutput()
const {
return fDocOutput; }
53 THtml* GetHtml()
const {
return fHtml; }
54 const char* GetOutputDir()
const;
56 void SetParser(TDocParser* parser);
57 void SetParameters(
const char* params);
58 void SetTag(
const char* tag) { SetTitle(tag); }
59 void SetCounter(Int_t count) { fCounter = count; }
60 virtual void DeleteOutputFiles(
const char* ext)
const;
64 virtual const char* GetEndTag()
const = 0;
67 virtual void AddLine(
const TSubString& line) = 0;
70 virtual Bool_t GetResult(TString& result) = 0;
73 virtual void DeleteOutput()
const {}
75 friend class TDocParser;
77 ClassDef(TDocDirective, 0);
80 class TDocHtmlDirective:
public TDocDirective {
85 TDocHtmlDirective(): TDocDirective(
"HTML"), fVerbatim(kFALSE) {}
86 virtual ~TDocHtmlDirective() {}
88 virtual void AddLine(
const TSubString& line);
89 virtual const char* GetEndTag()
const {
return "end_html"; }
90 virtual Bool_t GetResult(TString& result);
92 ClassDef(TDocHtmlDirective, 0);
95 class TDocMacroDirective:
public TDocDirective {
102 virtual void AddParameter(
const TString& name,
const char* value = 0);
103 TString CreateSubprocessInputFile();
106 TDocMacroDirective():
107 TDocDirective(
"MACRO"), fMacro(0), fNeedGraphics(kFALSE),
108 fShowSource(kFALSE), fIsFilename(kTRUE) {};
109 virtual ~TDocMacroDirective();
111 virtual void AddLine(
const TSubString& line);
112 virtual const char* GetEndTag()
const {
return "end_macro"; }
113 virtual Bool_t GetResult(TString& result);
115 virtual void DeleteOutput()
const { DeleteOutputFiles(
".gif"); }
117 static void SubProcess(
const TString& what,
const TString& out);
119 ClassDef(TDocMacroDirective, 0);
122 class TDocLatexDirective:
public TDocDirective {
129 TVirtualPad* fBBCanvas;
131 virtual void CreateLatex(
const char* filename);
132 virtual void AddParameter(
const TString& name,
const char* value = 0);
133 virtual void GetBoundingBox(TLatex& latex,
const char* text, Float_t& width, Float_t& height);
136 TDocLatexDirective():
137 TDocDirective(
"LATEX"), fLatex(0), fFontSize(16),
138 fSepIsRegexp(kFALSE), fBBCanvas(0) {};
139 virtual ~TDocLatexDirective();
141 virtual void AddLine(
const TSubString& line);
142 virtual const char* GetEndTag()
const {
return "end_latex";}
144 const char* GetAlignment()
const {
return fAlignment;}
145 const char* GetSeparator()
const {
return fSeparator;}
146 Bool_t SeparatorIsRegexp()
const {
return fSepIsRegexp;}
147 Int_t GetFontSize()
const {
return fFontSize;}
148 TList* GetListOfLines()
const;
150 virtual Bool_t GetResult(TString& result);
152 virtual void DeleteOutput()
const { DeleteOutputFiles(
".gif"); }
154 ClassDef(TDocLatexDirective, 0);
157 #endif // ROOT_TDocDirective