NAME¶
Prima::Tie - tie widget properties to scalars or arrays.
DESCRIPTION¶
Prima::Tie contains two abstract classes, "Prima::Tie::Array" and
"Prima::Tie::Scalar", which tie an array or a scalar to a widget's
arbitrary array or scalar property. Also, it contains classes
"Prima::Tie::items", "Prima::Tie::text", and
"Prima::Tie::value", which tie a variable to a widget's
items,
text, and
value property respectively.
SYNOPSIS¶
use Prima::Tie;
tie @items, 'Prima::Tie::items', $widget;
tie @some_property, 'Prima::Tie::Array', $widget, 'some_property';
tie $text, 'Prima::Tie::text', $widget;
tie $some_property, 'Prima::Tie::Scalar', $widget, 'some_property';
USAGE¶
These classes provide immediate access to a widget's array and scalar property,
in particular to popular properties as
items and
text. It is
considerably simpler to say
splice(@items,3,1,'new item');
than to say
my @i = @{$widget->items};
splice(@i,3,1,'new item');
$widget->items(\@i);
You can work directly with the text or items rather than at a remove.
Furthermore, if the only reason you keep an object around after creation is to
access its text or items, you no no longer need to do so:
tie @some_array, 'Prima::Tie::items', Prima::ListBox->create(@args);
As opposed to:
my $widget = Prima::ListBox->create(@args);
tie @some_array, 'Prima::Tie::items', $widget;
"Prima::Tie::items" requires "::items" property to be
available on the widget. Also, it takes advantage of additional
"get_items", "add_items", and the like if available.
Prima::Tie::items¶
The class is applicable to "Prima::ListViewer",
"Prima::ListBox", "Prima::Header", and their descendants,
and in limited fashion to "Prima::OutlineViewer" and its descendants
"Prima::StringOutline" and "Prima::Outline".
Prima::Tie::text¶
The class is applicable to any widget.
Prima::Tie::value¶
The class is applicable to "Prima::GroupBox",
"Prima::ColorDialog", "Prima::SpinEdit",
"Prima::Gauge", "Prima::Slider",
"Prima::CircularSlider", and "Prima::ScrollBar".
COPYRIGHT¶
Copyright 2004 Teo Sankaro
You may redistribute and/or modify this module under the same terms as Perl
itself. (Although a credit would be nice.)
AUTHORS¶
Teo Sankaro, <teo_sankaro@hotmail.com>. Dmitry Karasik,
<dmitry@karasik.eu.org>.