60   const char* entry = 0;
 
   81      outfilename.
Remove(posExt, outfilename.
Length() - posExt);
 
  130      if (posAssign != 
kNPOS) {
 
  133         if (
value[0] == 
'\'')
 
  135         else if (
value[0] == 
'"')
 
  171   if (
line.Start() == -1) 
return;
 
  173   TPRegexp pretag(
"</?[pP][rR][eE][ >]");
 
  181      while (posPre != 
kNPOS && posPre > 0) {
 
  184         if (posClose ==
kNPOS) 
break; 
 
  222   result = 
"</pre><!-- TDocHtmlDirective start -->";
 
  223   result += 
fText + 
"<!-- TDocHtmlDirective end --><pre>";
 
  261   Int_t sleepCycles = 50; 
 
  268      ::Error(
"TDocMacroDirective::HandleDirective_Macro",
 
  269              "Error processing macro for %s!", out.Data());
 
  279      typeid(*objRet).name(); 
 
  280      objRet = 
dynamic_cast<const TObject*
>(objRet);
 
  291      ::Info(
"TDocMacroDirective::HandleDirective_Macro",
 
  292             "Saving returned %s to file %s.",
 
  295   if (!
gROOT->IsBatch()) {
 
  303   if (!
gROOT->IsBatch()) {
 
  311#ifdef R__BEPAEPSTLICHERALSDERPAPST 
  313   if (objRet != 
gPad && padSave == 
gPad) {
 
  368   if (modulename.
Length()) {
 
  372   const char* pathDelimiter = 
":"; 
 
  382      osDir->
String() += filenameDirPart;
 
  383      macroPath += osDir->
String() + pathDelimiter;
 
  395      if (posOpen != 
kNPOS) {
 
  403      Error(
"GetResult", 
"Cannot find macro '%s' in path '%s'!",
 
  407   fileSysName += params;
 
  408   fileSysName += plusplus;
 
  413      std::ifstream ifMacro(fileSysName);
 
  417         if (!
line.ReadLine(ifMacro, 
kFALSE) || ifMacro.eof())
 
  437      Warning(
"GetResult", 
"Empty directive found!");
 
  444      Info(
"HandleDirective_Macro", 
"executing macro \"%s\" with %d lines.",
 
  453         Warning(
"GetResult()", 
"Will not initialize the graphics system; skipping macro %s!", 
GetName());
 
  463      outFileName += 
".gif";
 
  473   TString invoc(
"root.exe -l -q ");
 
  477   invoc += 
"-e 'TDocMacroDirective::SubProcess(\"" 
  478      + subProcInputFile + 
"\",\"" + outFileName + 
"\");'";
 
  482   if (exitCode && 
gDebug > 0) {
 
  483      Info(
"GetResult()", 
"Subprocess exited with status %d\n", exitCode);
 
  491      result = 
"<span class=\"macro\"><img class=\"macro\" alt=\"output of ";
 
  494      result += 
"\" title=\"MACRO\" src=\"";
 
  503      std::stringstream ssRaw;
 
  505         ssRaw << osLine->
String() << std::endl;
 
  511      std::stringstream ssConverted;
 
  517      while (!ssConverted.fail()) {
 
  518         if (!
line.ReadLine(ssConverted, 
kFALSE) || ssConverted.eof())
 
  524      id = 
id(0, 
id.Length()-4); 
 
  526      TString tags(
"</pre><div class=\"tabs\">\n" 
  527               "<a id=\"" + 
id + 
"_A0\" class=\"tabsel\" href=\"" + 
gSystem->
BaseName(outFileName) + 
"\" onclick=\"javascript:return SetDiv('" + 
id + 
"',0);\">Picture</a>\n" 
  528               "<a id=\"" + 
id + 
"_A1\" class=\"tab\" href=\"#\" onclick=\"javascript:return SetDiv('" + 
id + 
"',1);\">Source</a>\n" 
  529               "<br /></div><div class=\"tabcontent\">\n" 
  530               "<div id=\"" + 
id + 
"_0\" class=\"tabvisible\">" + 
result + 
"</div>\n" 
  531               "<div id=\"" + 
id + 
"_1\" class=\"tabhidden\"><div class=\"listing\"><pre class=\"code\">");
 
  536            tags += osLine->
String() + 
"\n";
 
  539      tags += 
"</pre></div></div><div class=\"clear\"></div></div><pre>";
 
  543      result.ReplaceAll(
"<span class=\"comment\">", 
"<span class=\"codecomment\">");
 
  559   else Warning(
"AddParameter", 
"Unknown option %s!", 
name.Data());
 
  570      std::vector<Float_t> fWidths;
 
  576         fHeight(0.), fColumns(columns) { 
if (columns) fWidths.resize(Size());}
 
  579      Float_t& Height() {
return fHeight;}
 
  586      void Delete() { 
delete fColumns; }
 
  624   if (
line.Length() == 0)
 
  660   const Float_t canvSize = 1200.;
 
  664         Form(
"new TCanvas(\"R__TDocLatexDirective_BBCanvas\",\"fBBCanvas\",%g,%g);", -(canvSize + 4.), canvSize + 28.));
 
  666      Error(
"CreateLatex", 
"Cannot create a TCanvas via the interpreter!");
 
  674   std::list<TLatexLine> latexLines;
 
  675   std::vector<Float_t> maxWidth(20);
 
  677   Float_t totalHeight = gLinePadding;
 
  705            split = regexp.
MatchS(str);
 
  719      latexLines.push_back(TLatexLine(split));
 
  727         TString* strCol = latexLines.back()[col];
 
  730         if (heightLine < heightLatex)   heightLine = heightLatex;
 
  731         if (maxWidth.size() < col)
 
  732            maxWidth.resize(col * 2);
 
  733         if (maxWidth[col] < widthLatex)
 
  734            maxWidth[col] = widthLatex;
 
  735         latexLines.back().Width(col) = widthLatex;
 
  737      latexLines.back().Height() = heightLine;
 
  738      totalHeight += heightLine + gLinePadding;
 
  741   std::vector<Float_t> posX(numColumns + 1);
 
  742   for (
UInt_t col = 0; col <= numColumns; ++col) {
 
  743      if (col == 0) posX[col] = gColumnPadding;
 
  744      else          posX[col] = posX[col - 1] + maxWidth[col - 1] + gColumnPadding;
 
  746   Float_t totalWidth = posX[numColumns];
 
  752   Float_t padSizeY = totalHeight + 8.;
 
  755      Form(
"new TCanvas(\"R__TDocLatexDirective_padImg\",\"padImg\",-(Int_t)%g,(Int_t)%g);",
 
  756           padSizeX + 4.5, padSizeY + 28.5));
 
  762   for (std::list<TLatexLine>::iterator iLine = latexLines.begin();
 
  763      iLine != latexLines.end(); ++iLine) {
 
  764      posY += iLine->Height()/2. + gLinePadding;
 
  765      for (
UInt_t iCol = 0; iCol < iLine->Size(); ++iCol) {
 
  774            case 'r': 
x += maxWidth[iCol] - iLine->Width(iCol); 
break;
 
  775            case 'c': 
x += 0.5*(maxWidth[iCol] - iLine->Width(iCol)); 
break;
 
  777               if (iLine == latexLines.begin())
 
  778                  Error(
"CreateLatex", 
"Invalid alignment character '%c'!", align);
 
  780         latex.
DrawLatex( 
x / padSizeX, 1. - posY / padSizeY, str->
Data());
 
  782      posY += iLine->Height()/2.;
 
  788   for (std::list<TLatexLine>::iterator iLine = latexLines.begin();
 
  789      iLine != latexLines.end(); ++iLine) {
 
  836   TString latexFilename(firstLine);
 
  837   for (
Ssiz_t namepos = 0; namepos < latexFilename.
Length(); ++namepos)
 
  839         latexFilename.
Remove(namepos, 1);
 
  851   result = 
"<span class=\"latex\"><img class=\"latex\" alt=\"";
 
  853   result += 
"\" title=\"LATEX\" src=\"";
 
  860      Info(
"HandleDirective_Latex", 
"Writing Latex \"%s\" to file %s.",
 
  875         Error(
"AddParameter", 
"Option \"fontsize\" needs a value!");
 
  879         Error(
"AddParameter", 
"Option \"separator\" needs a value!");
 
  883         Error(
"AddParameter", 
"Option \"align\" needs a value!");
 
  886      Warning(
"AddParameter", 
"Unknown option %s!", 
name.Data());
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t height
Option_t Option_t TPoint TPoint const char text
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
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
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 * GetName() const override
Returns name of object.
const char * GetOutputDir() const
Get the directory for documentation output.
Bool_t GetResult(TString &result) override
Set result to the HTML code that was passed in via AddLine().
void AddLine(const TSubString &line) override
Add a line of HTML.
virtual void CreateLatex(const char *filename)
Create a gif file named filename from a latex expression in fLatex.
Bool_t GetResult(TString &result) override
convert fLatex to a gif by creating a TLatex, drawing it on a temporary canvas, and saving that to a ...
void AddParameter(const TString &name, const char *value=0) override
Parse fParameters, setting fFontSize, fAlignment, and fSeparator.
void AddLine(const TSubString &line) override
Add a latex line.
TList * GetListOfLines() const
Get the list of lines as TObjStrings.
virtual void GetBoundingBox(TLatex &latex, const char *text, Float_t &width, Float_t &height)
Determines the bounding box for text as height and width.
~TDocLatexDirective() override
Destructor.
~TDocMacroDirective() override
Destructor.
TString CreateSubprocessInputFile()
Create the input file for SubProcess().
static void SubProcess(const TString &what, const TString &out)
void AddLine(const TSubString &line) override
Add a macro line.
void AddParameter(const TString &name, const char *value=0) override
Setting fNeedGraphics if name is "GUI", setting fShowSource if name is "SOURCE".
Bool_t GetResult(TString &result) override
Get the result (i.e.
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) override
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.
TObject * First() const override
Return the first object in the list. Returns 0 when list is empty.
void Delete(Option_t *option="") override
Remove all objects from the list AND delete all heap based objects.
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
const char * GetName() const override
Returns name of object.
const char * GetTitle() const override
Returns title of object.
Int_t GetEntriesFast() const
Int_t GetEntries() const override
Return the number of objects in array (i.e.
TObject * At(Int_t idx) const override
void Add(TObject *obj) override
Collectable string class.
Mother of all ROOT objects.
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 TClass * IsA() const
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 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 TString GetDirName(const char *pathname)
Return the directory name in pathname.
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 void SetBatch(Bool_t batch=kTRUE)=0
void Print(const char *filename="") const override=0
This method must be overridden when a class wants to print itself.
virtual TVirtualPad * cd(Int_t subpadnumber=0)=0
virtual void SetBorderMode(Short_t bordermode)=0
void Clear(Option_t *option="") override=0