TPaveClass.cxx

Go to the documentation of this file.
00001 // @(#)root/gpad:$Id: TPaveClass.cxx 20882 2007-11-19 11:31:26Z rdm $
00002 // Author: Rene Brun   06/08/99
00003 /*************************************************************************
00004  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00005  * All rights reserved.                                                  *
00006  *                                                                       *
00007  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00008  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00009  *************************************************************************/
00010 
00011 #include "Riostream.h"
00012 #include "TROOT.h"
00013 #include "Buttons.h"
00014 #include "TPaveClass.h"
00015 
00016 ClassImp(TPaveClass)
00017 
00018 
00019 //______________________________________________________________________________
00020 //  A PaveClass is a TPaveLabel  specialized to process classes
00021 //  inside a TClassTree.
00022 //   A TPaveClass object is used by the TClassTree to represent a class.
00023 //   A TPaveClass has the same graphical representation as a TPaveLabel.
00024 //   Using the context menu on can select additional options in the ClassTree:
00025 //     - Show classes using this class
00026 //     - Show all classes used by this class
00027 
00028 
00029 //______________________________________________________________________________
00030 TPaveClass::TPaveClass(): TPaveLabel()
00031 {
00032    // PaveClass default constructor.
00033 
00034    fClassTree  = 0;
00035 }
00036 
00037 
00038 //______________________________________________________________________________
00039 TPaveClass::TPaveClass(Double_t x1, Double_t y1,Double_t x2, Double_t  y2, const char *label, TClassTree *classtree)
00040            :TPaveLabel(x1,y1,x2,y2,label,"br")
00041 {
00042    // PaveClass normal constructor.
00043 
00044    fClassTree  = classtree;
00045    SetName(label);
00046    SetTextFont(61);
00047 }
00048 
00049 
00050 //______________________________________________________________________________
00051 TPaveClass::~TPaveClass()
00052 {
00053    // PaveClass default destructor.
00054 }
00055 
00056 
00057 //______________________________________________________________________________
00058 TPaveClass::TPaveClass(const TPaveClass &PaveClass) : TPaveLabel(PaveClass)
00059 {
00060    // PaveClass copy constructor.
00061 
00062    ((TPaveClass&)PaveClass).Copy(*this);
00063 }
00064 
00065 
00066 //______________________________________________________________________________
00067 void TPaveClass::Copy(TObject &obj) const
00068 {
00069    // Copy this PaveClass to PaveClass.
00070 
00071    TPaveLabel::Copy(obj);
00072    ((TPaveClass&)obj).fClassTree      = fClassTree;
00073 }
00074 
00075 
00076 //______________________________________________________________________________
00077 void TPaveClass::DrawClasses(const char *classes)
00078 {
00079    // Draw classes.
00080 
00081    if (!fClassTree) return;
00082    if (!strcmp(classes,"this")) fClassTree->Draw(GetName());
00083    else                         fClassTree->Draw(classes);
00084 }
00085 
00086 
00087 //______________________________________________________________________________
00088 void TPaveClass::SaveAs(const char *filename, Option_t *option) const
00089 {
00090    // Save as.
00091 
00092    if (!fClassTree) return;
00093    fClassTree->SaveAs(filename,option);
00094 }
00095 
00096 
00097 //______________________________________________________________________________
00098 void TPaveClass::SetClasses(const char *classes, Option_t *option)
00099 {
00100    // Set classes.
00101 
00102    if (!fClassTree) return;
00103    if (!strcmp(classes,"this")) fClassTree->SetClasses(GetName(),option);
00104    else                         fClassTree->SetClasses(classes,option);
00105 }
00106 
00107 
00108 //______________________________________________________________________________
00109 void TPaveClass::ShowLinks(Option_t *option)
00110 {
00111    // Set link options in the ClassTree object.
00112    //
00113    //   "C"  show References from code
00114    //   "H"  show "Has a" relations
00115    //   "M"  show Multiple Inheritance
00116    //   "R"  show References from data members
00117 
00118    if (!fClassTree) return;
00119    fClassTree->ShowLinks(option);
00120 }
00121 
00122 
00123 //______________________________________________________________________________
00124 void TPaveClass::ShowClassesUsedBy(const char *classes)
00125 {
00126    // Show classes used by.
00127 
00128    if (!fClassTree) return;
00129    if (!strcmp(classes,"this")) fClassTree->ShowClassesUsedBy(GetName());
00130    else                         fClassTree->ShowClassesUsedBy(classes);
00131 }
00132 
00133 
00134 //______________________________________________________________________________
00135 void TPaveClass::ShowClassesUsing(const char *classes)
00136 {
00137    // Show classes using.
00138 
00139    if (!fClassTree) return;
00140    if (!strcmp(classes,"this")) fClassTree->ShowClassesUsing(GetName());
00141    else                         fClassTree->ShowClassesUsing(classes);
00142 }
00143 
00144 
00145 //______________________________________________________________________________
00146 void TPaveClass::SavePrimitive(ostream &out, Option_t * /*= ""*/)
00147 {
00148    // Save primitive as a C++ statement(s) on output stream out
00149 
00150    char quote = '"';
00151    out<<"   "<<endl;
00152    if (gROOT->ClassSaved(TPaveClass::Class())) {
00153       out<<"   ";
00154    } else {
00155       out<<"   TPaveClass *";
00156    }
00157    out<<"pclass = new TPaveClass("<<fX1<<","<<fY1<<","<<fX2<<","<<fY2
00158       <<","<<quote<<fLabel<<quote<<","<<quote<<fOption<<quote<<");"<<endl;
00159 
00160    SaveFillAttributes(out,"pclass",0,1001);
00161    SaveLineAttributes(out,"pclass",1,1,1);
00162    SaveTextAttributes(out,"pclass",22,0,1,62,0);
00163 
00164    out<<"   pclass->Draw();"<<endl;
00165 }

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