TClassTree.h

Go to the documentation of this file.
00001 // @(#)root/gpad:$Id: TClassTree.h 20882 2007-11-19 11:31:26Z rdm $
00002 // Author: Rene Brun   01/12/98
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 #ifndef ROOT_TClassTree
00013 #define ROOT_TClassTree
00014 
00015 
00016 //////////////////////////////////////////////////////////////////////////
00017 //                                                                      //
00018 // TClassTree                                                           //
00019 //                                                                      //
00020 // Manager class to draw classes inheritance tree and relations         //
00021 //                                                                      //
00022 //////////////////////////////////////////////////////////////////////////
00023 
00024 #ifndef ROOT_TTnamed
00025 #include "TNamed.h"
00026 #endif
00027 
00028 class TClass;
00029 class TObjString;
00030 
00031 class TClassTree : public TNamed {
00032 
00033 protected:
00034    TString   fClasses;    //List of classes to be drawn
00035    Float_t   fYoffset;    //offset at top of picture in per cent of pad
00036    Float_t   fLabelDx;    //width along x of TPaveLabels in per cent of pad
00037    Int_t     fNclasses;   //current number of classes
00038    Int_t     fShowCod;    //if 1 show classes referenced by implementation
00039    Int_t     fShowMul;    //if 1 show multiple inheritance
00040    Int_t     fShowHas;    //if 1 show "has a" relationship
00041    Int_t     fShowRef;    //if 1 show classes relationship other than inheritance
00042    Int_t    *fCstatus;    //[fNclasses] classes status
00043    Int_t    *fNdata;      //[fNclasses] Number of data members per class
00044    Int_t    *fParents;    //[fNclasses] parent number of classes (permanent)
00045    Int_t    *fCparent;    //!parent number of classes (temporary)
00046    char    **fDerived;    //![fNclasses] table to indicate if i derives from j
00047    TClass  **fCpointer;   //![fNclasses] pointers to the TClass objects
00048    TString **fCnames;     //![fNclasses] class names
00049    TString **fCtitles;    //![fNclasses] class titles
00050    TString **fOptions;    //![fNclasses] List of options per class
00051    TString   fSourceDir;  //Concatenated source directories
00052    TList   **fLinks;      //![fNclasses] for each class, the list of referenced(ing) classes
00053 
00054    virtual  void FindClassPosition(const char *classname, Float_t &x, Float_t &y);
00055    virtual  void FindClassesUsedBy(Int_t iclass);
00056    virtual  void FindClassesUsing(Int_t iclass);
00057    virtual  void Init();
00058    TObjString   *Mark(const char *classname, TList *los, Int_t abit);
00059    virtual  void PaintClass(Int_t iclass, Float_t xleft, Float_t y);
00060    virtual  void ScanClasses(Int_t iclass);
00061    virtual  void ShowCod();
00062    virtual  void ShowHas();
00063    virtual  void ShowMul();
00064    virtual  void ShowRef();
00065 
00066 public:
00067    TClassTree();
00068    TClassTree(const char *name, const char *classes="");
00069    virtual      ~TClassTree();
00070    virtual  void Draw(const char *classes ="");
00071    virtual Int_t FindClass(const char *classname);
00072    const char   *GetClasses() const {return fClasses.Data();}
00073    virtual const char  *GetSourceDir() const {return fSourceDir.Data();}
00074    virtual  void ls(Option_t *option="") const;
00075    virtual  void Paint(Option_t *option="");
00076    virtual  void SaveAs(const char *filename="",Option_t *option="") const;
00077    virtual  void SetClasses(const char *classes, Option_t *option="ID");
00078    virtual  void SetSourceDir(const char *dir="src") {fSourceDir = dir;}
00079    virtual  void SetYoffset(Float_t offset=0);
00080    virtual  void SetLabelDx(Float_t labeldx=0.15);
00081    virtual  void ShowClassesUsedBy(const char *classes);
00082    virtual  void ShowClassesUsing(const char *classes);
00083    virtual  void ShowLinks(Option_t *option="HMR");
00084 
00085    ClassDef(TClassTree,1)  //Manager class to draw classes inheritance tree and relations
00086 };
00087 
00088 #endif
00089 

Generated on Tue Jul 5 14:13:55 2011 for ROOT_528-00b_version by  doxygen 1.5.1