Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TClassDocOutput.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_TClassDocOutput
13 #define ROOT_TClassDocOutput
14 
15 #include "Rtypes.h"
16 #include "TDocOutput.h"
17 
18 class TDocParser;
19 class TDocMethodWrapper;
20 class TList;
21 
22 class TClassDocOutput: public TDocOutput {
23 protected:
24  enum ETraverse {
25  kUp, kDown, kBoth // direction to traverse class tree in ClassHtmlTree()
26  };
27 
28  Int_t fHierarchyLines; // counter for no. lines in hierarchy
29  TClass* fCurrentClass; // class to generate output for
30  TList* fCurrentClassesTypedefs; // typedefs to the current class
31  TDocParser* fParser; // parser we use
32 
33  void ClassHtmlTree(std::ostream &out, TClass *classPtr, ETraverse dir=kBoth, int depth=1);
34  void ClassTree(TVirtualPad *canvas, Bool_t force=kFALSE);
35 
36  Bool_t CreateDotClassChartIncl(const char* filename);
37  Bool_t CreateDotClassChartInh(const char* filename);
38  Bool_t CreateDotClassChartInhMem(const char* filename);
39  Bool_t CreateDotClassChartLib(const char* filename);
40 
41  Bool_t CreateHierarchyDot();
42  void CreateSourceOutputStream(std::ostream& out, const char* extension, TString& filename);
43  void DescendHierarchy(std::ostream &out, TClass* basePtr, Int_t maxLines=0, Int_t depth=1);
44 
45  virtual void ListFunctions(std::ostream& classFile);
46  virtual void ListDataMembers(std::ostream& classFile);
47 
48  virtual void WriteClassDocHeader(std::ostream& classFile);
49  virtual void WriteMethod(std::ostream & out, TString& ret,
50  TString& name, TString& params,
51  const char* file, TString& anchor,
52  TString& comment, TString& codeOneLiner,
53  TDocMethodWrapper* guessedMethod);
54  virtual void WriteClassDescription(std::ostream& out, const TString& description);
55 
56 public:
57  TClassDocOutput(THtml& html, TClass* cl, TList* typedefs);
58  virtual ~TClassDocOutput();
59 
60  void Class2Html(Bool_t force=kFALSE);
61  Bool_t ClassDotCharts(std::ostream & out);
62  void CreateClassHierarchy(std::ostream& out, const char* docFileName);
63 
64  void MakeTree(Bool_t force = kFALSE);
65 
66  friend class TDocParser;
67 
68  ClassDef(TClassDocOutput, 0); // generates documentation web pages for a class
69 };
70 
71 #endif // ROOT_TClassDocOutput