org.gnu.gtk
Class Label

java.lang.Object
  extended by org.gnu.glib.Struct
      extended by org.gnu.glib.GObject
          extended by org.gnu.gtk.GtkObject
              extended by org.gnu.gtk.Widget
                  extended by org.gnu.gtk.Misc
                      extended by org.gnu.gtk.Label
Direct Known Subclasses:
AccelLabel

public class Label
extends Misc

The Label widget displays a small amount of text. As the name implies, most labels are used to label another widget such as a Button, a MenuItem, or a OptionMenu.

Mnemonics

Labels may contain mnemonics. Mnemonics are underlined characters in the label, used for keyboard navigation. Mnemonics are created by providing a string with an underscore before the mnemonic character, such as "_File", to the constructor or setText method, with the hadMnemonic parameter true.

Mnemonics automatically activate any activatable widget the label is inside, such as a Button; if the label is not inside the mnemonic's target widget, you have to tell the label about the target using setMnemonicWidget.

Markup (Styled Text)

To make it easy to format text in a label (changing colors, fonts, etc.), label text can be provided in a simple markup format. Here's how to create a label with a small font:

 label = new Label("");
 label.setMarkup("<small>Small text</small>");
 
(See complete documentation of available tags in the Pango manual.)

The markup passed to setMarkup must be valid; for example, literal </>/& characters must be escaped as &lt;, &gt;, and &amp;. If you pass text obtained from the user, file, or a network to setMarkup, you'll want to escape it with g_markup_escape_text().

Markup strings are just a convenient way to set the PangoAttrList on a label; setAttributes may be a simpler way to set attributes in some cases. Be careful though; PangoAttrList tends to cause internationalization problems, unless you're applying attributes to the entire string . The reason is that specifying the startIndex and endIndex for a PangoAttribute requires knowledge of the exact string being displayed, so translations will cause problems.

Selectable labels

Labels can be made selectable with setSelectable. Selectable labels allow the user to copy the label contents to the clipboard. Only labels that contain useful-to-copy information - such as error messages - should be made selectable.

Text Layout

A label can contain any number of paragraphs, but will have performance problems if it contains more than a small number. Paragraphs are separated by newlines or other paragraph separators understood by Pango.

Labels can automatically wrap text if you call setLineWrap.

setJustify sets how the lines in a label align with one another. If you want to set how the label as a whole aligns in its available space, see gtk.Misc.setAlignment.


Constructor Summary
Label(org.gnu.glib.Handle handle)
          Construct a label using a handle to a native resource.
Label(java.lang.String caption)
          Creates a new label widget displaying the given caption.
Label(java.lang.String caption, boolean hasMnemonic)
          Creates a new label widget displaying the given caption.
 
Method Summary
 double getAngle()
          Gets the angle of rotation for the label.
 AttrList getAttributes()
          Gets the attribute list that was set on the label using setAttributes, if any.
 EllipsizeMode getEllipsize()
          Returns the ellipsizing position.
 Justification getJustification()
          Returns the justification of the label.
 java.lang.String getLabel()
          Fetches the text from a label widget including any embedded underlines indicating mnemonics and Pango markup.
static Label getLabel(org.gnu.glib.Handle handle)
          Construct a label using a handle to a native resource.
 boolean getLineWrap()
          Returns whether lines in the label are automatically wrapped.
 int getMaxWidthChars()
          Retrieves the desired maximum width of label, in characters.
 Widget getMnemonicWidget()
          Retrieves the target of the mnemonic (keyboard shortcut) of this label
 boolean getSelectable()
          Gets the value set by setSelectable.
 boolean getSelected()
          Returns true if any part of the label is selected
 int getSelectionEnd()
          Returns the index of the end of the selected test.
 int getSelectionStart()
          Returns the index of the start of the selected text.
 boolean getSingleLineMode()
          Returns whether the label is in single line mode.
 java.lang.String getText()
          Returns the text which is being displayed on this label.
