Gtk2::Ex::TreeModelBits - miscellaneous TreeModel helpers
use Gtk2::Ex::TreeModelBits;
@types = Gtk2::Ex::TreeModelBits::all_column_types ($model)
Return a list of all the column types in $model. For example to create another ListStore with the same types as an existing one,
$model
my $new_store = Gtk2::ListStore->new (Gtk2::Ex::TreeModelBits::all_column_types ($old_store));
@values = Gtk2::Ex::TreeModelBits::column_contents ($model, $col)
Return a list of all the values in column number $col of a Gtk2::TreeModel object $model.
$col
Gtk2::TreeModel
Any tree structure in the model is flattened out for the return. A parent row's column value comes first, followed by the column values from its children, recursively, as per $model->foreach.
$model->foreach
Gtk2::Ex::TreeModelBits::remove_matching_rows ($store, $subr, ...)
Remove from $store all rows passing $subr. $store can be a Gtk2::TreeStore, a Gtk2::ListStore, or another type with the same style $store->remove method. $subr is called
$store
$subr
Gtk2::TreeStore
Gtk2::ListStore
$store->remove
$want_remove = &$subr ($store, $iter, ...)
where $iter is the row being considered, and any extra arguments to remove_matching_rows are passed on to $subr. $subr should return true if it wants to remove the row.
$iter
remove_matching_rows
The order rows are considered and removed is unspecified except that a parent row is tested before its children, and the children of course are not tested if the parent is removed.
If you use an old Gtk 2.0.x and might pass a Gtk2::ListStore or Gtk2::TreeStore to remove_matching_rows then get Perl-Gtk 1.240 or higher to have the remove method on those classes return a flag the same as in Gtk 2.2 and up. Otherwise on those stores remove_matching_rows will stop after the first row removed.
remove
$iter = Gtk2::Ex::TreeModelBits::iter_prev ($model, $iter)
Return a new Gtk2::TreeIter which is the row preceding the given $iter, at the same depth. If $iter is the first element at its depth then the return is undef.
Gtk2::TreeIter
undef
This is like a reverse of iter_next. Going to the previous row is not a native operation and might be a touch slow if a model uses say a linked list and so must chase through data for a path lookup.
iter_next
Nothing is exported by default, but the functions can be requested in usual Exporter style,
Exporter
use Gtk2::Ex::TreeModelBits 'remove_matching_rows'; remove_matching_rows ($store, sub { ... });
There's no :all tag since this module is meant as a grab-bag of functions and to import as-yet unknown things would be asking for name clashes.
:all
Gtk2::ListStore, Gtk2::TreeModel, Gtk2::Ex::WidgetBits, Gtk2::Ex::TreeModel::ImplBits
http://user42.tuxfamily.org/gtk2-ex-widgetbits/index.html
Copyright 2007, 2008, 2009, 2010, 2011, 2012 Kevin Ryde
Gtk2-Ex-WidgetBits is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.
Gtk2-Ex-WidgetBits is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with Gtk2-Ex-WidgetBits. If not, see http://www.gnu.org/licenses/.
To install Gtk2::Ex::WidgetBits, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Gtk2::Ex::WidgetBits
CPAN shell
perl -MCPAN -e shell install Gtk2::Ex::WidgetBits
For more information on module installation, please visit the detailed CPAN module installation guide.