class TLegend: public TPave, public TAttText

 TLegend   Matthew.Adam.Dobbs@Cern.CH, September 1999
 Implementation of the multiple column logic by Jason Detwiler (jasondet@gmail.com)

 Legend of markers/lines/boxes to represent objects with marker/line/fill
   attributes
   (the methods employed are very similar to those in TPaveText class)

Function Members (Methods)

public:
TLegend()
TLegend(const TLegend& legend)
TLegend(Double_t x1, Double_t y1, Double_t x2, Double_t y2, const char* header = "", Option_t* option = "brNDC")
virtual~TLegend()
voidTObject::AbstractMethod(const char* method) const
TLegendEntry*AddEntry(TObject* obj, const char* label = "", Option_t* option = "lpf")
TLegendEntry*AddEntry(const char* name, const char* label = "", Option_t* option = "lpf")
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidClear(Option_t* option = "")MENU
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTPave::ConvertNDCtoPad()
virtual voidCopy(TObject& obj) const
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual voidDeleteEntry()MENU
Int_tTAttLine::DistancetoLine(Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2)
virtual Int_tTPave::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidDraw(Option_t* option = "")
virtual TBox*TBox::DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTPave::DrawPave(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Int_t bordersize = 4, Option_t* option = "br")
virtual voidTObject::Dump() constMENU
virtual voidEditEntryAttFill()
virtual voidEditEntryAttLine()
virtual voidEditEntryAttMarker()
virtual voidEditEntryAttText()
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTPave::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Int_tTPave::GetBorderSize() const
Float_tGetColumnSeparation() const
Double_tTPave::GetCornerRadius() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
TLegendEntry*GetEntry() const
Float_tGetEntrySeparation() const
virtual Color_tTAttFill::GetFillColor() const
virtual Style_tTAttFill::GetFillStyle() const
virtual const char*GetHeader() const
virtual const char*TObject::GetIconName() const
virtual Color_tTAttLine::GetLineColor() const
virtual Style_tTAttLine::GetLineStyle() const
virtual Width_tTAttLine::GetLineWidth() const
TList*GetListOfPrimitives() const
Float_tGetMargin() const
virtual Option_t*TPave::GetName() const
Int_tGetNColumns() const
Int_tGetNRows() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TPave::GetOption() const
Int_tTPave::GetShadowColor() const
virtual Short_tTAttText::GetTextAlign() const
virtual Float_tTAttText::GetTextAngle() const
virtual Color_tTAttText::GetTextColor() const
virtual Font_tTAttText::GetTextFont() const
virtual Float_tTAttText::GetTextSize() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Double_tTBox::GetX1() const
Double_tTPave::GetX1NDC() const
Double_tTBox::GetX2() const
Double_tTPave::GetX2NDC() const
Double_tTBox::GetY1() const
Double_tTPave::GetY1NDC() const
Double_tTBox::GetY2() const
Double_tTPave::GetY2NDC() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTPave::Hash() const
virtual voidTBox::HideToolTip(Int_t event)
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidInsertEntry(const char* objectName = "", const char* label = "", Option_t* option = "lpf")MENU
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
Bool_tTBox::IsBeingResized() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTPave::IsSortable() const
virtual Bool_tTAttFill::IsTransparent() const
Bool_tTObject::IsZombie() const
virtual voidTPave::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual voidTAttLine::Modify()
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidPaint(Option_t* option = "")
virtual voidTBox::PaintBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Option_t* option = "")
virtual voidTPave::PaintPave(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Int_t bordersize = 4, Option_t* option = "br")
virtual voidTPave::PaintPaveArc(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Int_t bordersize = 4, Option_t* option = "br")
virtual voidPaintPrimitives()
virtual voidTObject::Pop()
virtual voidPrint(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidRecursiveRemove(TObject* obj)
virtual voidTAttFill::ResetAttFill(Option_t* option = "")
virtual voidTAttLine::ResetAttLine(Option_t* option = "")
virtual voidTAttText::ResetAttText(Option_t* toption = "")
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTAttFill::SaveFillAttributes(ostream& out, const char* name, Int_t coldef = 1, Int_t stydef = 1001)
virtual voidTAttLine::SaveLineAttributes(ostream& out, const char* name, Int_t coldef = 1, Int_t stydef = 1, Int_t widdef = 1)
virtual voidSavePrimitive(ostream& out, Option_t* option = "")
virtual voidTAttText::SaveTextAttributes(ostream& out, const char* name, Int_t alidef = 12, Float_t angdef = 0, Int_t coldef = 1, Int_t fondef = 61, Float_t sizdef = 1)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTPave::SetBorderSize(Int_t bordersize = 4)MENU
voidSetColumnSeparation(Float_t columnSeparation)MENU
virtual voidTPave::SetCornerRadius(Double_t rad = 0.2)MENU
voidSetDefaults()
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidSetEntryLabel(const char* label)MENU
virtual voidSetEntryOption(Option_t* option)MENU
voidSetEntrySeparation(Float_t entryseparation)MENU
virtual voidTAttFill::SetFillAttributes()MENU
virtual voidTAttFill::SetFillColor(Color_t fcolor)
virtual voidTAttFill::SetFillStyle(Style_t fstyle)
virtual voidSetHeader(const char* header = "")MENU
virtual voidTAttLine::SetLineAttributes()MENU
virtual voidTAttLine::SetLineColor(Color_t lcolor)
virtual voidTAttLine::SetLineStyle(Style_t lstyle)
virtual voidTAttLine::SetLineWidth(Width_t lwidth)
voidSetMargin(Float_t margin)MENU
virtual voidTPave::SetName(const char* name = "")MENU
voidSetNColumns(Int_t nColumns)MENU
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTPave::SetOption(Option_t* option = "br")
virtual voidTPave::SetShadowColor(Int_t color)MENU
virtual voidTAttText::SetTextAlign(Short_t align = 11)
virtual voidTAttText::SetTextAngle(Float_t tangle = 0)MENU
virtual voidTAttText::SetTextAttributes()MENU
virtual voidTAttText::SetTextColor(Color_t tcolor = 1)
virtual voidTAttText::SetTextFont(Font_t tfont = 62)
virtual voidTAttText::SetTextSize(Float_t tsize = 1)
virtual voidTAttText::SetTextSizePixels(Int_t npixels)
virtual voidTBox::SetToolTipText(const char* text, Long_t delayms = 1000)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidTBox::SetX1(Double_t x1)
virtual voidTPave::SetX1NDC(Double_t x1)
virtual voidTBox::SetX2(Double_t x2)
virtual voidTPave::SetX2NDC(Double_t x2)
virtual voidTBox::SetY1(Double_t y1)
virtual voidTPave::SetY1NDC(Double_t y1)
virtual voidTBox::SetY2(Double_t y2)
virtual voidTPave::SetY2NDC(Double_t y2)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
TLegend&operator=(const TLegend&)

Data Members

public:
enum TPave::[unnamed] { kNameIsAction
};
enum TBox::[unnamed] { kCannotMove
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
Int_tTPave::fBorderSizewindow box bordersize in pixels
Float_tfColumnSeparationseparation between columns, as a fraction of
Double_tTPave::fCornerRadiusCorner radius in case of option arc
Float_tfEntrySeparationseparation between entries, as a fraction of
Color_tTAttFill::fFillColorfill area color
Style_tTAttFill::fFillStylefill area style
Int_tTPave::fInit(=0 if transformation to NDC not yet done)
Color_tTAttLine::fLineColorline color
Style_tTAttLine::fLineStyleline style
Width_tTAttLine::fLineWidthline width
Float_tfMarginfraction of total width used for symbol
Int_tfNColumnsnumber of columns in the legend
TStringTPave::fNamePave name
TStringTPave::fOptionPave style
TList*fPrimitiveslist of TLegendEntries
Bool_tTBox::fResizing!True if box is being resized
Int_tTPave::fShadowColorColor of the pave's shadow
Short_tTAttText::fTextAlignText alignment
Float_tTAttText::fTextAngleText angle
Color_tTAttText::fTextColorText color index
Font_tTAttText::fTextFontText font number
Float_tTAttText::fTextSizeText size
Double_tTBox::fX1X of 1st point
Double_tTPave::fX1NDCX1 point in NDC coordinates
Double_tTBox::fX2X of 2nd point
Double_tTPave::fX2NDCX2 point in NDC coordinates
Double_tTBox::fY1Y of 1st point
Double_tTPave::fY1NDCY1 point in NDC coordinates
Double_tTBox::fY2Y of 2nd point
Double_tTPave::fY2NDCY2 point in NDC coordinates

Class Charts

Inheritance Inherited Members Includes Libraries
Class Charts

Function documentation

TLegend(const TLegend& legend)
 TPadLegend do-nothing default constructor
TLegend(Double_t x1, Double_t y1, Double_t x2, Double_t y2, const char* header = "", Option_t* option = "brNDC")
 TLegend normal Contructor

 A TLegend is a Pave with several TLegendEntry(s)
 The pave is defined with default coords, bordersize and option
 x1,y1,x2,y2 are the coordinates of the Legend in the current pad
 (in NDC by default!)
 text is left adjusted and vertically centered = 12
      Angle=0 (degrees), color=1 (black)
      helvetica-medium-r-normal scalable font = 42
      (will use bold = 62 for header)
      size =0 (calculate this later when number of entries is known)
 header is the "title" that will be displayed at the top of the legend
   it is treated like a regular entry and supports TLatex. The default
   is no header (header = 0).
 Options are the same as for TPave Default = "brNDC"

 Here's an example of a Legend created with TLegend

/* */

 The Legend part of this plot was created as follows:

    leg = new TLegend(0.4,0.6,0.89,0.89);
    leg->AddEntry(fun1,"One Theory","l");
    leg->AddEntry(fun3,"Another Theory","f");
    leg->AddEntry(gr,"The Data","p");
    leg->Draw();
    // oops we forgot the blue line... add it after
    leg->AddEntry(fun2,"#sqrt{2#pi} P_{T} (#gamma)  latex formula","f");
    // and add a header (or "title") for the legend
    leg->SetHeader("The Legend Title");
    leg->Draw();

 where fun1,fun2,fun3 and gr are pre-existing functions and graphs

 You can edit the TLegend by right-clicking on it.
TLegend(const TLegend& legend)
 copy constuctor
TLegend& operator=(const TLegend& )
assignment operator
~TLegend()
 TLegend default destructor
TLegendEntry * AddEntry(TObject *obj, const char *label, Option_t *option)
 Add a new entry to this legend
 obj is the object to be represented
 label is the text you wish to associate with obj in the legend.
 if label is null or empty, the title of the object will be used.
 Options are:
    L draw line associated w/ TAttLine if obj inherits from TAttLine
    P draw polymarker assoc. w/ TAttMarker if obj inherits from TAttMarker
    F draw a box with fill associated w/ TAttFill if obj inherits TAttFill
    E draw vertical error bar if option "P" is also specified
TLegendEntry * AddEntry(const char *name, const char *label, Option_t *option)
 Add a new entry to this legend
 name is the name of an object in the pad to be represented
 label is the text you wish to associate with obj in the legend
 if label is null or empty, the title of the object will be used.
 Options are:
    L draw line associated w/ TAttLine if obj inherits from TAttLine
    P draw polymarker assoc. w/ TAttMarker if obj inherits from TAttMarker
    F draw a box with fill associated w/ TAttFill if obj inherits TAttFill
    E draw vertical error bar if option "P" is also specified

void Clear(Option_t* option = "")
 Clear all entries in this legend --- including the header!
void Copy(TObject& obj) const
 copy this legend into obj
void DeleteEntry()
 Delete entry at the mouse position
void Draw(Option_t* option = "")
 Draw this legend with its current attributes
void EditEntryAttFill()
 Edit the fill attributes for the entry pointed by the mouse
void EditEntryAttLine()
 Edit the line attributes for the entry pointed by the mouse
void EditEntryAttMarker()
 Edit the marker attributes for the entry pointed by the mouse
void EditEntryAttText()
 Edit the text attributes for the entry pointed by the mouse
TLegendEntry * GetEntry()
 Get entry pointed to by the mouse
 This method is mostly a tool for other methods inside this class
const char * GetHeader()
 returns the header, which is the title that appears at the top
  of the legend
void InsertEntry(const char* objectName = "", const char* label = "", Option_t* option = "lpf")
 Add a new entry before the entry at the mouse position
void Paint(Option_t* option = "")
 Paint this legend with its current attributes
Int_t GetNRows()
 Get the number of rows.
void SetNColumns(Int_t nColumns)
 Set the number of columns for the legend. The header, if set, is given
 its own row. After that, every nColumns entries are inserted into the
 same row. For example, if one calls legend.SetNColumns(2), and there
 is no header, then the first two TObjects added to the legend will be
 in the first row, the next two will appear in the second row, and so
 on.
void PaintPrimitives()
 Paint the entries (list of primitives) for this legend

 NOTE: if we want an     Int_t mode
       it can be added later... but I understand whyaas
void Print(Option_t* option = "") const
 dump this TLegend and its contents
void RecursiveRemove(TObject* obj)
  Reset TLegendEntrys pointing to obj
void SavePrimitive(ostream& out, Option_t* option = "")
 Save this legend as C++ statements on output stream out
  to be used with the SaveAs .C option
void SetEntryLabel(const char* label)
 edit the label of the entry pointed to by the mouse
void SetEntryOption(Option_t* option)
 edit the option of the entry pointed to by the mouse
void SetHeader(const char* header = "")
 Sets the header, which is the "title" that appears at the top of the
  TLegend
Float_t GetColumnSeparation()
{ return fColumnSeparation; }
Float_t GetEntrySeparation()
{ return fEntrySeparation; }
TList * GetListOfPrimitives()
{return fPrimitives;}
Float_t GetMargin()
{ return fMargin; }
Int_t GetNColumns()
{ return fNColumns; }
void SetDefaults()
{ fEntrySeparation = 0.1f; fMargin = 0.25f; fNColumns = 1; fColumnSeparation = 0.0f; }
void SetColumnSeparation(Float_t columnSeparation)
{ fColumnSeparation = columnSeparation; }
void SetEntrySeparation(Float_t entryseparation)
{ fEntrySeparation = entryseparation; }
void SetMargin(Float_t margin)
{ fMargin = margin; }

Author: Matthew.Adam.Dobbs 06/09/99
Last change: root/graf:$Id: TLegend.h 20882 2007-11-19 11:31:26Z rdm $
Last generated: 2008-06-25 08:47
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.