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