static Type getType()
          Retrieve the runtime type used by the GLib library.
 boolean getUseMarkup()
          Returns whether the label's text is interpreted as marked up with the Pango text markup language.
 boolean getUseMnemonic()
          Returns whether an embedded underline in the label indicates a mnemonic.
 int getWidthChars()
          Retrieves the desired width of label, in characters.
 void select(int startOffset, int endOffset)
          Selects a range of characters in the label, if the label is selectable.
 void setAngle(double angle)
          Sets the angle of rotation for the label.
 void setAttributes(AttrList attributes)
          Sets a PangoAttrList; the attributes in the list are applied to the label text.
 void setEllipsize(EllipsizeMode mode)
          Sets the mode used to ellipsize (add an ellipsis: "...") the text if there is not enough space to render the entire string.
 void setJustification(Justification justification)
          Sets the alignment of the lines in the text of the label relative to each other.
 void setLabel(java.lang.String label)
          Sets the text of the label.
 void setLineWrap(boolean wrap)
          Toggles line wrapping within the Label widget.
 void setMarkup(java.lang.String markup)
          Parses markup which is marked up with the Pango text markup language, setting the label's text and attribute list based on the parse results.
 void setMarkup(java.lang.String markup, boolean hasMnemonic)
          Parses markup which is marked up with the Pango text markup language, setting the label's text and attribute list based on the parse results.
 void setMaxWidthChars(int chars)
          Sets the desired maximum width in characters to chars.
 void setMnemonicWidget(Widget widget)
          If the label has been set so that it has an mnemonic key, the label can be associated with a widget that is the target of the mnemonic.
 void setSelectable(boolean setting)
          Selectable labels allow the user to select text from the label, for copy-and-paste.
 void setSingleLineMode(boolean singleLineMode)
          Sets whether the label is in single line mode.
 void setText(java.lang.String caption)
          Changes the text to be displayed in the label widget.
 void setUnderlinePattern(java.lang.String pattern)
          The pattern of underlines you want under the existing text within the Label widget.
 void setUseMarkup(boolean setting)
          Sets whether the text of the label contains markup in Pango's text markup language.
 void setUseMnemonic(boolean setting)
          If true, an underline in the text indicates the next character should be used for the mnemonic accelerator key.
 void setWidthChars(int chars)
          Sets the desired width in characters of label to chars.
 
Methods inherited from class org.gnu.gtk.Misc
getXAlign, getXPadding, getYAlign, getYPadding, setAlignment, setPadding
 
Methods inherited from class org.gnu.gtk.Widget
activate, addAccelerator, addEvents, addListener, addListener, addListener, addListener, addListener, addListener, addListener, addListener, addListener, addListener, addListener, canActivateAccel, createContext, createLayout, draw, drawArea, drawArea, finish, getAccessible, getAllocation, getCanFocus, getColormap, getContext, getData, getDisplay, getDragData, getEventListenerClass, getEventType, getExtensionEvents, getModifierStyle, getName, getParent, getParentWindow, getPointer, getRootWindow, getScreen, getSensitive, getStyle, getToplevel, getWidget, getWindow, grabDefault, grabFocus, hasFocus, hasScreen, hide, hideAll, highlight, highlight, intersect, isAncestor, makeWidget, modifyStyle, popColormap, pushColormap, realize, removeAccelerator, removeListener, removeListener, removeListener, removeListener, removeListener, removeListener, removeListener, removeListener, removeListener, removeListener, removeListener, reparent, setBackgroundColor, setBaseColor, setCanFocus, setColormap, setDoubleBuffered, setDragDestination, setDragIcon, setDragIconPixbuf, setDragIconStock, setDragSource, setEvents, setExtensionEvents, setFont, setForegroundColor, setMinimumSize, setName, setNoDragDestination, setNoDragSource, setSensitive, setTextColor, shapeCombineMask, show, showAll, unHighlight, unHighlight
 
Methods inherited from class org.gnu.gtk.GtkObject
destroy, sink
 
Methods inherited from class org.gnu.glib.GObject
addEventHandler, addEventHandler, addEventHandler, addEventHandler, addEventHandler, addEventHandler, addEventHandler, addListener, collect, freezeNotify, getBooleanProperty, getData, getDoubleProperty, getFloatProperty, getGObjectFromHandle, getIntProperty, getJavaObjectProperty, getLongProperty, getPixbufProperty, getProperty, getStringProperty, hasProperty, notify, removeEventHandler, removeListener, setBooleanProperty, setData, setDoubleProperty, setFloatProperty, setIntProperty, setJavaObjectProperty, setLongProperty, setPixbufProperty, setProperty, setStringProperty, thawNotify
 
