package ChecklistFrame; use strict; use Tk::widgets qw/Button Label/; use base qw/Tk::Frame/; Construct Tk::Widget 'ChecklistFrame'; sub ClassInit { my($class, $mw) = @_; $class->SUPER::ClassInit($mw); } sub Populate { my($self, $args) = @_; $self->SUPER::Populate($args); my($type) = $args->{'-type'}; delete $args->{'-type'}; if (($type eq 'item') || ($type eq 'header')) { $self->Component( 'Button' => 'runbutton', -pady => 0, -text => 'Run' )->pack(-side => 'left'); $self->Component( 'Button' => 'nabutton', -pady => 0, -text => 'N/A' )->pack(-side => 'left'); $self->Component( 'Label' => 'label', -justify => 'left' )->pack(-side => 'left', -anchor => 'w'); } elsif ($type eq 'label') { $self->Component( 'Label' => 'label', -relief => 'raised' )->pack(-side => 'left', -fill => 'both', -expand => 1); } my($l) = $self->Subwidget('label'); $self->ConfigSpecs( -text => [$l], -class => [$self], 'DEFAULT' => [$self] ); $self->Delegates( 'DEFAULT' => $self ); } 1;