NAME
Tickit::Widget::Frame
- draw a frame around another widget
SYNOPSIS
use Tickit;
use Tickit::Widget::Frame;
use Tickit::Widget::Static;
my $frame = Tickit::Widget::Frame->new(
style => { linetype => "single" },
)
->set_child(
Tickit::Widget::Static->new(
text => "Hello, world",
align => "centre",
valign => "middle",
)
);
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:
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. - linetype_top => STRING
- linetype_bottom => STRING
- linetype_left => STRING
- linetype_right => STRING
-
Overrides the
linetype
attribute for each side of the frame specifically. If two line-drawing styles meet at corners they should be drawn correctly ifTickit::RenderBuffer
can combine the line segments, but in other circumstances the corners are drawn as extensions of the top or bottom line, and the left and right lines do not meet it.Any edge's linetype may be set to
none
to cause that edge not to have a line at all; no extra space will be consumed on that side.
CONSTRUCTOR
new
$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:
For more details see the accessors below.
ACCESSORS
title
$title = $frame->title;
set_title
$frame->set_title( $title );
Accessor for the title
property, a string written in the top of the frame.
title_align
set_title_align
$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>