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

# Content
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