ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/Utils/interface/TDocOutput.h
Revision: 1.1
Committed: Tue Aug 11 23:09:27 2009 UTC (15 years, 8 months ago) by loizides
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_032, Mit_031, Mit_025c_branch2, Mit_025c_branch1, Mit_030, Mit_029c, Mit_029b, Mit_030_pre1, Mit_029a, Mit_029, Mit_029_pre1, Mit_028a, Mit_025c_branch0, Mit_028, Mit_027a, Mit_027, Mit_026, Mit_025e, Mit_025d, Mit_025c, Mit_025b, Mit_025a, Mit_025, Mit_025pre2, Mit_024b, Mit_025pre1, Mit_024a, Mit_024, Mit_023, Mit_022a, Mit_022, Mit_020d, TMit_020d, Mit_020c, Mit_021, Mit_021pre2, Mit_021pre1, Mit_020b, Mit_020a, Mit_020, Mit_020pre1, Mit_018, Mit_017, Mit_017pre3, Mit_017pre2, Mit_017pre1, Mit_016, Mit_015b, Mit_015a, Mit_015, Mit_014e, Mit_014d, Mit_014c, Mit_014b, Mit_014a, Mit_014, Mit_014pre3, Mit_014pre2, Mit_014pre1, Mit_013d, Mit_013c, Mit_013b, Mit_013a, Mit_013, Mit_013pre1, Mit_012i, Mit_012h, Mit_012g, Mit_012f, Mit_012e, Mit_012d, Mit_012c, Mit_012b, Mit_012a, Mit_012, Mit_011a, Mit_011, Mit_010a, HEAD
Branch point for: Mit_025c_branch
Log Message:
Added THtml from ROOT

File Contents

# User Rev Content
1 loizides 1.1 // @(#)root/html:$Id: TDocOutput.h 26807 2008-12-10 17:47:42Z axel $
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     #ifndef ROOT_TObject
25     #include "TObject.h"
26     #endif
27     #ifndef ROOT_Riosfwd
28     #include "Riosfwd.h"
29     #endif
30     #ifndef ROOT_TDocParser
31     #include "MitAna/Utils/interface/TDocParser.h"
32     #endif
33    
34     class TClass;
35     class TDataMember;
36     class TDataType;
37     class TGClient;
38     class THtml;
39     class TModuleDocInfo;
40     class TString;
41     class TSubString;
42     class TVirtualPad;
43    
44     class TDocOutput: public TObject {
45     protected:
46     enum EGraphvizTool {
47     kDot,
48     kNeato,
49     kFdp,
50     kCirco
51     };
52    
53     THtml* fHtml; // THtml object we belong to
54    
55     int CaseInsensitiveSort(const void *name1, const void *name2);
56     void AddLink(TSubString& str, TString& link, const char* comment);
57     void ProcessDocInDir(std::ostream& out, const char* indir, const char* outdir, const char* linkdir);
58     Bool_t RunDot(const char* filename, std::ostream* outMap = 0, EGraphvizTool gvwhat = kDot);
59     void WriteHtmlHeader(std::ostream& out, const char *titleNoSpecial,
60     const char* dir /*=""*/, TClass *cls /*=0*/,
61     const char* header);
62     void WriteHtmlFooter(std::ostream& out, const char *dir,
63     const char *lastUpdate, const char *author,
64     const char *copyright, const char* footer);
65     virtual void WriteSearch(std::ostream& out);
66     void WriteModuleLinks(std::ostream& out);
67     void WriteModuleLinks(std::ostream& out, TModuleDocInfo* super);
68     void WriteTopLinks(std::ostream& out, TModuleDocInfo* module, const char* classname = 0);
69    
70     public:
71     enum EFileType { kSource, kInclude, kTree, kDoc };
72    
73     TDocOutput(THtml& html);
74     virtual ~TDocOutput();
75    
76     virtual void AdjustSourcePath(TString& line, const char* relpath = "../");
77     void Convert(std::istream& in, const char* infilename,
78     const char* outfilename, const char *title,
79     const char *relpath = "../",
80     Int_t includeOutput = 0,
81     const char* context = "",
82     TGClient* gclient = 0);
83     Bool_t CopyHtmlFile(const char *sourceName, const char *destName="");
84    
85     virtual void CreateClassIndex();
86     virtual void CreateModuleIndex();
87     virtual void CreateProductIndex();
88     virtual void CreateTypeIndex();
89     virtual void CreateClassTypeDefs();
90     virtual void CreateHierarchy();
91    
92     virtual void DecorateEntityBegin(TString& str, Ssiz_t& pos, TDocParser::EParseContext type);
93     virtual void DecorateEntityEnd(TString& str, Ssiz_t& pos, TDocParser::EParseContext type);
94     virtual void FixupAuthorSourceInfo(TString& authors);
95     const char* GetExtension() const { return ".html"; }
96     THtml* GetHtml() { return fHtml; }
97     virtual Bool_t IsModified(TClass *classPtr, EFileType type);
98     virtual void NameSpace2FileName(TString &name);
99    
100     virtual void ReferenceEntity(TSubString& str, TClass* entity, const char* comment = 0);
101     virtual void ReferenceEntity(TSubString& str, TDataMember* entity, const char* comment = 0);
102     virtual void ReferenceEntity(TSubString& str, TDataType* entity, const char* comment = 0);
103     virtual void ReferenceEntity(TSubString& str, TMethod* entity, const char* comment = 0);
104     virtual Bool_t ReferenceIsRelative(const char* reference) const;
105    
106     virtual const char* ReplaceSpecialChars(char c);
107     void ReplaceSpecialChars(std::ostream &out, const char *string);
108     void ReplaceSpecialChars(TString& text);
109     void ReplaceSpecialChars(TString& text, Ssiz_t &pos);
110    
111     virtual void WriteHtmlHeader(std::ostream &out, const char *title, const char* dir="", TClass *cls=0);
112     virtual void WriteHtmlFooter(std::ostream &out, const char *dir="", const char *lastUpdate="",
113     const char *author="", const char *copyright="");
114    
115     ClassDef(TDocOutput, 0); // generates documentation web pages
116     };
117    
118     #endif // ROOT_TDocOutput