NAME
Wx::Perl::ListCtrl - a sensible API for Wx::ListCtrl
SYNOPSIS
use Wx::Perl::ListCtrl;
my $lc = Wx::Perl::ListCtrl->new( $parent, -1 );
# add columns...
# get/set item text easily
$lc->InsertItem( 0, 'dummy' );
$lc->SetItemText( 0, 0, 'row 0, col 0' );
$lc->SetItemText( 0, 1, 'row 0, col 1' );
$lc->GetItemText( 0, 1 ) # 'row 0, col 1'
# use structured data, not plain integers
$lc->SetItemData( 0, { complex =>1, data => 2 } );
my $data = $lc->GetItemData( 0 );
# sensible way of getting the selection
my $selection = $lc->GetSelection; # single selection
my @selections = $lc->GetSelections; # multiple selections
DESCRIPTION
The Wx::ListCtrl
API is terrible. This module goes further than Wx::ListView
in providing a sane api for Wx::ListCtrl
.
This module is not a drop-in replacement for Wx::ListCtrl
and Wx::ListView
.
Wx::Perl::ListCtrl
derives from Wx::ListView
, however some of Wx::ListView/Wx::ListCtrl
methods are overridden with more sensible, and sometimes API-incompatible, implementations.
METHODS
GetSelection
my $selection = $lc->GetSelection;
Returns the single selected line. Only works with a single-selection list control.
GetSelections
my @selections = $lc->GetSelections;
Returns a list with all the selected lines. Only works with a multi-selection list control.
GetItemText
my $text = $lc->GetItemText( $row, $col );
WARNING: incompatible with Wx::ListCtrl
. Returns the text of the given item.
SetItemtext
$lc->SetItemText( $row, $col, 'Text' );
WARNING: incompatible with Wx::ListCtrl
. Sets the text of the given item.
SetItemData
$lc->SetItemData( $item, { complex => [ qw(data is allowed) ] } );
Sets the client data for the given row. Complex data structures are allowed. Setting the data to undef
deletes the data for the given row.
WARNING The current implementation is faulty: it will die() after about 2^31 calls in the same Wx::Perl::ListCtrl
.
GetItemData
my $data = $lc->GetItemData( $data );
Retrieves the data set with $lc-
SetItemData>.
BUGS
Calling SetItemData
too many times will crash after about 2^31 per-object calls (with 32 bit integers).
AUTHOR
Mattia Barbon <mbarbon@cpan.org>
LICENSE
Copyright (c) 2005 Mattia Barbon <mbarbon@cpan.org>
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself