---
name: "Prima::Tie"
section: "3"
platform: "linux"
package: "libprima-perl"
version: "1.28-1.3+b3"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/Prima::Tie"
---

# Prima::Tie(3)

tie widget properties to scalars or arrays.

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