59   const char* entry = 0;
 
   80      outfilename.
Remove(posExt, outfilename.
Length() - posExt);
 
  129      if (posAssign != 
kNPOS) {
 
  132         if (value[0] == 
'\'')
 
  134         else if (value[0] == 
'"')
 
  170   if (
line.Start() == -1) 
return;
 
  172   TPRegexp pretag(
"</?[pP][rR][eE][ >]");
 
  180      while (posPre != 
kNPOS && posPre > 0) {
 
  183         if (posClose ==
kNPOS) 
break; 
 
  184         Ssiz_t len = posClose - posPre;
 
  221   result = 
"</pre><!-- TDocHtmlDirective start -->";
 
  222   result += 
fText + 
"<!-- TDocHtmlDirective end --><pre>";
 
  260   Int_t sleepCycles = 50; 
 
  267      ::Error(
"TDocMacroDirective::HandleDirective_Macro",
 
  268              "Error processing macro for %s!", out.
Data());
 
  278      typeid(*objRet).name(); 
 
  279      objRet = 
dynamic_cast<const TObject*
>(objRet);
 
  290      ::Info(
"TDocMacroDirective::HandleDirective_Macro",
 
  291             "Saving returned %s to file %s.",
 
  294   if (!
gROOT->IsBatch()) {
 
  302   if (!
gROOT->IsBatch()) {
 
  310#ifdef R__BEPAEPSTLICHERALSDERPAPST 
  312   if (objRet != 
gPad && padSave == 
gPad) {
 
  357   while (filename.
Length() == 0)
 
  367   if (modulename.
Length()) {
 
  371   const char* pathDelimiter = 
":"; 
 
  381      osDir->
String() += filenameDirPart;
 
  382      macroPath += osDir->
String() + pathDelimiter;
 
  394      if (posOpen != 
kNPOS) {
 
  395         params = filename(posOpen, filename.
Length());
 
  402      Error(
"GetResult", 
"Cannot find macro '%s' in path '%s'!",
 
  406   fileSysName += params;
 
  407   fileSysName += plusplus;
 
  412      std::ifstream ifMacro(fileSysName);
 
  416         if (!
line.ReadLine(ifMacro, 
kFALSE) || ifMacro.eof())
 
  436      Warning(
"GetResult", 
"Empty directive found!");
 
  443      Info(
"HandleDirective_Macro", 
"executing macro \"%s\" with %d lines.",
 
  452         Warning(
"GetResult()", 
"Will not initialize the graphics system; skipping macro %s!", 
GetName());
 
  462      outFileName += 
".gif";
 
  472   TString invoc(
"root.exe -l -q ");
 
  476   invoc += 
"-e 'TDocMacroDirective::SubProcess(\"" 
  477      + subProcInputFile + 
"\",\"" + outFileName + 
"\");'";
 
  481   if (exitCode && 
gDebug > 0) {
 
  482      Info(
"GetResult()", 
"Subprocess exited with status %d\n", exitCode);
 
  490      result = 
"<span class=\"macro\"><img class=\"macro\" alt=\"output of ";
 
  491      result += outFileName;
 
  493      result += 
"\" title=\"MACRO\" src=\"";
 
  495      result += 
"\" /></span>";
 
  502      std::stringstream ssRaw;
 
  504         ssRaw << osLine->
String() << std::endl;
 
  510      std::stringstream ssConverted;
 
  516      while (!ssConverted.fail()) {
 
  517         if (!
line.ReadLine(ssConverted, 
kFALSE) || ssConverted.eof())
 
  523      id = 
id(0, 
id.Length()-4); 
 
  525      TString tags(
"</pre><div class=\"tabs\">\n" 
  526               "<a id=\"" + 
id + 
"_A0\" class=\"tabsel\" href=\"" + 
gSystem->
BaseName(outFileName) + 
"\" onclick=\"javascript:return SetDiv('" + 
id + 
"',0);\">Picture</a>\n" 
  527               "<a id=\"" + 
id + 
"_A1\" class=\"tab\" href=\"#\" onclick=\"javascript:return SetDiv('" + 
id + 
"',1);\">Source</a>\n" 
  528               "<br /></div><div class=\"tabcontent\">\n" 
  529               "<div id=\"" + 
id + 
"_0\" class=\"tabvisible\">" + result + 
"</div>\n" 
  530               "<div id=\"" + 
id + 
"_1\" class=\"tabhidden\"><div class=\"listing\"><pre class=\"code\">");
 
  535            tags += osLine->
String() + 
"\n";
 
  538      tags += 
"</pre></div></div><div class=\"clear\"></div></div><pre>";
 
  542      result.
ReplaceAll(
"<span class=\"comment\">", 
"<span class=\"codecomment\">");
 
  558   else Warning(
"AddParameter", 
"Unknown option %s!", 
name.Data());
 
  569      std::vector<Float_t> fWidths;
 
  575         fHeight(0.), fColumns(columns) { 
if (columns) fWidths.resize(
Size());}
 
  578      Float_t& Height() {
return fHeight;}
 
  585      void Delete() { 
delete fColumns; }
 
  623   if (
line.Length() == 0)
 
  659   const Float_t canvSize = 1200.;
 
  663         Form(
"new TCanvas(\"R__TDocLatexDirective_BBCanvas\",\"fBBCanvas\",%g,%g);", -(canvSize + 4.), canvSize + 28.));
 
  665      Error(
"CreateLatex", 
"Cannot create a TCanvas via the interpreter!");
 
  673   std::list<TLatexLine> latexLines;
 
  674   std::vector<Float_t> maxWidth(20);
 
  676   Float_t totalHeight = gLinePadding;
 
  703            split = regexp.
MatchS(str);
 
  717      latexLines.push_back(TLatexLine(split));
 
  725         TString* strCol = latexLines.back()[col];
 
  728         if (heightLine < heightLatex)   heightLine = heightLatex;
 
  729         if (maxWidth.size() < col)
 
  730            maxWidth.resize(col * 2);
 
  731         if (maxWidth[col] < widthLatex)
 
  732            maxWidth[col] = widthLatex;
 
  733         latexLines.back().Width(col) = widthLatex;
 
  735      latexLines.back().Height() = heightLine;
 
  736      totalHeight += heightLine + gLinePadding;
 
  739   std::vector<Float_t> posX(numColumns + 1);
 
  740   for (
UInt_t col = 0; col <= numColumns; ++col) {
 
  741      if (col == 0) posX[col] = gColumnPadding;
 
  742      else          posX[col] = posX[col - 1] + maxWidth[col - 1] + gColumnPadding;
 
  744   Float_t totalWidth = posX[numColumns];
 
  750   Float_t padSizeY = totalHeight + 8.;
 
  753      Form(
"new TCanvas(\"R__TDocLatexDirective_padImg\",\"padImg\",-(Int_t)%g,(Int_t)%g);",
 
  754           padSizeX + 4.5, padSizeY + 28.5));
 
  760   for (std::list<TLatexLine>::iterator iLine = latexLines.begin();
 
  761      iLine != latexLines.end(); ++iLine) {
 
  762      posY += iLine->Height()/2. + gLinePadding;
 
  763      for (
UInt_t iCol = 0; iCol < iLine->Size(); ++iCol) {
 
  772            case 'r': 
x += maxWidth[iCol] - iLine->Width(iCol); 
break;
 
  773            case 'c': 
x += 0.5*(maxWidth[iCol] - iLine->Width(iCol)); 
break;
 
  775               if (iLine == latexLines.begin())
 
  776                  Error(
"CreateLatex", 
"Invalid alignment character '%c'!", align);
 
  778         latex.
DrawLatex( 
x / padSizeX, 1. - posY / padSizeY, str->
Data());
 
  780      posY += iLine->Height()/2.;
 
  783   padImg->
Print(filename);
 
  786   for (std::list<TLatexLine>::iterator iLine = latexLines.begin();
 
  787      iLine != latexLines.end(); ++iLine) {
 
  834   TString latexFilename(firstLine);
 
  835   for (
Ssiz_t namepos = 0; namepos < latexFilename.
Length(); ++namepos)
 
  837         latexFilename.
Remove(namepos, 1);
 
  841   filename += latexFilename;
 
  849   result = 
"<span class=\"latex\"><img class=\"latex\" alt=\"";
 
  851   result += 
"\" title=\"LATEX\" src=\"";
 
  853   result += 
"\" /></span>";
 
  858      Info(
"HandleDirective_Latex", 
"Writing Latex \"%s\" to file %s.",
 
  872      if (!value || !value[0])
 
  873         Error(
"AddParameter", 
"Option \"fontsize\" needs a value!");
 
  876      if (!value || !value[0])
 
  877         Error(
"AddParameter", 
"Option \"separator\" needs a value!");
 
  880      if (!value || !value[0])
 
  881         Error(
"AddParameter", 
"Option \"align\" needs a value!");
 
  884      Warning(
"AddParameter", 
"Unknown option %s!", 
name.Data());
 
include TDocParser_001 C image html pict1_TDocParser_001 png width
 
char * Form(const char *fmt,...)
 
R__EXTERN TSystem * gSystem
 
#define R__LOCKGUARD(mutex)
 
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
 
virtual void SetTextAlign(Short_t align=11)
Set the text alignment.
 
virtual void SetTextFont(Font_t tfont=62)
Set the text font.
 
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
 
virtual Int_t GetEntries() const
 
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
 
virtual void AddParameter(const TString &, const char *=0)
 
TDocParser * GetDocParser() const
 
const char * GetName() const
Returns name of object.
 
virtual void DeleteOutputFiles(const char *ext) const
Delete all output generated by the directive beginning with Name() and ending with ext.
 
void SetParameters(const char *params)
Given a string containing parameters in params, we call AddParameter() for each of them.
 
TDocOutput * GetDocOutput() const
 
void SetParser(TDocParser *parser)
Set the parser, and fDocOutput, fHtml from that.
 
const char * GetOutputDir() const
Get the directory for documentation output.
 
virtual void AddLine(const TSubString &line)
Add a line of HTML.
 
virtual Bool_t GetResult(TString &result)
Set result to the HTML code that was passed in via AddLine().
 
virtual void CreateLatex(const char *filename)
Create a gif file named filename from a latex expression in fLatex.
 
virtual ~TDocLatexDirective()
Destructor.
 
virtual void AddLine(const TSubString &line)
Add a latex line.
 
TList * GetListOfLines() const
Get the list of lines as TObjStrings.
 
virtual Bool_t GetResult(TString &result)
convert fLatex to a gif by creating a TLatex, drawing it on a temporary canvas, and saving that to a ...
 
virtual void AddParameter(const TString &name, const char *value=0)
Parse fParameters, setting fFontSize, fAlignment, and fSeparator.
 
virtual void GetBoundingBox(TLatex &latex, const char *text, Float_t &width, Float_t &height)
Determines the bounding box for text as height and width.
 
virtual Bool_t GetResult(TString &result)
Get the result (i.e.
 
virtual void AddLine(const TSubString &line)
Add a macro line.
 
virtual ~TDocMacroDirective()
Destructor.
 
TString CreateSubprocessInputFile()
Create the input file for SubProcess().
 
virtual void AddParameter(const TString &name, const char *value=0)
Setting fNeedGraphics if name is "GUI", setting fShowSource if name is "SOURCE".
 
static void SubProcess(const TString &what, const TString &out)
 
virtual void NameSpace2FileName(TString &name)
Replace "::" in name by "__" Replace "<", ">", " ", ",", "~", "=" in name by "_" Replace "A::X<A::Y>"...
 
virtual const char * ReplaceSpecialChars(char c)
Replace ampersand, less-than and greater-than character, writing to out.
 
static Bool_t Strip(TString &s)
strips ' ', tabs, and newlines from both sides of str
 
void GetCurrentModule(TString &out_module) const
Return the name of module for which sources are currently parsed.
 
void Convert(std::ostream &out, std::istream &in, const char *relpath, Bool_t isCode, Bool_t interpretDirectives)
Parse text file "in", add links etc, and write output to "out".
 
TDocOutput * GetDocOutput() const
 
TClass * GetCurrentClass() const
 
void GetModuleMacroPath(const TString &module, TString &out_path) const
 
virtual void GetHtmlFileName(TClass *classPtr, TString &filename) const
Return real HTML filename.
 
virtual void GetModuleNameForClass(TString &module, TClass *cl) const
Return the module name for a given class.
 
const TString & GetOutputDir(Bool_t createDir=kTRUE) const
Return the output directory as set by SetOutputDir().
 
To draw Mathematical Formula.
 
void GetBoundingBox(UInt_t &w, UInt_t &h, Bool_t angle=kFALSE)
Return text size in pixels.
 
TLatex * DrawLatex(Double_t x, Double_t y, const char *text)
Make a copy of this object with the new parameters And copy object attributes.
 
virtual void Delete(Option_t *option="")
Remove all objects from the list AND delete all heap based objects.
 
virtual TObject * First() const
Return the first object in the list. Returns 0 when list is empty.
 
Class supporting a collection of lines with C++ code.
 
virtual TObjString * AddLine(const char *text)
Add line with text in the list of lines of this macro.
 
void SaveSource(FILE *fp)
Save macro source in file pointer fp.
 
TList * GetListOfLines() const
 
virtual const char * GetTitle() const
Returns title of object.
 
virtual const char * GetName() const
Returns name of object.
 
Int_t GetEntriesFast() const
 
Int_t GetEntries() const
Return the number of objects in array (i.e.
 
TObject * At(Int_t idx) const
 
Collectable string class.
 
Mother of all ROOT objects.
 
virtual const char * GetName() const
Returns name of object.
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
virtual void SaveAs(const char *filename="", Option_t *option="") const
Save this object in the file specified by filename.
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
virtual void Info(const char *method, const char *msgfmt,...) const
Issue info message.
 
TObjArray * MatchS(const TString &s, const TString &mods="", Int_t start=0, Int_t nMaxMatch=10)
Returns a TObjArray of matched substrings as TObjString's.
 
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
 
TSubString Strip(EStripType s=kTrailing, char c=' ') const
Return a substring of self stripped at beginning and/or end.
 
const char * Data() const
 
TString & ReplaceAll(const TString &s1, const TString &s2)
 
Ssiz_t Last(char c) const
Find last occurrence of a character c.
 
TObjArray * Tokenize(const TString &delim) const
This function is used to isolate sequential tokens in a TString.
 
Bool_t BeginsWith(const char *s, ECaseCompare cmp=kExact) const
 
TString & Prepend(const char *cs)
 
TString & Remove(Ssiz_t pos)
 
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
 
Ssiz_t Index(const char *pat, Ssiz_t i=0, ECaseCompare cmp=kExact) const
 
A zero length substring is legal.
 
virtual const char * DirName(const char *pathname)
Return the directory name in pathname.
 
virtual void FreeDirectory(void *dirp)
Free a directory.
 
virtual void * OpenDirectory(const char *name)
Open a directory. Returns 0 if directory does not exist.
 
virtual const char * FindFile(const char *search, TString &file, EAccessMode mode=kFileExists)
Find location of file in a search path.
 
virtual Int_t Exec(const char *shellcmd)
Execute a command.
 
virtual const char * PrependPathName(const char *dir, TString &name)
Concatenate a directory and a file name.
 
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
Returns FALSE if one can access a file using the specified access mode.
 
virtual const char * GetDirEntry(void *dirp)
Get a directory entry. Returns 0 if no more entries.
 
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
 
virtual void Sleep(UInt_t milliSec)
Sleep milliSec milli seconds.
 
virtual Bool_t ProcessEvents()
Process pending events (GUI, timers, sockets).
 
virtual int Unlink(const char *name)
Unlink, i.e.
 
virtual const char * TempDirectory() const
Return a user configured or systemwide directory to create temporary files in.
 
virtual void SetText(Double_t x, Double_t y, const char *text)
 
TVirtualPad is an abstract base class for the Pad and Canvas classes.
 
virtual TVirtualPad * cd(Int_t subpadnumber=0)=0
 
virtual void Print(const char *filename="") const =0
Print function.
 
virtual void SetBorderMode(Short_t bordermode)=0
 
virtual void Clear(Option_t *option="")=0