.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Tickit::Widget::Box 3pm" .TH Tickit::Widget::Box 3pm "2018-07-30" "perl v5.26.2" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" "Tickit::Widget::Box" \- apply spacing and positioning to a widget .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& use Tickit; \& use Tickit::Widget::Box; \& use Tickit::Widget::Static; \& \& my $box = Tickit::Widget::Box\->new( \& bg => "green", \& child_lines => "80%", \& child_cols => "80%", \& child => Tickit::Widget::Static\->new( \& text => "Hello, world!", \& bg => "black", \& align => "centre", \& valign => "middle", \& ), \& ); \& \& Tickit\->new( root => $box )\->run; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This subclass of Tickit::SingleChildWidget can apply spacing around the outside of a given child widget. The size of the Box is controlled by the size of the child widget bounded by the given limits, allowing it to enforce a given minimum or maximum size in each of the horizontal and vertical directions. By setting both the minimum and maximum size to the same value, the exact size of the child widget can be controlled. .PP Limits can be specified either as absolute values, or as a percentage of the maxmium available space. .PP If the Box is given more space to use than the child widget will consume, the child will be placed somewhere within the space, at a position that is controllable using the \f(CW\*(C`align\*(C'\fR and \f(CW\*(C`valign\*(C'\fR properties, as defined by Tickit::WidgetRole::Alignable. .SH "STYLE" .IX Header "STYLE" The default style pen is used as the widget pen. .PP Note that while the widget pen is mutable and changes to it will result in immediate redrawing, any changes made will be lost if the widget style is changed. .SH "CONSTRUCTOR" .IX Header "CONSTRUCTOR" .ie n .SS "$box = Tickit::Widget::Box\->new( %args )" .el .SS "\f(CW$box\fP = Tickit::Widget::Box\->new( \f(CW%args\fP )" .IX Subsection "$box = Tickit::Widget::Box->new( %args )" In addition to the constructor arguments allowed by \f(CW\*(C`Tickit::Widget\*(C'\fR and \&\f(CW\*(C`Tickit::SingleChildWidget\*(C'\fR, this constructor also recognises the following named arguments: .IP "child_{lines,cols}_{min,max} => \s-1NUM\s0 or \s-1STRING\s0" 8 .IX Item "child_{lines,cols}_{min,max} => NUM or STRING" Initial values for size limit options. .IP "child_{lines,cols} => \s-1NUM\s0 or \s-1STRING\s0" 8 .IX Item "child_{lines,cols} => NUM or STRING" Initial values for size forcing options. .IP "align => \s-1NUM\s0 or \s-1STRING\s0" 8 .IX Item "align => NUM or STRING" .PD 0 .IP "valign => \s-1NUM\s0 or \s-1STRING\s0" 8 .IX Item "valign => NUM or STRING" .PD Initial values for alignment options. .SH "METHODS" .IX Header "METHODS" The following methods all accept either absolute sizes, specified in integers, or percentages, specified in strings of the form \f(CW\*(C`10%\*(C'\fR. If a percentage is given it specifies a size that is a fraction of the total amount that is available to the Box. .ie n .SS "$min = $box\->child_lines_min" .el .SS "\f(CW$min\fP = \f(CW$box\fP\->child_lines_min" .IX Subsection "$min = $box->child_lines_min" .ie n .SS "$box\->set_child_lines_min( $min )" .el .SS "\f(CW$box\fP\->set_child_lines_min( \f(CW$min\fP )" .IX Subsection "$box->set_child_lines_min( $min )" .ie n .SS "$min = $box\->child_cols_min" .el .SS "\f(CW$min\fP = \f(CW$box\fP\->child_cols_min" .IX Subsection "$min = $box->child_cols_min" .ie n .SS "$box\->set_child_cols_min( $min )" .el .SS "\f(CW$box\fP\->set_child_cols_min( \f(CW$min\fP )" .IX Subsection "$box->set_child_cols_min( $min )" Accessors for the child size minimum limits. If the child widget requests a size smaller than these limits, the allocated Window will be resized up to at least these sizes. .ie n .SS "$max = $box\->child_lines_max" .el .SS "\f(CW$max\fP = \f(CW$box\fP\->child_lines_max" .IX Subsection "$max = $box->child_lines_max" .ie n .SS "$box\->set_child_lines_max( $max )" .el .SS "\f(CW$box\fP\->set_child_lines_max( \f(CW$max\fP )" .IX Subsection "$box->set_child_lines_max( $max )" .ie n .SS "$max = $box\->child_cols_max" .el .SS "\f(CW$max\fP = \f(CW$box\fP\->child_cols_max" .IX Subsection "$max = $box->child_cols_max" .ie n .SS "$box\->set_child_cols_max( $max )" .el .SS "\f(CW$box\fP\->set_child_cols_max( \f(CW$max\fP )" .IX Subsection "$box->set_child_cols_max( $max )" Accessors for the child size maximum limits. If the child widget requests a size larger than these limits, the allocated Window will be resized down to at most these sizes. .ie n .SS "$box\->set_child_lines( $size )" .el .SS "\f(CW$box\fP\->set_child_lines( \f(CW$size\fP )" .IX Subsection "$box->set_child_lines( $size )" .ie n .SS "$box\->set_child_cols( $size )" .el .SS "\f(CW$box\fP\->set_child_cols( \f(CW$size\fP )" .IX Subsection "$box->set_child_cols( $size )" Convenient shortcut mutators that set both the minimum and maximum limit to the same value. This has the effect of forcing the size of the child widget. .SH "AUTHOR" .IX Header "AUTHOR" Paul Evans