Methods inherited from class org.gnu.glib.Struct
equals, getHandle, getNullHandle, hashCode
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Label

public Label(java.lang.String caption)
Creates a new label widget displaying the given caption. Mnemonic characters are not interpreted if this constructor is used.

Parameters:
caption - The default text to be displayed on the label

Label

public Label(java.lang.String caption,
             boolean hasMnemonic)
Creates a new label widget displaying the given caption.

Parameters:
caption - The default text to be displayed on the label
hasMnemonic - If true, the caption is interpreted to have mnemonic characters. See the description for this class for more details.

Label

public Label(org.gnu.glib.Handle handle)
Construct a label using a handle to a native resource.

Method Detail

getLabel

public static Label getLabel(org.gnu.glib.Handle handle)
Construct a label using a handle to a native resource.


setText

public void setText(java.lang.String caption)
Changes the text to be displayed in the label widget.

Parameters:
caption - the new text to be displayed.

getText

public java.lang.String getText()
Returns the text which is being displayed on this label.

Returns:
the text which is being displayed.

setAttributes

public void setAttributes(AttrList attributes)
Sets a PangoAttrList; the attributes in the list are applied to the label text. The attributes set with this function will be ignored if Mnemonics or markup are being used.

Parameters:
attributes - Pange attrlist attributes to use
See Also:
AttrList

getAttributes

public AttrList getAttributes()
Gets the attribute list that was set on the label using setAttributes, if any. This function does not reflect attributes that come from the labels markup (see setMarkup). If you want to get the effective attributes for the label, use pango.layout.getAttribute

Returns:
the Pango Attributes list

setLabel

public void setLabel(java.lang.String label)
Sets the text of the label.

Parameters:
label - The new text to set for the label

getLabel

public java.lang.String getLabel()
Fetches the text from a label widget including any embedded underlines indicating mnemonics and Pango markup.

Returns:
The entry text of the label.

setMarkup

public void setMarkup(java.lang.String markup)
Parses markup which is marked up with the Pango text markup language, setting the label's text and attribute list based on the parse results. The markup should not contain mnemonic characters if this method is used.

Parameters:
markup - String containing pango markup

setMarkup

public void setMarkup(java.lang.String markup,
                      boolean hasMnemonic)
Parses markup which is marked up with the Pango text markup language, setting the label's text and attribute list based on the parse results.

Parameters:
markup - String containing pango markup
hasMnemonic - If true, the markup string will be interpreted to contain mnemonic characters, for use as keyboard accelerators

setUseMarkup

public void setUseMarkup(boolean setting)
Sets whether the text of the label contains markup in Pango's text markup language.

Parameters:
setting - TRUE if the label's text should be parsed for markup.
See Also:
setMarkup(String, boolean)

getUseMarkup

public boolean getUseMarkup()
Returns whether the label's text is interpreted as marked up with the Pango text markup language.

Returns:
TRUE if the label's text will be parsed for markup.
See Also:
setUseMarkup(boolean)

getUseMnemonic

public boolean getUseMnemonic()
Returns whether an embedded underline in the label indicates a mnemonic.

Returns:
Whether an embedded underline in the label indicates the mnemonic accelerator keys.
See Also:
setUseMnemonic(boolean)

setUseMnemonic

public void setUseMnemonic(boolean setting)
If true, an underline in the text indicates the next character should be used for the mnemonic accelerator key.

Parameters:
setting - TRUE if underlines in the text indicate mnemonics

setMnemonicWidget

public void setMnemonicWidget(Widget widget)
If the label has been set so that it has an mnemonic key, the label can be associated with a widget that is the target of the mnemonic. When the label is inside a widget (like a Button or a Notebook tab) it is automatically associated with the correct widget, but sometimes (i.e. when the target is an Entry next to the label) you need to set it explicitly using this function.

The target widget will be accelerated by emitting "mnemonic_activate" on it. The default handler for this signal will activate the widget if there are no mnemonic collisions and toggle focus between the colliding widgets otherwise.

Parameters:
widget - The target widget

getMnemonicWidget

public Widget getMnemonicWidget()
Retrieves the target of the mnemonic (keyboard shortcut) of this label

