#!/usr/bin/perl
use warnings;
use Curses;
use lib "./lib/Acme/Curses";
use Marquee;
initscr;
halfdelay(1);
noecho;
$scr1 = subwin(9,COLS,0,0);
$scr2 = subwin(9,COLS,9,0);
$cli = subwin(3,80,18,0);
addstr(21,0,"'/1 TEXT' or '/2 TEXT' to set top/bottom marquee texts");
addstr(22,0,"'/f1 FONT' or '/f2 FONT' to set top/bottom marquee fonts");
addstr(23,0,"/q to quit");
box($cli,ACS_VLINE,ACS_HLINE);
refresh();
$m1 = Acme::Curses::Marquee->new( window => $scr1,
height => 9,
width => COLS );
$m2 = Acme::Curses::Marquee->new( window => $scr2,
height => 9,
width => COLS );
while (1) {
$ch = getch;
newchar() if ($ch ne '-1');
$m1->scroll if $m1->is_active;;
$m2->scroll if $m2->is_active;;
}
sub newchar {
if ($ch eq "\n") {
dispatch();
addstr($cli, 1, 1, (' ' x 78));
move($cli,1,1);
refresh($cli);
$string = '';
return;
}
$string .= $ch;
addstr($cli, 1, 1, $string);
refresh($cli);
}
sub dispatch {
if ($string eq '/q') {
endwin;
exit;
} elsif ($string =~ /^\/1 /) {
$string =~ s|^/1 ||;
$m1->text($string);
} elsif ($string =~ /^\/2 /) {
$string =~ s|^/2 ||;
$m2->text($string);
} elsif ($string =~ /^\/f1 /) {
$string =~ s|^/f1 ||;
$m1->font($string);
} elsif ($string =~ /^\/f2 /) {
$string =~ s|^/f2 ||;
$m2->font($string);
}
}