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.

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 2004 Teo Sankaro You may redistribute and/or modify this module under the same terms as Perl itself. (Although a credit would be nice.) Teo Sankaro, <teo_sankaro@hotmail.com>. Dmitry Karasik, <dmitry@karasik.eu.org>.