Hi All.
I am trying to create my own CLI navigation program. I am using Term::Screen
since it is nice and simple. I am aware that there are other modules out there
which does all this. But I want to learn more about the navigation of the
cursor around the screen. Initially I am working with something that I believe
is simple and then I will migrate to Curses. But not yet.
I have been successful in creating the menu. The menu wraps. But I cannot get
the spacebar or enter key to be excepted. Below is the code:
#!/usr/bin/perl -w
# Mac Perl 5.12
use strict;
require Term::Screen;
my $scr = new Term::Screen;
my $win_col = $scr->cols();
my $win_row = $scr-> rows();
$scr->clrscr();
$scr->at(0,0)->clreol()->puts ("window size: $win_row\t$win_col");
for (my $r = 2; $r <= $win_row; $r++) {
# prints menu.
my $item = $r -2;
$scr->at($r,10)->puts("$item - menu item $item");
} #end while
my $curser_char = '_';
$scr->at(2, 0)->puts($curser_char);
$scr->noecho();
my $col = 0;
my $row = 2;
my $top_row = 2;
my $bottom_row = $win_row;
while ( 1) {
my $key = $scr->getch();
if ($key eq "kd") {
$scr->at($row, $col)->puts(' ');
++$row;
$row = $top_row if ($row > $bottom_row);
} elsif ($key eq "ku") {
$scr->at($row, $col)->puts(' ');
--$row;
$row = $bottom_row if ($row < $top_row);
} else {
last if ($key eq 'ke');
last if ($key eq 'q');
} #end if
$scr->at($row, $col)->puts("$curser_char $row -");
} # end while
so how do you capture the Enter or Space?
I have read the code for Term::Screen and it doesn't appear to have this as one
of the defined keys in the last routine.
Sean
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
http://learn.perl.org/