00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TClassDocOutput
00013 #define ROOT_TClassDocOutput
00014
00015 #ifndef ROOT_TDocOutput
00016 #include "TDocOutput.h"
00017 #endif
00018
00019 class TDocParser;
00020 class TDocMethodWrapper;
00021
00022 class TClassDocOutput: public TDocOutput {
00023 protected:
00024 enum ETraverse {
00025 kUp, kDown, kBoth
00026 };
00027
00028 Int_t fHierarchyLines;
00029 TClass* fCurrentClass;
00030 TList* fCurrentClassesTypedefs;
00031 TDocParser* fParser;
00032
00033 void ClassHtmlTree(std::ostream &out, TClass *classPtr, ETraverse dir=kBoth, int depth=1);
00034 void ClassTree(TVirtualPad *canvas, Bool_t force=kFALSE);
00035
00036 Bool_t CreateDotClassChartIncl(const char* filename);
00037 Bool_t CreateDotClassChartInh(const char* filename);
00038 Bool_t CreateDotClassChartInhMem(const char* filename);
00039 Bool_t CreateDotClassChartLib(const char* filename);
00040
00041 Bool_t CreateHierarchyDot();
00042 void CreateSourceOutputStream(std::ostream& out, const char* extension, TString& filename);
00043 void DescendHierarchy(std::ostream &out, TClass* basePtr, Int_t maxLines=0, Int_t depth=1);
00044
00045 virtual void ListFunctions(std::ostream& classFile);
00046 virtual void ListDataMembers(std::ostream& classFile);
00047
00048 virtual void WriteClassDocHeader(std::ostream& classFile);
00049 virtual void WriteMethod(std::ostream & out, TString& ret,
00050 TString& name, TString& params,
00051 const char* file, TString& anchor,
00052 TString& comment, TString& codeOneLiner,
00053 TDocMethodWrapper* guessedMethod);
00054 virtual void WriteClassDescription(std::ostream& out, const TString& description);
00055
00056 public:
00057 TClassDocOutput(THtml& html, TClass* cl, TList* typedefs);
00058 virtual ~TClassDocOutput();
00059
00060 void Class2Html(Bool_t force=kFALSE);
00061 Bool_t ClassDotCharts(std::ostream & out);
00062 void CreateClassHierarchy(std::ostream& out, const char* docFileName);
00063
00064 void MakeTree(Bool_t force = kFALSE);
00065
00066 friend class TDocParser;
00067
00068 ClassDef(TClassDocOutput, 0);
00069 };
00070
00071 #endif // ROOT_TClassDocOutput