Gtk::CListModel - A simple data model with Gtk::Clist views
my $model = tie @data, 'Gtk::CListModel', titles => ["Fruit", "Price", "Quantity"]; # all data manipulation is done on @data now push @data, ["Oranges", 5, 16]; # Create a view (a Gtk::Clist widget) to represent the data # Include only some of the data in the view (fruit type and price) # Also, do not include fruits that cost more than 6 price units. my $clist = $model->create_view('main', titles => ['Fruit', 'Price'], filter => sub {$_[1] > 6? () : @_}); =head1 DESCRIPTION
Gtk::CListModel lets you keep your data in a perl array and easily create a numer of different views on that data using Gtk::CList widgets. The views can show only some of the columns, or a subset of the data or even munge the data with user-defined filters.
All the data manipulations will be performed on a tied array and the changes will be propagated to the views created for that data.
To create the model use tie
:
my $model = tie @data, 'Gtk::CListModel', titles => ["head1", "head2",...];
The titles
attribute should be an array reference with the titles of the
columns of data. They will be used also for the default titles in the views.
You can also provide the initial data using the data
attribute. Remember
that the data elements you insert and retreive from the @data array are
array references with as many items as the columns in the model. The order
is the one defined by the titles
attribute.
Later you can manipulate the @data array with the usual perl array operators, push, splice and so on.
Create a Gtk::Clist widget that represents the data in the model. The name can be used later to disconnect the view from the data.
Options can be one of the following:
Disconnect the named view from the data. The current data displayed in the view will not be affected, but changes in the model will not propagate to this view anymore.
Get the index in the data array cooresponding to the row displayed in the Gtk::CList widget.
Molaro Paolo lupus@debian.org