Logo ROOT   6.12/07
Reference Guide
TDocOutput.h
Go to the documentation of this file.
1 // @(#)root/html:$Id$
2 // Author: Axel Naumann 2007-01-09
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2007, 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_TDocOutput
13 #define ROOT_TDocOutput
14 
15 
16 ////////////////////////////////////////////////////////////////////////////
17 // //
18 // ROOT_TDocOutput //
19 // //
20 // Generates documentation output using XHTML 1.0 transitional //
21 // //
22 ////////////////////////////////////////////////////////////////////////////
23 
24 #include "TObject.h"
25 #include "TDocParser.h"
26 
27 class TClass;
28 class TDataMember;
29 class TDataType;
30 class TGClient;
31 class THtml;
32 class TModuleDocInfo;
33 class TString;
34 class TSubString;
35 class TVirtualPad;
36 
37 class TDocOutput: public TObject {
38 protected:
44  };
45 
46  THtml* fHtml; // THtml object we belong to
47 
48  int CaseInsensitiveSort(const void *name1, const void *name2);
49  void AddLink(TSubString& str, TString& link, const char* comment);
50  void ProcessDocInDir(std::ostream& out, const char* indir, const char* outdir, const char* linkdir);
51  Bool_t RunDot(const char* filename, std::ostream* outMap = 0, EGraphvizTool gvwhat = kDot);
52  void WriteHtmlHeader(std::ostream& out, const char *titleNoSpecial,
53  const char* dir /*=""*/, TClass *cls /*=0*/,
54  const char* header);
55  void WriteHtmlFooter(std::ostream& out, const char *dir,
56  const char *lastUpdate, const char *author,
57  const char *copyright, const char* footer);
58  virtual void WriteSearch(std::ostream& out);
59  void WriteLocation(std::ostream& out, TModuleDocInfo* module, const char* classname = 0);
60  void WriteModuleLinks(std::ostream& out);
61  void WriteModuleLinks(std::ostream& out, TModuleDocInfo* super);
62  void WriteTopLinks(std::ostream& out, TModuleDocInfo* module, const char* classname = 0, Bool_t withLocation = kTRUE);
63 
64 public:
66 
67  TDocOutput(THtml& html);
68  virtual ~TDocOutput();
69 
70  virtual void AdjustSourcePath(TString& line, const char* relpath = "../");
71  void Convert(std::istream& in, const char* infilename,
72  const char* outfilename, const char *title,
73  const char *relpath = "../",
74  Int_t includeOutput = 0,
75  const char* context = "",
76  TGClient* gclient = 0);
77  Bool_t CopyHtmlFile(const char *sourceName, const char *destName="");
78 
79  virtual void CreateClassIndex();
80  virtual void CreateModuleIndex();
81  virtual void CreateProductIndex();
82  virtual void CreateTypeIndex();
83  virtual void CreateClassTypeDefs();
84  virtual void CreateHierarchy();
85 
87  virtual void DecorateEntityEnd(TString& str, Ssiz_t& pos, TDocParser::EParseContext type);
88  virtual void FixupAuthorSourceInfo(TString& authors);
89  const char* GetExtension() const { return ".html"; }
90  THtml* GetHtml() { return fHtml; }
91  virtual Bool_t IsModified(TClass *classPtr, EFileType type);
92  virtual void NameSpace2FileName(TString &name);
93 
94  virtual void ReferenceEntity(TSubString& str, TClass* entity, const char* comment = 0);
95  virtual void ReferenceEntity(TSubString& str, TDataMember* entity, const char* comment = 0);
96  virtual void ReferenceEntity(TSubString& str, TDataType* entity, const char* comment = 0);
97  virtual void ReferenceEntity(TSubString& str, TMethod* entity, const char* comment = 0);
98  virtual Bool_t ReferenceIsRelative(const char* reference) const;
99 
100  virtual const char* ReplaceSpecialChars(char c);
101  void ReplaceSpecialChars(std::ostream &out, const char *string);
103  void ReplaceSpecialChars(TString& text, Ssiz_t &pos);
104 
105  virtual void WriteHtmlHeader(std::ostream &out, const char *title, const char* dir="", TClass *cls=0);
106  virtual void WriteHtmlFooter(std::ostream &out, const char *dir="", const char *lastUpdate="",
107  const char *author="", const char *copyright="");
108  void WriteLineNumbers(std::ostream& out, Long_t nLines, const TString& infileBase) const;
109 
110  ClassDef(TDocOutput, 0); // generates documentation web pages
111 };
112 
113 #endif // ROOT_TDocOutput
A zero length substring is legal.
Definition: TString.h:71
TDocOutput(THtml &html)
Definition: TDocOutput.cxx:256
void WriteLineNumbers(std::ostream &out, Long_t nLines, const TString &infileBase) const
Create a div containing the line numbers (for a source listing) 1 to nLines.
virtual void CreateProductIndex()
Fetch documentation from THtml::GetProductDocDir() and put it into the product index page...
virtual void CreateTypeIndex()
Create index of all data types.
TLine * line
All ROOT classes may have RTTI (run time type identification) support added.
Definition: TDataMember.h:31
Basic string class.
Definition: TString.h:125
virtual void CreateModuleIndex()
Create the class index for each module, picking up documentation from the module's TModuleDocInfo::Ge...
Definition: TDocOutput.cxx:801
virtual Bool_t ReferenceIsRelative(const char *reference) const
Check whether reference is a relative reference, and can (or should) be prependen by relative paths...
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
void ProcessDocInDir(std::ostream &out, const char *indir, const char *outdir, const char *linkdir)
Write links to files indir/*.txt, indir/*.html (non-recursive) to out.
Bool_t CopyHtmlFile(const char *sourceName, const char *destName="")
Copy file to HTML directory.
Definition: TDocOutput.cxx:593
void WriteModuleLinks(std::ostream &out)
Create a div containing links to all topmost modules.
virtual void DecorateEntityBegin(TString &str, Ssiz_t &pos, TDocParser::EParseContext type)
Add some colors etc to a source entity, contained in str.
virtual void DecorateEntityEnd(TString &str, Ssiz_t &pos, TDocParser::EParseContext type)
Add some colors etc to a source entity, contained in str.
#define ClassDef(name, id)
Definition: Rtypes.h:320
virtual void CreateHierarchy()
Create a hierarchical class list The algorithm descends from the base classes and branches into all d...
Definition: TDocOutput.cxx:640
void WriteHtmlFooter(std::ostream &out, const char *dir, const char *lastUpdate, const char *author, const char *copyright, const char *footer)
Write HTML footer.
void WriteLocation(std::ostream &out, TModuleDocInfo *module, const char *classname=0)
make a link to the description
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Definition: TVirtualPad.h:49
virtual void AdjustSourcePath(TString &line, const char *relpath="../")
adjust the path of links for source files, which are in src/, but need to point to relpath (usually "...
Definition: TDocOutput.cxx:297
virtual void ReferenceEntity(TSubString &str, TClass *entity, const char *comment=0)
Create a reference to a class documentation page.
Basic data type descriptor (datatype information is obtained from CINT).
Definition: TDataType.h:44
virtual const char * ReplaceSpecialChars(char c)
Replace ampersand, less-than and greater-than character, writing to out.
virtual void NameSpace2FileName(TString &name)
Replace "::" in name by "__" Replace "<", ">", " ", ",", "~", "=" in name by "_" Replace "A::X<A::Y>"...
virtual void CreateClassTypeDefs()
Create a forwarding page for each typedef pointing to a class.
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:75
THtml * fHtml
Definition: TDocOutput.h:46
virtual void WriteSearch(std::ostream &out)
Write a search link or a search box, based on THtml::GetSearchStemURL() and THtml::GetSearchEngine()...
virtual ~TDocOutput()
Definition: TDocOutput.cxx:261
void WriteHtmlHeader(std::ostream &out, const char *titleNoSpecial, const char *dir, TClass *cls, const char *header)
Write HTML header.
virtual Bool_t IsModified(TClass *classPtr, EFileType type)
Check if file is modified.
virtual void FixupAuthorSourceInfo(TString &authors)
Special author treatment; called when TDocParser::fSourceInfo[kInfoAuthor] is set.
long Long_t
Definition: RtypesCore.h:50
int Ssiz_t
Definition: RtypesCore.h:63
const char * GetExtension() const
Definition: TDocOutput.h:89
void Convert(std::istream &in, const char *infilename, const char *outfilename, const char *title, const char *relpath="../", Int_t includeOutput=0, const char *context="", TGClient *gclient=0)
Convert a text file into a html file.
Definition: TDocOutput.cxx:311
void AddLink(TSubString &str, TString &link, const char *comment)
Add a link around str, with title comment.
Definition: TDocOutput.cxx:268
int CaseInsensitiveSort(const void *name1, const void *name2)
TText * text
int type
Definition: TGX11.cxx:120
virtual void CreateClassIndex()
Create index of all classes.
Definition: TDocOutput.cxx:693
Mother of all ROOT objects.
Definition: TObject.h:37
void WriteTopLinks(std::ostream &out, TModuleDocInfo *module, const char *classname=0, Bool_t withLocation=kTRUE)
Write the first part of the links shown ontop of each doc page; one <div> has to be closed by caller ...
Bool_t RunDot(const char *filename, std::ostream *outMap=0, EGraphvizTool gvwhat=kDot)
Run filename".dot", creating filename".png", and - if outMap is !=0, filename".map", which gets then included literally into outMap.
Each ROOT class (see TClass) has a linked list of methods.
Definition: TMethod.h:38
THtml * GetHtml()
Definition: TDocOutput.h:90
const Bool_t kTRUE
Definition: RtypesCore.h:87
Definition: THtml.h:40
char name[80]
Definition: TGX11.cxx:109