Logo ROOT  
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
27class TClass;
28class TDataMember;
29class TDataType;
30class TGClient;
31class THtml;
32class TModuleDocInfo;
33class TString;
34class TSubString;
35class TVirtualPad;
36
37class TDocOutput: public TObject {
38protected:
43 kCirco
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
64public:
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
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);
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
#define c(i)
Definition: RSha256.hxx:101
int Int_t
Definition: RtypesCore.h:43
int Ssiz_t
Definition: RtypesCore.h:65
long Long_t
Definition: RtypesCore.h:52
bool Bool_t
Definition: RtypesCore.h:61
const Bool_t kTRUE
Definition: RtypesCore.h:89
#define ClassDef(name, id)
Definition: Rtypes.h:322
char name[80]
Definition: TGX11.cxx:109
int type
Definition: TGX11.cxx:120
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:80
All ROOT classes may have RTTI (run time type identification) support added.
Definition: TDataMember.h:31
Basic data type descriptor (datatype information is obtained from CINT).
Definition: TDataType.h:44
virtual Bool_t IsModified(TClass *classPtr, EFileType type)
Check if file is modified.
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:310
virtual void DecorateEntityBegin(TString &str, Ssiz_t &pos, TDocParser::EParseContext type)
Add some colors etc to a source entity, contained in str.
virtual void NameSpace2FileName(TString &name)
Replace "::" in name by "__" Replace "<", ">", " ", ",", "~", "=" in name by "_" Replace "A::X<A::Y>"...
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 ...
virtual void CreateProductIndex()
Fetch documentation from THtml::GetProductDocDir() and put it into the product index page.
virtual void CreateClassTypeDefs()
Create a forwarding page for each typedef pointing to a class.
const char * GetExtension() const
Definition: TDocOutput.h:89
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 ReferenceEntity(TSubString &str, TClass *entity, const char *comment=0)
Create a reference to a class documentation page.
Bool_t CopyHtmlFile(const char *sourceName, const char *destName="")
Copy file to HTML directory.
Definition: TDocOutput.cxx:592
virtual void CreateHierarchy()
Create a hierarchical class list The algorithm descends from the base classes and branches into all d...
Definition: TDocOutput.cxx:639
void WriteHtmlFooter(std::ostream &out, const char *dir, const char *lastUpdate, const char *author, const char *copyright, const char *footer)
Write HTML footer.
virtual const char * ReplaceSpecialChars(char c)
Replace ampersand, less-than and greater-than character, writing to out.
virtual Bool_t ReferenceIsRelative(const char *reference) const
Check whether reference is a relative reference, and can (or should) be prependen by relative paths.
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",...
virtual void CreateClassIndex()
Create index of all classes.
Definition: TDocOutput.cxx:692
THtml * fHtml
Definition: TDocOutput.h:46
virtual void CreateTypeIndex()
Create index of all data types.
virtual void DecorateEntityEnd(TString &str, Ssiz_t &pos, TDocParser::EParseContext type)
Add some colors etc to a source entity, contained in str.
virtual void FixupAuthorSourceInfo(TString &authors)
Special author treatment; called when TDocParser::fSourceInfo[kInfoAuthor] is set.
virtual void CreateModuleIndex()
Create the class index for each module, picking up documentation from the module's TModuleDocInfo::Ge...
Definition: TDocOutput.cxx:800
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:296
THtml * GetHtml()
Definition: TDocOutput.h:90
int CaseInsensitiveSort(const void *name1, const void *name2)
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.
virtual ~TDocOutput()
Definition: TDocOutput.cxx:260
void WriteModuleLinks(std::ostream &out)
Create a div containing links to all topmost modules.
void WriteHtmlHeader(std::ostream &out, const char *titleNoSpecial, const char *dir, TClass *cls, const char *header)
Write HTML header.
virtual void WriteSearch(std::ostream &out)
Write a search link or a search box, based on THtml::GetSearchStemURL() and THtml::GetSearchEngine().
TDocOutput(THtml &html)
Definition: TDocOutput.cxx:255
void WriteLocation(std::ostream &out, TModuleDocInfo *module, const char *classname=0)
make a link to the description
void AddLink(TSubString &str, TString &link, const char *comment)
Add a link around str, with title comment.
Definition: TDocOutput.cxx:267
Definition: THtml.h:40
Each ROOT class (see TClass) has a linked list of methods.
Definition: TMethod.h:38
Mother of all ROOT objects.
Definition: TObject.h:37
Basic string class.
Definition: TString.h:131
A zero length substring is legal.
Definition: TString.h:77
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Definition: TVirtualPad.h:51
TText * text
TLine * line
static const std::string comment("comment")