Routines (alphabetical) > Object Classes > Graphics Object Classes > IDLgrLegend

# IDLgrLegend

Superclasses | Creation | Properties | Methods | Version History

The IDLgrLegend object provides a simple interface for displaying a legend. The legend itself consists of a (filled and/or framed) box around one or more legend items (arranged in a single column) and an optional title string. Each legend item consists of a glyph patch positioned to the left of a text string. The glyph patch is drawn in a square which is a fraction of the legend label font height. The glyph itself can be in one of two types (see the TYPE keyword). In line type, the glyph is a line segment with line style, thickness and color attributes and an optional symbol object drawn over it. In fill type, the glyph is a square patch drawn with color and optional pattern object attributes.

An IDLgrLegend object is a composite object; it is one of the basic drawable elements of the IDL Object Graphics system, and it is not a container for other objects.

This object class is implemented in the IDL language. Its source code can be found in the file `idlgrlegend_``_define.pro` in the `lib` subdirectory of the IDL distribution.

## Dimensions

Until the legend is drawn to the destination object, the [XYZ]RANGE properties will be zero. Because you must know the size of the legend object in order to scale it properly for your window, you must use the ComputeDimensions method on the legend object to get the data dimensions of the legend prior to a draw operation.

The following example builds and displays a three-element legend.

; Create a window, view, and model:

mywindow = OBJ_NEW('IDLgrWindow')

myview = OBJ_NEW('IDLgrView')

mymodel = OBJ_NEW('IDLgrModel')

myview->Add, mymodel

; Create the legend with two items:

itemNameArr = ['Original Data', 'Histogram Plot', $

'Boxcar-filtered (Width=5)']

mytitle = OBJ_NEW('IDLgrText', 'Plot Legend')

mysymbol = OBJ_NEW('IDLgrSymbol', 5, SIZE=[0.3, 0.3])

myLegend = OBJ_NEW('IDLgrLegend', itemNameArr, TITLE=mytitle, $

BORDER_GAP=0.8, GAP=0.5, $

ITEM_TYPE=[0,1], ITEM_LINESTYLE=[0,4,2], $

ITEM_OBJECT=[mysymbol, OBJ_NEW(), OBJ_NEW()], $

GLYPH_WIDTH=2.0, /SHOW_OUTLINE)

; Add the legend to the model:

mymodel->Add, mylegend

; Center the legend in the window.

; Note that you must use the ComputeDimensions method

; to get the dimensions of the legend.

dims = mylegend->ComputeDimensions(mywindow)

mymodel->Translate, -(dims[0]/2.), -(dims[1]/2.), 0

; Draw the legend:

mywindow->Draw, myview

## Superclasses

IDLgrModel

IDLitComponent

## Creation

See IDLgrLegend::Init.

## Properties

Objects of this class have the following properties. See IDLgrLegend Properties for details on individual properties.

- ALL
- BORDER_GAP
- COLUMNS
- FILL_COLOR
- FONT
- GAP
- GLYPH_WIDTH
- HIDE
- ITEM_COLOR
- ITEM_LINESTYLE
- ITEM_NAME
- ITEM_OBJECT
- ITEM_THICK
- ITEM_TYPE
- OUTLINE_COLOR
- OUTLINE_THICK
- PARENT
- RECOMPUTE
- SHOW_FILL
- SHOW_OUTLINE
- TEXT_COLOR
- TITLE
- XCOORD_CONV
- XRANGE
- YCOORD_CONV
- YRANGE
- ZCOORD_CONV
- ZRANGE

In addition, objects of this class inherit the properties of all superclasses of this class.

## Methods

This class has the following methods:

- IDLgrLegend::Cleanup
- IDLgrLegend::ComputeDimensions
- IDLgrLegend::GetProperty
- IDLgrLegend::Init
- IDLgrLegend::Remove
- IDLgrLegend::SetProperty

In addition, this class inherits the methods of its superclasses (if any).

## Version History

5.1 | Introduced