.\" Automatically generated by Pod::Man 4.11 (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 .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" 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::Frame 3pm" .TH Tickit::Widget::Frame 3pm "2020-11-04" "perl v5.30.3" "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::Frame" \- draw a frame around another widget .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& 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; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This container widget draws a frame around a single child widget. .SH "STYLE" .IX Header "STYLE" The default style pen is used as the widget pen. The following style pen prefixes are also used: .IP "frame => \s-1PEN\s0" 4 .IX Item "frame => PEN" The pen used to render the frame lines .PP The following style keys are used: .IP "linetype => \s-1STRING\s0" 4 .IX Item "linetype => STRING" Controls the type of line characters used to draw the frame. Must be one of the following names: .Sp .Vb 1 \& ascii single double thick solid_inside solid_outside .Ve .Sp The \f(CW\*(C`ascii\*(C'\fR linetype is default, and uses only the \f(CW\*(C`\-|+\*(C'\fR \s-1ASCII\s0 characters. Other linetypes use Unicode box-drawing characters. These may not be supported by all terminals or fonts. .IP "linetype_top => \s-1STRING\s0" 4 .IX Item "linetype_top => STRING" .PD 0 .IP "linetype_bottom => \s-1STRING\s0" 4 .IX Item "linetype_bottom => STRING" .IP "linetype_left => \s-1STRING\s0" 4 .IX Item "linetype_left => STRING" .IP "linetype_right => \s-1STRING\s0" 4 .IX Item "linetype_right => STRING" .PD Overrides the \f(CW\*(C`linetype\*(C'\fR attribute for each side of the frame specifically. If two line-drawing styles meet at corners they should be drawn correctly if \&\f(CW\*(C`Tickit::RenderBuffer\*(C'\fR 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. .Sp Any edge's linetype may be set to \f(CW\*(C`none\*(C'\fR to cause that edge not to have a line at all; no extra space will be consumed on that side. .SH "CONSTRUCTOR" .IX Header "CONSTRUCTOR" .SS "new" .IX Subsection "new" .Vb 1 \& $frame = Tickit::Widget::Frame\->new( %args ) .Ve .PP Constructs a new \f(CW\*(C`Tickit::Widget::Static\*(C'\fR object. .PP Takes the following named arguments in addition to those taken by the base Tickit::SingleChildWidget constructor: .IP "title => \s-1STRING\s0" 8 .IX Item "title => STRING" Optional. .IP "title_align => FLOAT|STRING" 8 .IX Item "title_align => FLOAT|STRING" Optional. Defaults to \f(CW0.0\fR if unspecified. .PP For more details see the accessors below. .SH "ACCESSORS" .IX Header "ACCESSORS" .SS "title" .IX Subsection "title" .Vb 1 \& $title = $frame\->title .Ve .SS "set_title" .IX Subsection "set_title" .Vb 1 \& $frame\->set_title( $title ) .Ve .PP Accessor for the \f(CW\*(C`title\*(C'\fR property, a string written in the top of the frame. .SS "title_align" .IX Subsection "title_align" .SS "set_title_align" .IX Subsection "set_title_align" .Vb 1 \& $title_align = $frame\->title_align \& \& $frame\->set_title_align( $title_align ) .Ve .PP Accessor for the \f(CW\*(C`title_align\*(C'\fR property. Gives a vlaue in the range \f(CW0.0\fR to \&\f(CW1.0\fR to align the title in the top of the frame. .PP See also Tickit::WidgetRole::Alignable. .SH "TODO" .IX Header "TODO" .IP "\(bu" 4 Specific pen for title. Layered on top of frame pen. .IP "\(bu" 4 Caption at the bottom of the frame as well. Identical to title. .IP "\(bu" 4 Consider if it's useful to provide accessors to apply extra padding inside the frame, surrounding the child window. .SH "AUTHOR" .IX Header "AUTHOR" Paul Evans