package PDF::FromHTML::Template::Element::PageBreak;
use strict;
BEGIN {
use vars qw(@ISA);
@ISA = qw(PDF::FromHTML::Template::Element);
use PDF::FromHTML::Template::Element;
}
sub new
{
my $class = shift;
my $self = $class->SUPER::new(@_);
$self->trip(0);
return $self;
}
sub reset
{
my $self = shift;
$self->trip(0);
return $self->SUPER::reset;
}
sub trip { $_[0]{__TRIP_WIRE__} = $_[1] if defined $_[1]; $_[0]{__TRIP_WIRE__} }
sub render
{
my $self = shift;
my ($context) = @_;
return 0 unless $self->should_render($context);
return 1 if $self->trip;
# Regardless of whether a pagebreak actually occurs, this node
# has done its job.
$self->trip(1);
if ($context->get($self, 'Y') != $context->get($self, 'START_Y'))
{
$context->trip_pagebreak;
}
return 0;
}
1;
__END__
=head1 NAME
PDF::FromHTML::Template::Element::PageBreak
=head1 PURPOSE
To insert a hard pagebreak.
=head1 NODE NAME
PAGEBREAK
=head1 INHERITANCE
PDF::FromHTML::Template::Element
=head1 ATTRIBUTES
None
=head1 CHILDREN
None
=head1 AFFECTS
Nothing
=head1 DEPENDENCIES
None
=head1 USAGE
This will cause a pagebreak to occur at the spot the node is.
=head1 AUTHOR
Rob Kinyon (rkinyon@columbus.rr.com)
=head1 SEE ALSO
=cut