package Net::Paraget::Display;
#
# $Id: Display.pm,v 1.2 2001/04/27 03:30:18 lrclause Exp $
#
use strict;
use Class::MethodMaker
get_set => [ qw( context ) ],
new_hash_init => [ qw( new hash_init ) ];
sub ascii_status_graphic
{
my ( $self, $width ) = @_;
my $interval_list = $self->context->interval_manager->interval_list();
my $total_size = $interval_list->last->end();
my $blocksize = $total_size / $width;
my $graphic = ' ' x $width;
foreach my $interval ( $interval_list->as_list() )
{
# next unless $interval->completed();
my $mark_start = int( $interval->start() / $blocksize );
substr $graphic, $mark_start, 1, '!';
# this is just down here for clarity
$mark_start++; # because we already put a mark on
my $mark_end = int( $interval->end() / $blocksize );
$mark_end = $mark_start if $mark_end < $mark_start;
my $marks = $mark_end - $mark_start;
if ( $interval->completed() )
{
substr $graphic, $mark_start, $marks, ( '#' x $marks );
}
else
{
substr $graphic, $mark_start, $marks, ( '.' x $marks );
}
}
return $graphic;
}
1;
syntax highlighted by Code2HTML, v. 0.9.1