NAME
Prima::Tie - tie widget properties to scalars and 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 properties 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 properties, in particular to popular properties 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);
That way, you can work directly with the text or items. Furthermore, if the only reason you keep an object around after creation is to access its text or items, you no longer need to do so:
tie @some_array, 'Prima::Tie::items', Prima::ListBox->new(@args);
As opposed to:
my $widget = Prima::ListBox->new(@args);
tie @some_array, 'Prima::Tie::items', $widget;
Prima::Tie::items
requires the ::items
property to be available on the widget. Also, it takes advantage of additional get_items
, add_items
, and the like methods if available.
Prima::Tie::items
The class is applicable to Prima::ListViewer
, Prima::ListBox
, Prima::Widget::Header
, and their descendants, and in a 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::Dialog::ColorDialog
, Prima::SpinEdit
, Prima::Gauge
, Prima::Slider
, Prima::CircularSlider
, and Prima::ScrollBar
.
COPYRIGHT
Copyright 2004 Teo Sankaro
This program is distributed under the BSD License. (Although a credit would be nice.)
AUTHORS
Teo Sankaro, <teo_sankaro@hotmail.com>. Dmitry Karasik, <dmitry@karasik.eu.org>.