Prima::Label - static text widget


The class is designed for display of text, and assumes no user interaction. The text output capabilities include wrapping, horizontal and vertical alignment, and automatic widget resizing to match text extension. If text contains a tilde-escaped ( hot ) character, the label can explicitly focus the specified widget upon press of the character key, what feature is useful for dialog design.

Labels can display rich text with links. See Prima::Drawable::Markup for more.


        use Prima qw(Label InputLine Application);
        my $w = Prima::MainWindow->new;
        $w->insert( 'Prima::Label',
                text      => 'Enter ~name:',
                focusLink => 'InputLine1',
                alignment => ta::Center,
                pack => { fill => 'x', side => 'top', pad => 10 },
                text => '',
                pack => { fill => 'x', side => 'top', pad => 10 },
        run Prima;



alignment INTEGER

One of the following ta::XXX constants:


Selects the horizontal text alignment.

Default value: ta::Left

autoHeight BOOLEAN

If 1, the widget height is automatically changed as text extensions change.

Default value: 0

autoWidth BOOLEAN

If 1, the widget width is automatically changed as text extensions change.

Default value: 1

Points to a widget or a widget name (has to be a sibling widget), which is explicitly focused when the user presses the combination of a hot key with the Alt key.

Prima::Label does not provide a separate property to access the hot key value, however it can be read from the {accel} variable.

Default value: undef.

hotKey CHAR

A key (defined by CHAR) that the label will react to if pressed, if the label has the focus The combination ALT + Key works always if the label has the focus or not

showAccelChar BOOLEAN

If 0, the tilde ( ~ ) character is collapsed from the text, and the hot character is underlined. When the user presses combination of the escaped character with the Alt key, the focusLink widget is explicitly focused.

If 1, the text is showed as is, and no hot character is underlined. Key combinations with Alt key are not recognized. See also: hotKey.

Default value: 0

showPartial BOOLEAN

Used to determine if the last line of text should be drawn if it can not be vertically fit in the widget interior. If 1, the last line is shown even if not visible in full. If 0, only full lines are drawn.

Default value: 1

textJustify $BOOL | { letter => 0, word => 0, kashida => 0, min_kashida => 0 } | %VALUES

If set, justifies wrapped text according to the option passwd in the hash ( see "arabic_justify" in Prima::Drawable::Glyphs and "interspace_justify" in Prima::Drawable::Glyphs ). Can accept three forms:

If anonymous hash is used, overwrites all the currently defined options.

If $BOOL is used, treated as a shortcut for { letter => $BOOL, word => $BOOL, kashida => $BOOL }; consequent get-calls return full hash, not the $BOOL.

If %VALUES form is used, overwrites only values found in %VALUES.

Only actual when wordWrap is set.

textDirection BOOLEAN

If set, indicates RTL text direction.

wordWrap BOOLEAN

If 1, the text is wrapped if it can not be horizontally fit in the widget interior.

If 0, the text is not wrapped unless new line characters are present in the text.

New line characters signal line wrapping with no respect to wordWrap property value.

Default value: 0

valignment INTEGER

One of the following ta::XXX constants:

        ta::Middle or ta::Center

Selects the vertical text alignment.

NB: ta::Middle value is not equal to ta::Center's, however the both constants produce equal effect here.

Default value: ta::Top


Dmitry Karasik, <>.


Prima, Prima::Widget, Prima::Drawable::Markup, Prima::Widget::Links, examples/