The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#############################################################################
## Name:        lib/Wx/DemoModules/wxHeaderCtrl.pm
## Purpose:     wxPerl demo helper for Wx::HeaderCtrl/Wx::HeaderColumn
## Author:      Mattia Barbon
## Modified by:
## Created:     25/04/2010
## RCS-ID:      $Id: wxHeaderCtrl.pm 2920 2010-04-29 21:11:27Z mbarbon $
## Copyright:   (c) 2010 Mattia Barbon
## Licence:     This program is free software; you can redistribute it and/or
##              modify it under the same terms as Perl itself
#############################################################################

package Wx::DemoModules::wxHeaderCtrl;

use strict;
use base qw(Wx::DemoModules::lib::BaseModule Class::Accessor::Fast);

__PACKAGE__->mk_accessors( qw(headerctrl) );

sub create_control {
    my( $self ) = @_;

    my $headerctrl = Wx::DemoModules::wxHeaderCtrl::Control->new( $self );
    $headerctrl->SetColumnCount( 3 );

    return $self->headerctrl( $headerctrl );
}

sub add_to_tags { ( Wx::wxVERSION() >= 2.009 ) ? qw(controls new) : () }
sub title { 'wxHeaderCtrl' }

package Wx::DemoModules::wxHeaderCtrl::Control;

use strict;
use base qw(Wx::PlHeaderCtrl);

sub GetColumn {
    my( $self, $index ) = @_;

    return $self->{columns}[$index] if $self->{columns}[$index];

    my $col = $self->{columns}[$index] =
        Wx::DemoModules::wxHeaderCtrl::Column->new;
    $col->{index} = $index + 1;

    return $self->{columns}[$index];
}

package Wx::DemoModules::wxHeaderCtrl::Column;

use strict;
use base qw(Wx::PlHeaderColumn);

use Wx qw(wxALIGN_CENTER);

sub GetTitle {
    my( $self ) = @_;

    return 'Column ' . $self->{index};
}

sub GetWidth {
    my( $self ) = @_;

    return $self->{index} * 100;
}

sub GetAlignment {
    my( $self ) = @_;

    return wxALIGN_CENTER;
}

1;