Scroll to navigation

Prima::Tie(3) User Contributed Perl Documentation Prima::Tie(3)

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>.

2024-02-01 perl v5.38.2