Returns:
Target Widget

setJustification

public void setJustification(Justification justification)
Sets the alignment of the lines in the text of the label relative to each other. Justification.LEFT is the default value when the widget is first created. If you instead want to set the alignment of the label as a whole, use Misc.setAlignment instead. setJustify has no effect on labels containing only a single line.


getJustification

public Justification getJustification()
Returns the justification of the label.

Returns:
the justification of the label
See Also:
setJustification(Justification)

setUnderlinePattern

public void setUnderlinePattern(java.lang.String pattern)
The pattern of underlines you want under the existing text within the Label widget. For example if the current text of the label says "FooBarBaz" passing a pattern of "___ ___" will underline "Foo" and "Baz" but not "Bar".

Parameters:
pattern - The pattern as described above.

setLineWrap

public void setLineWrap(boolean wrap)
Toggles line wrapping within the Label widget. TRUE makes it break lines if text exceeds the widget's size. FALSE lets the text get cut off by the edge of the widget if it exceeds the widget size.

Parameters:
wrap - New line wrap setting.

getLineWrap

public boolean getLineWrap()
Returns whether lines in the label are automatically wrapped.

Returns:
True if lines are automatically wrapped

setSelectable

public void setSelectable(boolean setting)
Selectable labels allow the user to select text from the label, for copy-and-paste.

Parameters:
setting - TRUE to allow selecting text in the label

getSelectable

public boolean getSelectable()
Gets the value set by setSelectable.

Returns:
TRUE if the user can copy text from the label.

select

public void select(int startOffset,
                   int endOffset)
Selects a range of characters in the label, if the label is selectable. If the label is not selectable, this function has no effect. If startOffset or endOffset are -1, then the end of the label will be substituted.

Parameters:
startOffset - The start offset in characters
endOffset - The end offset in characters
See Also:
setSelectable(boolean)

getSelected

public boolean getSelected()
Returns true if any part of the label is selected


getSelectionStart

public int getSelectionStart()
Returns the index of the start of the selected text. If the text is not selected, this returns -1;


getSelectionEnd

public int getSelectionEnd()
Returns the index of the end of the selected test. If no text is selected, this returns -1.


setWidthChars

public void setWidthChars(int chars)
Sets the desired width in characters of label to chars.

Parameters:
chars - the new desired width, in characters.
Since:
2.6

getWidthChars

public int getWidthChars()
Retrieves the desired width of label, in characters.

Returns:
the width of the label in characters.
Since:
2.6
See Also:
setWidthChars(int)

setMaxWidthChars

public void setMaxWidthChars(int chars)
Sets the desired maximum width in characters to chars.

Parameters:
chars - the new desired maximum width, in characters.
Since:
2.6

getMaxWidthChars

public int getMaxWidthChars()
Retrieves the desired maximum width of label, in characters.

Returns:
the maximum width of the label in characters.
Since:
2.6
See Also:
setMaxWidthChars(int)

setAngle

public void setAngle(double angle)
Sets the angle of rotation for the label. An angle of 90 reads from from bottom to top, an angle of 270, from top to bottom. The angle setting for the label is ignored if the label is selectable, wrapped, or ellipsized.

Parameters:
angle - the angle that the baseline of the label makes with the horizontal, in degrees, measured counterclockwise
Since:
2.6

getAngle

public double getAngle()
Gets the angle of rotation for the label.

Returns:
the angle of rotation for the label
Since:
2.6
See Also:
setAngle(double)

setSingleLineMode

public void setSingleLineMode(boolean singleLineMode)
Sets whether the label is in single line mode.

Parameters:
singleLineMode - true if the label should be in single line mode
Since:
2.6

getSingleLineMode

public boolean getSingleLineMode()
Returns whether the label is in single line mode.

Returns:
true when the label is in single line mode.
Since:
2.6

setEllipsize

public void setEllipsize(EllipsizeMode mode)
Sets the mode used to ellipsize (add an ellipsis: "...") the text if there is not enough space to render the entire string.

Since:
2.6

getEllipsize

public EllipsizeMode getEllipsize()
Returns the ellipsizing position.

Since:
2.6

getType

public static Type getType()
Retrieve the runtime type used by the GLib library.