package App::Asciio::stripes::single_stripe ; use base App::Asciio::stripes::stripes ; use strict; use warnings; sub new { my ($class, $element_definition) = @_ ; my $self = bless {}, __PACKAGE__ ; $self->setup($element_definition->{TEXT}) ; return($self) ; } #----------------------------------------------------------------------------- sub setup { my ($self, $text) = @_ ; my $width = 0 ; map {$width = $width < length($_) ? length($_) : $width} split("\n", $text) ; my $height = ($text =~ tr[\n][\n]) + 1 ; $self->set ( TEXT => $text, WIDTH => $width, HEIGHT => $height, ) ; } #----------------------------------------------------------------------------- sub get_mask_and_element_stripes { my ($self) = @_ ; return {X_OFFSET => 0, Y_OFFSET => 0, WIDTH => $self->{WIDTH}, HEIGHT => $self->{HEIGHT}, TEXT => $self->{TEXT}} ; } #----------------------------------------------------------------------------- sub get_size { my ($self) = @_ ; return($self->{WIDTH}, $self->{HEIGHT}) ; } #----------------------------------------------------------------------------- sub resize { my ($self, $reference_x, $reference_y, $new_x, $new_y) = @_ ; return(0, 0, $self->{WIDTH}, $self->{HEIGHT}) ; } #----------------------------------------------------------------------------- sub get_text { my ($self) = @_ ; return($self->{TEXT}) ; } #----------------------------------------------------------------------------- sub set_text { my ($self, $text) = @_ ; $self->setup($text) ; } #----------------------------------------------------------------------------- 1 ;