12#include "RConfigure.h" 
  198   if (classes && strlen(classes)) {
 
  234      gROOT->MakeDefCanvas();
 
  237   if (classes && strlen(classes)) 
fClasses = classes;
 
  251      if(!
fCnames[i]->CompareTo(classname)) 
return i;
 
  274      if (udata || ufunc || ucode || uclass) {
 
  299      if (udata || ufunc || ucode || uclass) {
 
  314   while((obj=next())) {
 
  317         if (!strcmp(pave->
GetLabel(),classname)) {
 
  377      if (!clbase) 
continue;
 
  402      printf(
"%5d %s\n",i,
line);
 
  411   if (!los) 
return nullptr;
 
  430      while((obj=next())) {
 
  436   if (nch == 0) 
return;
 
  437   char *classes  = 
new char[nch+1];
 
  443   char *ptr = strtok(classes,
":");
 
  455      } 
else if (ptr[0] == 
'>') {
 
  457            if(
fCnames[i]->Contains(&ptr[1])) {
 
  463      } 
else if (ptr[nch-1] == 
'<') {
 
  466            if(
fCnames[i]->Contains(ptr)) {
 
  473      } 
else if (ptr[nch-1] == 
'*') {
 
  480            if(!
fCnames[i]->CompareTo(ptr)) {
 
  487      ptr = strtok(
nullptr, 
":");
 
  497         if (j == i) 
continue;
 
  517      if (
fNsons[i] != 0) 
continue;
 
  522         if (nlevel > maxlev) maxlev = nlevel;
 
  552   if (maxlev > 5) 
gDx = 0.97*
gXsize/maxlev;
 
  562   gCsize  = dxpixels/(10.*dypixels);
 
  570         if (!
fCnames[i]->CompareTo(
"TObject")) 
y += ymore;
 
  584   if (nch > 20) 
xmax = 0.5;
 
  585   if (nch > 50) 
xmax = 0.7;
 
  586   if (nch > 70) 
xmax = 0.9;
 
  611   if(ns != 0) u[1] = u[0]+
gDx;
 
  618   if (icobject >= 0 && !derived[icobject]) label->
SetFillColor(30);
 
  666   TList *losref = 
nullptr;
 
  680         if (ic < 0 || ic == iclass) 
continue;
 
  702         if (numb == 1) 
continue;
 
  707         if (ic == iclass) 
continue;
 
  725      while ((method = (
TMethod*) nextm())) {
 
  728         star = strstr((
char*)
name.Data(),
"*");
 
  730         cref = strstr((
char*)
name.Data(),
"&");
 
  733         if (ic < 0 || ic == iclass) 
continue;
 
  743            star = strstr((
char*)
name.Data(),
"*");
 
  745            cref = strstr((
char*)
name.Data(),
"&");
 
  748            if (ic < 0 || ic == iclass) 
continue;
 
  766   if (!sourceName) 
return;
 
  768   char *
cname = 
new char[ncn+1];
 
  771   std::ifstream sourceFile;
 
  772   sourceFile.open( sourceName, std::ios::in );
 
  774   if( sourceFile.good() ) {
 
  775      const Int_t kMAXLEN=1500;
 
  777      while( !sourceFile.eof() ) {
 
  778         sourceFile.getline( 
line, kMAXLEN-1 );
 
  779         if( sourceFile.eof() ) 
break;
 
  781         if (!strncmp(&
line[nblank],
"//",2)) 
continue;
 
  782         char *cc = strstr(
line,
"::");
 
  785            if (!strncmp(&
line[nblank],
cname,ncn)) 
break;  
 
  787            if (!strncmp(&
line[nblank],cc+2,nl))   
break;  
 
  789         nlines++; 
if (nlines > 1000) 
break;
 
  790         char *inc = strstr(
line,
"#include");
 
  792            char *ch = strstr(
line,
".h");
 
  795            char *start = strstr(
line,
"<");
 
  796            if (!start) start = strstr(
line,
"\"");
 
  797            if (!start) 
continue;
 
  799            while ((start < ch) && (*start == 
' ')) start++;
 
  801            if (icl < 0 || icl == iclass) 
continue;
 
  810               if (ic == icl) 
continue;
 
  821   delete [] sourceName;
 
  831   if (!classes) 
return;
 
  866   Int_t nch = strlen(classes);
 
  867   char *ptr = 
new char[nch+1];
 
  868   strlcpy(ptr,classes,nch+1);
 
  877   } 
else if (ptr[nch-1] == 
'*') {
 
  897   Int_t nch = strlen(classes);
 
  898   char *ptr = 
new char[nch+1];
 
  899   strlcpy(ptr,classes,nch+1);
 
  908   } 
else if (ptr[nch-1] == 
'*') {
 
  934   while((obj=next())) {
 
  938         if (icl < 0) 
continue;
 
  947            if (derived[ic]) 
continue;
 
  949            if (
x1 == 0 || 
y1 == 0) 
continue; 
 
  972   while((obj=next())) {
 
  976         if (icl < 0) 
continue;
 
  979         if (nmembers == 0) 
continue;
 
  980         dx = (pave->
GetX2() - pave->
GetX1())/nmembers;
 
  988            if (
x1 == 0 || 
y1 == 0) 
continue; 
 
 1025   TIter next(
gPad->GetListOfPrimitives());
 
 1032   while((obj=next())) {
 
 1036         if (icl < 0) 
continue;
 
 1045            if (derived[ic] != 2) 
continue; 
 
 1047            if (
x1 == 0 || 
y1 == 0) 
continue; 
 
 1063   TIter next(
gPad->GetListOfPrimitives());
 
 1071   while((obj=next())) {
 
 1075         if (icl < 0) 
continue;
 
 1078         if (nmembers == 0) 
continue;
 
 1079         dx = (pave->
GetX2() - pave->
GetX1())/nmembers;
 
 1087            if (ic == icc) 
continue; 
 
 1089            if (
x1 == 0 || 
y1 == 0) 
continue; 
 
R__EXTERN TClassTable * gClassTable
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h offset
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char cname
 
Option_t Option_t TPoint TPoint const char x1
 
Option_t Option_t TPoint TPoint const char y1
 
R__EXTERN TSystem * gSystem
 
Draw all kinds of Arrows.
 
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
 
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
 
virtual void SetLineColor(Color_t lcolor)
Set the line color.
 
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
 
Each class (see TClass) has a linked list of its base class(es).
 
TClass * GetClassPointer(Bool_t load=kTRUE)
Get pointer to the base class TClass.
 
virtual void SetToolTipText(const char *text, Long_t delayms=1000)
Set tool tip text associated with this box.
 
Buffer base class used for serializing objects.
 
virtual Version_t ReadVersion(UInt_t *start=nullptr, UInt_t *bcnt=nullptr, const TClass *cl=nullptr)=0
 
virtual void ReadFastArray(Bool_t *b, Int_t n)=0
 
virtual UInt_t WriteVersion(const TClass *cl, Bool_t useBcnt=kFALSE)=0
 
virtual void WriteFastArray(const Bool_t *b, Int_t n)=0
 
static char * Next()
Returns next class from sorted class table.
 
Draw inheritance tree and their relations for a list of classes.
 
virtual void ShowClassesUsedBy(const char *classes)
mark classes used by the list of classes in classes
 
virtual void ShowHas()
Draw the "Has a" relationships.
 
TClass * IsA() const override
 
virtual void ShowLinks(Option_t *option="HMR")
Set link options in the ClassTree object.
 
char ** fDerived
![fNclasses] table to indicate if i derives from j
 
virtual void ScanClasses(Int_t iclass)
Select all classes used by/referenced/referencing the class number iclass and build the list of these...
 
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.
 
Int_t * fCstatus
[fNclasses] classes status
 
Int_t fNclasses
current number of classes
 
virtual void PaintClass(Int_t iclass, Float_t xleft, Float_t y)
Paint one class level.
 
virtual void FindClassesUsing(Int_t iclass)
Select all classes using/referencing the class number iclass.
 
Int_t * fParents
[fNclasses] parent number of classes (permanent)
 
Int_t fShowRef
if 1 show classes relationship other than inheritance
 
virtual void Init()
Initialize the data structures.
 
void Paint(Option_t *option="") override
Draw the current class setting in fClasses and fStatus.
 
void ls(Option_t *option="") const override
list classes names and titles
 
TString ** fOptions
![fNclasses] List of options per class
 
std::vector< Int_t > fNtsons
! internal variable, used during painting
 
Int_t fShowHas
if 1 show "has a" relationship
 
Int_t fShowCod
if 1 show classes referenced by implementation
 
void SaveAs(const char *filename="", Option_t *option="") const override
save current configuration in a Root file if filename is blank, the name of the file will be the curr...
 
Int_t * fCparent
!parent number of classes (temporary)
 
TString fSourceDir
Concatenated source directories.
 
virtual Int_t FindClass(const char *classname)
Find class number corresponding to classname in list of local classes.
 
std::vector< Int_t > fNsons
! internal variable, used during painting
 
TString ** fCtitles
![fNclasses] class titles
 
virtual void SetLabelDx(Float_t labeldx=0.15)
Set the size along x of the TPaveLabel showing the class name.
 
virtual ~TClassTree()
TClassTree default destructor.
 
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...
 
void Streamer(TBuffer &) override
Stream an object of class TClassTree.
 
virtual void SetSourceDir(const char *dir="src")
 
Float_t fLabelDx
width along x of TPaveLabels in per cent of pad
 
virtual void FindClassPosition(const char *classname, Float_t &x, Float_t &y)
Search the TPaveClass object in the pad with label=classname returns the x and y position of the cent...
 
virtual void ShowRef()
Draw the References relationships (other than inheritance or composition)
 
virtual void ShowCod()
Draw the Code References relationships.
 
TList ** fLinks
![fNclasses] for each class, the list of referenced(ing) classes
 
virtual void ShowMul()
Draw the Multiple inheritance relationships.
 
virtual void ShowClassesUsing(const char *classes)
mark classes using any class in the list of classes in classes
 
TClassTree()
TClassTree default constructor.
 
Float_t fYoffset
offset at top of picture in per cent of pad
 
TClass ** fCpointer
![fNclasses] pointers to the TClass objects
 
void Draw(const char *classes="") override
Draw the inheritance tree and relations for the list of classes see this class header for the syntax ...
 
virtual void FindClassesUsedBy(Int_t iclass)
Select all classes used/referenced by the class number iclass.
 
TString fClasses
List of classes to be drawn.
 
TObjString * Mark(const char *classname, TList *los, Int_t abit)
set bit abit in class classname in list los
 
Int_t fShowMul
if 1 show multiple inheritance
 
TString ** fCnames
![fNclasses] class names
 
const char * GetClasses() const
 
Int_t * fNdata
[fNclasses] Number of data members per class
 
TClass instances represent classes, structs and namespaces in the ROOT type system.
 
TList * GetListOfMethods(Bool_t load=kTRUE)
Return list containing the TMethods of a class.
 
TList * GetListOfDataMembers(Bool_t load=kTRUE)
Return list containing the TDataMembers of a class.
 
const char * GetImplFileName() const
 
TList * GetListOfBases()
Return list containing the TBaseClass(es) of a class.
 
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
 
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
 
All ROOT classes may have RTTI (run time type identification) support added.
 
Bool_t IsBasic() const
Return true if data member is a basic type, e.g. char, int, long...
 
Bool_t IsaPointer() const
Return true if data member is a pointer.
 
const char * GetTypeName() const
Get type of data member, e,g.: "class TDirectory*" -> "TDirectory".
 
const char * GetReturnTypeName() const
Get full type description of function return type, e,g.: "class TDirectory*".
 
Use the TLine constructor to create a simple line.
 
void Streamer(TBuffer &) override
Stream all objects in the collection to or from the I/O buffer.
 
TObject * FindObject(const char *name) const override
Find an object in this list using its name.
 
void Add(TObject *obj) override
 
TObject * First() const override
Return the first object in the list. Returns 0 when list is empty.
 
void Delete(Option_t *option="") override
Remove all objects from the list AND delete all heap based objects.
 
Each ROOT method (see TMethod) has a linked list of its arguments.
 
const char * GetTypeName() const
Get type of method argument, e.g.: "class TDirectory*" -> "TDirectory" Result needs to be used or cop...
 
Each ROOT class (see TClass) has a linked list of methods.
 
virtual TList * GetListOfMethodArgs()
Returns methodarg list and additionally updates fDataMember in TMethod by calling FindDataMember();.
 
The TNamed class is the base class for all named ROOT classes.
 
const char * GetName() const override
Returns name of object.
 
void Streamer(TBuffer &) override
Stream an object of class TObject.
 
const char * GetTitle() const override
Returns title of object.
 
Collectable string class.
 
const char * GetName() const override
Returns name of object.
 
Mother of all ROOT objects.
 
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
 
virtual UInt_t GetUniqueID() const
Return the unique object id.
 
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
 
virtual Bool_t InheritsFrom(const char *classname) const
Returns kTRUE if object inherits from class "classname".
 
virtual void SetUniqueID(UInt_t uid)
Set the unique object id.
 
virtual void Draw(Option_t *option="")
Default Draw method for all objects.
 
A TPaveLabel specialized to process classes inside a TClassTree.
 
const char * GetLabel() const
 
void Draw(Option_t *option="") override
Draw this pavelabel with its current attributes.
 
static const TString & GetSourceDir()
Get the source directory in the installation. Static utility function.
 
const char * Data() const
 
void ToUpper()
Change string to upper case.
 
virtual void Streamer(TBuffer &)
Stream a string object.
 
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
 
virtual const char * UnixPathName(const char *unixpathname)
Convert from a local pathname to a Unix pathname.
 
virtual const char * BaseName(const char *pathname)
Base name of a file name. Base name of /user/root is root.
 
virtual char * Which(const char *search, const char *file, EAccessMode mode=kFileExists)
Find location of file in a search path.