ROOT  6.06/09
Reference Guide
TClassTree.h
Go to the documentation of this file.
1 // @(#)root/gpad:$Id$
2 // Author: Rene Brun 01/12/98
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, 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_TClassTree
13 #define ROOT_TClassTree
14 
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TClassTree //
19 // //
20 // Manager class to draw classes inheritance tree and relations //
21 // //
22 //////////////////////////////////////////////////////////////////////////
23 
24 #ifndef ROOT_TTnamed
25 #include "TNamed.h"
26 #endif
27 
28 class TClass;
29 class TObjString;
30 
31 class TClassTree : public TNamed {
32 
33 protected:
34  TString fClasses; //List of classes to be drawn
35  Float_t fYoffset; //offset at top of picture in per cent of pad
36  Float_t fLabelDx; //width along x of TPaveLabels in per cent of pad
37  Int_t fNclasses; //current number of classes
38  Int_t fShowCod; //if 1 show classes referenced by implementation
39  Int_t fShowMul; //if 1 show multiple inheritance
40  Int_t fShowHas; //if 1 show "has a" relationship
41  Int_t fShowRef; //if 1 show classes relationship other than inheritance
42  Int_t *fCstatus; //[fNclasses] classes status
43  Int_t *fNdata; //[fNclasses] Number of data members per class
44  Int_t *fParents; //[fNclasses] parent number of classes (permanent)
45  Int_t *fCparent; //!parent number of classes (temporary)
46  char **fDerived; //![fNclasses] table to indicate if i derives from j
47  TClass **fCpointer; //![fNclasses] pointers to the TClass objects
48  TString **fCnames; //![fNclasses] class names
49  TString **fCtitles; //![fNclasses] class titles
50  TString **fOptions; //![fNclasses] List of options per class
51  TString fSourceDir; //Concatenated source directories
52  TList **fLinks; //![fNclasses] for each class, the list of referenced(ing) classes
53 
54  virtual void FindClassPosition(const char *classname, Float_t &x, Float_t &y);
55  virtual void FindClassesUsedBy(Int_t iclass);
56  virtual void FindClassesUsing(Int_t iclass);
57  virtual void Init();
58  TObjString *Mark(const char *classname, TList *los, Int_t abit);
59  virtual void PaintClass(Int_t iclass, Float_t xleft, Float_t y);
60  virtual void ScanClasses(Int_t iclass);
61  virtual void ShowCod();
62  virtual void ShowHas();
63  virtual void ShowMul();
64  virtual void ShowRef();
65 
66 public:
67  TClassTree();
68  TClassTree(const char *name, const char *classes="");
69  virtual ~TClassTree();
70  virtual void Draw(const char *classes ="");
71  virtual Int_t FindClass(const char *classname);
72  const char *GetClasses() const {return fClasses.Data();}
73  virtual const char *GetSourceDir() const {return fSourceDir.Data();}
74  virtual void ls(Option_t *option="") const;
75  virtual void Paint(Option_t *option="");
76  virtual void SaveAs(const char *filename="",Option_t *option="") const;
77  virtual void SetClasses(const char *classes, Option_t *option="ID");
78  virtual void SetSourceDir(const char *dir="src") {fSourceDir = dir;}
79  virtual void SetYoffset(Float_t offset=0);
80  virtual void SetLabelDx(Float_t labeldx=0.15);
81  virtual void ShowClassesUsedBy(const char *classes);
82  virtual void ShowClassesUsing(const char *classes);
83  virtual void ShowLinks(Option_t *option="HMR");
84 
85  ClassDef(TClassTree,1) //Manager class to draw classes inheritance tree and relations
86 };
87 
88 #endif
89 
TString fClasses
Definition: TClassTree.h:34
virtual ~TClassTree()
TClassTree default destructor.
Definition: TClassTree.cxx:244
virtual void FindClassesUsedBy(Int_t iclass)
Select all classes used/referenced by the class number iclass.
Definition: TClassTree.cxx:296
virtual void FindClassPosition(const char *classname, Float_t &x, Float_t &y)
[fNclasses] for each class, the list of referenced(ing) classes
Definition: TClassTree.cxx:346
Collectable string class.
Definition: TObjString.h:32
float Float_t
Definition: RtypesCore.h:53
const char Option_t
Definition: RtypesCore.h:62
virtual void SetYoffset(Float_t offset=0)
Set the offset at the top of the picture The default offset is computed automatically taking into acc...
Definition: TClassTree.cxx:890
TString fSourceDir
[fNclasses] List of options per class
Definition: TClassTree.h:51
virtual void SetClasses(const char *classes, Option_t *option="ID")
Set the list of classes for which the hierarchy is to be drawn See Paint for the syntax.
Definition: TClassTree.cxx:865
TString ** fCtitles
[fNclasses] class names
Definition: TClassTree.h:49
Int_t fShowCod
Definition: TClassTree.h:38
Int_t * fNdata
Definition: TClassTree.h:43
static const char * filename()
virtual void ShowClassesUsing(const char *classes)
mark classes using any class in the list of classes in classes
Definition: TClassTree.cxx:930
TObjString * Mark(const char *classname, TList *los, Int_t abit)
set bit abit in class classname in list los
Definition: TClassTree.cxx:446
Basic string class.
Definition: TString.h:137
TString ** fCnames
[fNclasses] pointers to the TClass objects
Definition: TClassTree.h:48
int Int_t
Definition: RtypesCore.h:41
virtual void Paint(Option_t *option="")
Draw the current class setting in fClasses and fStatus.
Definition: TClassTree.cxx:461
virtual void ShowMul()
Draw the Multiple inheritance relationships.
Float_t fLabelDx
Definition: TClassTree.h:36
Int_t fShowMul
Definition: TClassTree.h:39
virtual void ls(Option_t *option="") const
list classes names and titles
Definition: TClassTree.cxx:432
virtual void ShowClassesUsedBy(const char *classes)
mark classes used by the list of classes in classes
Definition: TClassTree.cxx:899
virtual void ShowLinks(Option_t *option="HMR")
Set link options in the ClassTree object.
virtual void ScanClasses(Int_t iclass)
Select all classes used by/referenced/referencing the class number iclass and build the list of these...
Definition: TClassTree.cxx:699
TClass ** fCpointer
[fNclasses] table to indicate if i derives from j
Definition: TClassTree.h:47
const char * Data() const
Definition: TString.h:349
Double_t x[n]
Definition: legend1.C:17
#define ClassDef(name, id)
Definition: Rtypes.h:254
The TNamed class is the base class for all named ROOT classes.
Definition: TNamed.h:33
A doubly linked list.
Definition: TList.h:47
virtual Int_t FindClass(const char *classname)
Find class number corresponding to classname in list of local classes.
Definition: TClassTree.cxx:285
virtual const char * GetSourceDir() const
Definition: TClassTree.h:73
virtual void SetSourceDir(const char *dir="src")
Definition: TClassTree.h:78
char ** fDerived
parent number of classes (temporary)
Definition: TClassTree.h:46
virtual void SetLabelDx(Float_t labeldx=0.15)
Set the size along x of the TPaveLabel showing the class name.
Definition: TClassTree.cxx:879
Int_t fNclasses
Definition: TClassTree.h:37
Int_t * fParents
Definition: TClassTree.h:44
Int_t fShowRef
Definition: TClassTree.h:41
virtual void SaveAs(const char *filename="", Option_t *option="") const
save current configuration in a Root file if filename is blank, the name of the file will be the curr...
Definition: TClassTree.cxx:690
virtual void FindClassesUsing(Int_t iclass)
Select all classes using/referencing the class number iclass.
Definition: TClassTree.cxx:320
The ROOT global object gROOT contains a list of all defined classes.
Definition: TClass.h:81
virtual void ShowRef()
Draw the References relationships (other than inheritance or composition)
virtual void ShowCod()
Draw the Code References relationships.
Definition: TClassTree.cxx:961
const char * GetClasses() const
Definition: TClassTree.h:72
virtual void Draw(const char *classes="")
Draw the inheritance tree and relations for the list of classes see this class header for the syntax ...
Definition: TClassTree.cxx:268
Double_t y[n]
Definition: legend1.C:17
virtual void ShowHas()
Draw the "Has a" relationships.
Definition: TClassTree.cxx:999
Int_t fShowHas
Definition: TClassTree.h:40
#define name(a, b)
Definition: linkTestLib0.cpp:5
TString ** fOptions
[fNclasses] class titles
Definition: TClassTree.h:50
Int_t * fCstatus
Definition: TClassTree.h:42
virtual void PaintClass(Int_t iclass, Float_t xleft, Float_t y)
Paint one class level.
Definition: TClassTree.cxx:642
Float_t fYoffset
Definition: TClassTree.h:35
Int_t * fCparent
Definition: TClassTree.h:45
Draw inheritance tree and their relations for a list of classes.
Definition: TClassTree.h:31
virtual void Init()
Initialize the data structures.
Definition: TClassTree.cxx:367
TList ** fLinks
Definition: TClassTree.h:52