X-Git-Url: http://git.shiar.net/descalc.git/blobdiff_plain/7db84757c6ba80836bc8c2cc9de326f16862a2cd:/06_disp_slang.pm..4e1d9535fda6685e53ce570ca4e4cd6c260f55d3:/04_disp_slang.pm diff --git a/06_disp_slang.pm b/04_disp_slang.pm similarity index 67% rename from 06_disp_slang.pm rename to 04_disp_slang.pm index 4fa569d..90dccf6 100644 --- a/06_disp_slang.pm +++ b/04_disp_slang.pm @@ -1,11 +1,13 @@ # s-lang output for DCT, by Shiar +# 1.12.0 200411032145 - define main loop +# - use slang key reading functions # 1.11.0 200410291300 - use strict; use warnings; -use Term::Slang qw(:common :screen :term :CONSTANTS); +use Term::Slang qw(:all); push @{$hook{init}}, sub { SLtt_get_terminfo and exit; @@ -26,8 +28,8 @@ push @{$hook{showerror}}, sub { SLsmg_write_string(" $error "); SLsmg_refresh; - ReadKey; # wait for confirm - 1 while defined ReadKey(-1); # clear key buffer + SLang_getkey; # wait for confirm + SLang_getkey while SLang_input_pending(0)==1; # clear key buffer }; # showerror push @{$hook{showstack}}, sub { @@ -53,9 +55,22 @@ push @{$hook{showentry}}, sub { SLsmg_refresh; }; # showentry +$hook{main} = sub { + while (1) { + draw(); + + my $key = chr SLang_getkey; # wait for user input + if ($key eq chr 27) { + $key .= chr SLang_getkey while SLang_input_pending(0)==1; # read additional keys + } # escape sequence +# error(join " ", map ord, split //, $key); #debug + onkey($key); + } # input loop +}; # main + return { author => "Shiar", title => "slang output", - version => "1.11", + version => "1.12", };