package HTML::Widget::BlockContainer; use warnings; use strict; use base 'HTML::Widget::Container'; use Carp qw/croak/; __PACKAGE__->mk_accessors(qw/content pre_content post_content wrap_sub/); =head1 NAME HTML::Widget::BlockContainer - Block Container =head1 DESCRIPTION A Container for Block elements. See L and L. =head1 METHODS =cut sub _build_element { my ( $self, $element ) = @_; return () unless $element; if ( ref $element eq 'ARRAY' ) { croak("Not expecting an array"); } my $wrap_sub = $self->wrap_sub || sub { return (@_); }; my $e = $element->clone; $e->push_content( @{ $self->pre_content } ) if $self->pre_content; $e->push_content( map { &$wrap_sub( $_->as_list ); } @{ $self->content } ); $e->push_content( @{ $self->post_content } ) if $self->post_content; if ( $self->label ) { my $l = $self->label->clone; $e = $l->push_content($e); } return ($e); } =head1 AUTHOR Michael Gray, C =cut 1;