NAME
Tk::EntrySet - display/edit a list of values in a Set of Widgets.
SYNOPSIS
require Tk::EntrySet;
my $valuelist = [];
my $instance = $main_window->EntrySet()->pack;
$instance->configure(-valuelist_variable => \$valuelist);
$instance->valuelist([qw/foo bar baz/]);
DESCRIPTION
Tk::EntrySet creates a Set of widgets to display/edit a list of values. The widget class is configurable. Tk::EntrySet adds/removes widgets to match the size of the valuelist. If a user deletes an entrywidgets content, the value is deleted from the valuelist and the entry is removed from the set on view update. View updates are by default bound to <Return> events. This is configurable through the -callback_installer option. The last widget in the Set is always empty to allow users to append values to the list. Tk::EntrySet is a Tk::Frame derived widget.
METHODS
Tk::EntrySet supports the following methods:
OPTIONS
Tk::EntrySet supports the following options:
- -entryclass
 - 
A Tk widget class to be used for the entrywidgets. Defaults to 'Entry'.
 - -entryoptions
 - 
Options to be passed to each entry on creation (arrayref).
 - -getter
 - 
A coderef which is used by Tk::EntrySet to read the Entrywidgets content. It gets passed the Entrywidget instance and is expected to return its content. Defaults to sub{ $_[0]->get }, which is suitable for Tk::Entry.
 - -setter
 - 
A coderef which is used by Tk::EntrySet to write the Entrywidgets content. It gets passed the Entrywidget instance and the new value. Defaults to sub{ $_[0]->delete(0,'end'); $_[0]->insert('end',$_[1]) }, which is suitable for Tk::Entry.
 - -callback_installer
 - 
A coderef which is called after each Entrywidgets instantiation. The callback_installer gets passed the Entrywidget and a coderef that will update the Tk::EntrySet view when called. Defaults to sub{$_[0]->bind('<Key-Return>',$_[1])}.
 - -empty_is_undef
 - 
If set to true (default) empty strings will be treated like undef. Undef elements will be removed from the list and from the EntrySet on view updates.
 - -unique_values
 - 
If set to true (default) duplicate elements will be removed on view updates.
 - -valuelist
 - 
Get/Set the list of values (arrayref).
 - -valuelist_variable
 - 
Ties a variable (scalarref) to the -valuelist atribute. This is a Scalar Tie only.
 - -changed_command
 - 
A Callback that is called after the valuelist is updated on user interaction. By default -changed_command is triggered if the user hits <Return> in any of the Entries. (See -callback_installer above if you want to change that.)
 
Examples
use strict;
use warnings;
use Tk;
my $mw = MainWindow->new ;
require Tk::EntrySet;
my $valuelist = [];
my $entryset = $mw->EntrySet()->pack;
$entryset->configure(-valuelist_variable => \$valuelist);
$entryset->valuelist([qw/foo bar baz/]);
# use another entryclass:
my $num_set = $mw->EntrySet(-entryclass => 'NumEntry')->pack;
$num_set->valuelist([3,15,42]);
# use a BrowseEntry  with custom get/set/callback_installer:
my $getter = sub{ $_[0]->Subwidget('entry')->get};
my $setter = sub{my $e = $_[0]->Subwidget('entry');
                 $e->delete(0,'end');
                 $e->insert('end', $_[1]);
            };
my $inst = sub{$_[0]->bind('<Key-Return>' ,$_[1]);
               $_[0]->configure(-browsecmd => $_[1]);
         };
my $mbe = $mw->EntrySet(-entryclass   => 'BrowseEntry',
                        -entryoptions => [-choices => [qw/ a b c d /]],
                        -getter       => $getter,
                        -setter       => $setter,
                        -callback_installer => $inst,
                      )->pack(-fill   => 'both',
                              -expand => 1);
$mbe->valuelist([qw/a c/]);
MainLoop;
AUTHOR
Christoph Lamprecht, ch.l.ngre@online.de
COPYRIGHT AND LICENSE
Copyright (C) 2008 by Christoph Lamprecht
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available.