The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Tickit::Widget::Frame - draw a frame around another widget

SYNOPSIS

 use Tickit;
 use Tickit::Widget::Frame;
 use Tickit::Widget::Static;

 my $hello = Tickit::Widget::Static->new(
    text   => "Hello, world",
    align  => "centre",
    valign => "middle",
 );

 my $frame = Tickit::Widget::Frame->new;

 $frame->add( $hello );

 Tickit->new( root => $frame )->run;

DESCRIPTION

This container widget draws a frame around a single child widget.

STYLE

The default style pen is used as the widget pen. The following style pen prefixes are also used:

frame => PEN

The pen used to render the frame lines

The following style keys are used:

linetype => STRING

Controls the type of line characters used to draw the frame. Must be one of the following names:

 ascii single double thick solid_inside solid_outside

The ascii linetype is default, and uses only the -|+ ASCII characters. Other linetypes use Unicode box-drawing characters. These may not be supported by all terminals or fonts.

CONSTRUCTOR

$frame = Tickit::Widget::Frame->new( %args )

Constructs a new Tickit::Widget::Static object.

Takes the following named arguments in addition to those taken by the base Tickit::SingleChildWidget constructor:

title => STRING

Optional.

title_align => FLOAT|STRING

Optional. Defaults to 0.0 if unspecified.

For more details see the accessors below.

ACCESSORS

$linetype = $frame->linetype

$title = $frame->title

$frame->set_title( $title )

Accessor for the title property, a string written in the top of the frame.

$title_align = $frame->title_align

$frame->set_title_align( $title_align )

Accessor for the title_align property. Gives a vlaue in the range 0.0 to 1.0 to align the title in the top of the frame.

See also Tickit::WidgetRole::Alignable.

TODO

  • Specific pen for title. Layered on top of frame pen.

  • Caption at the bottom of the frame as well. Identical to title.

  • Consider if it's useful to provide accessors to apply extra padding inside the frame, surrounding the child window.

AUTHOR

Paul Evans <leonerd@leonerd.org.uk>