Prima::Tie - tie widget properties to scalars or arrays. |
Prima::Tie - tie widget properties to scalars or arrays.
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.
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';
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.
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
.
The class is applicable to any widget.
The class is applicable to Prima::GroupBox
, Prima::ColorDialog
,
Prima::SpinEdit
, Prima::Gauge
, Prima::Slider
, Prima::CircularSlider
,
and Prima::ScrollBar
.
Copyright 2004 Teo Sankaro
This program is distributed under the BSD License. (Although a credit would be nice.)
Teo Sankaro, <teo_sankaro@hotmail.com>. Dmitry Karasik, <dmitry@karasik.eu.org>.
Prima::Tie - tie widget properties to scalars or arrays. |