The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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->InsertStringItem( 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.

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, 2007 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