.\" 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::RadioButton 3pm" .TH Tickit::Widget::RadioButton 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::RadioButton" \- a widget allowing a selection from multiple options .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 3 \& use Tickit; \& use Tickit::Widget::RadioButton; \& use Tickit::Widget::VBox; \& \& my $group = Tickit::Widget::RadioButton::Group\->new; \& \& my $vbox = Tickit::Widget::VBox\->new; \& $vbox\->add( Tickit::Widget::RadioButton\->new( \& caption => "Radio button $_", \& group => $group, \& ) ) for 1 .. 5; \& \& Tickit\->new( root => $vbox )\->run; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This class provides a widget which allows a selection of one value from a group of related options. It provides a clickable area and a visual indication of which button in the group is the one currently active. Selecting a new button within a group will unselect the previously-selected one. .PP This widget is part of an experiment in evolving the design of the Tickit::Style widget integration code, and such is subject to change of details. .SH "STYLE" .IX Header "STYLE" The default style pen is used as the widget pen. The following style pen prefixes are also used: .IP "tick => \s-1PEN\s0" 4 .IX Item "tick => PEN" The pen used to render the tick marker .PP The following style keys are used: .IP "tick => \s-1STRING\s0" 4 .IX Item "tick => STRING" The text used to indicate the active button .IP "spacing => \s-1INT\s0" 4 .IX Item "spacing => INT" Number of columns of spacing between the tick mark and the caption text .PP The following style tags are used: .IP ":active" 4 .IX Item ":active" Set when this button is the active one of the group. .PP The following style actions are used: .IP "activate" 4 .IX Item "activate" The main action to activate the \f(CW\*(C`on_click\*(C'\fR handler. .SH "CONSTRUCTOR" .IX Header "CONSTRUCTOR" .SS "new" .IX Subsection "new" .Vb 1 \& $radiobutton = Tickit::Widget::RadioButton\->new( %args ) .Ve .PP Constructs a new \f(CW\*(C`Tickit::Widget::RadioButton\*(C'\fR object. .PP Takes the following named argmuents .IP "label => \s-1STRING\s0" 8 .IX Item "label => STRING" The label text to display alongside this button. .IP "group => Tickit::Widget::RadioButton::Group" 8 .IX Item "group => Tickit::Widget::RadioButton::Group" Optional. If supplied, the group that the button should belong to. If not supplied, a new group will be constructed that can be accessed using the \&\f(CW\*(C`group\*(C'\fR accessor. .IP "value => \s-1SCALAR\s0" 8 .IX Item "value => SCALAR" Optional. If supplied, used to set the button's identification value, which is passed to the group's \f(CW\*(C`on_changed\*(C'\fR callback. .SH "ACCESSORS" .IX Header "ACCESSORS" .SS "group" .IX Subsection "group" .Vb 1 \& $group = $radiobutton\->group .Ve .PP Returns the \f(CW\*(C`Tickit::Widget::RadioButton::Group\*(C'\fR this button belongs to. .SS "label" .IX Subsection "label" .SS "set_label" .IX Subsection "set_label" .Vb 1 \& $label = $radiobutton\->label \& \& $radiobutton\->set_label( $label ) .Ve .PP Returns or sets the label text of the button. .SS "on_toggle" .IX Subsection "on_toggle" .Vb 1 \& $on_toggle = $radiobutton\->on_toggle .Ve .SS "set_on_toggle" .IX Subsection "set_on_toggle" .Vb 1 \& $radiobutton\->set_on_toggle( $on_toggle ) .Ve .PP Return or set the \s-1CODE\s0 reference to be called when the button state is changed. .PP .Vb 1 \& $on_toggle\->( $radiobutton, $active ) .Ve .PP When the radio tick mark moves from one button to another, the old button is marked unactive before the new one is marked active. .SS "value" .IX Subsection "value" .Vb 1 \& $value = $radiobutton\->value .Ve .SS "set_value" .IX Subsection "set_value" .Vb 1 \& $radiobutton\->set_value( $value ) .Ve .PP Return or set the scalar value used to identify the radio button to the group's \f(CW\*(C`on_changed\*(C'\fR callback. This can be any scalar value; it is simply stored by the button and not otherwise used. .SH "METHODS" .IX Header "METHODS" .SS "activate" .IX Subsection "activate" .Vb 1 \& $radiobutton\->activate .Ve .PP Sets this button as the active member of the group, deactivating the previous one. .SS "is_active" .IX Subsection "is_active" .Vb 1 \& $active = $radiobutton\->is_active .Ve .PP Returns true if this button is the active button of the group. .SH "GROUPS" .IX Header "GROUPS" Every \f(CW\*(C`Tickit::Widget::RadioButton\*(C'\fR belongs to a group. Only one button can be active in a group at any one time. The \f(CW\*(C`group\*(C'\fR accessor returns the group the button is a member of. The following methods are available on it. .PP A group can be explicitly created to pass to a button's constructor, or one will be implicitly created for a button if none is passed. .SS "new" .IX Subsection "new" .Vb 1 \& $group = Tickit::Widget::RadioButton::Group\->new .Ve .PP Returns a new group. .SS "active" .IX Subsection "active" .Vb 1 \& $radiobutton = $group\->active .Ve .PP Returns the button which is currently active in the group .SS "on_changed" .IX Subsection "on_changed" .Vb 1 \& $on_changed = $group\->on_changed .Ve .SS "set_on_changed" .IX Subsection "set_on_changed" .Vb 1 \& $group\->set_on_changed( $on_changed ) .Ve .PP Return or set the \s-1CODE\s0 reference to be called when the active member of the group changes. This may be more convenient than setting the \f(CW\*(C`on_toggle\*(C'\fR callback of each button in the group. .PP The callback is passed the currently-active button, and its \f(CW\*(C`value\*(C'\fR. .PP .Vb 1 \& $on_changed\->( $active, $value ) .Ve .SH "AUTHOR" .IX Header "AUTHOR" Paul Evans