1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
%%%----------------------------------------------------------------------
%%% File : edit_terminal.erl
%%% Author : Luke Gorrie <luke@bluetail.com>
%%% Purpose : ncurses terminal implementation
%%% Created : 16 Sep 2000 by Luke Gorrie <luke@bluetail.com>
%%%----------------------------------------------------------------------
-module(edit_terminal).
-author('luke@bluetail.com').
-include_lib("slang/include/slang.hrl").
-define(ESC, 27).
-compile(export_all).
%%-export([Function/Arity, ...]).
setup() ->
slang:tt_get_terminfo(),
slang:kp_init(),
slang:init_tty(0, 1, 1),
slang:set_abort_signal(null),
slang:smg_init_smg (),
slang:smg_normal_video(),
slang:setvar(newline_behaviour, ?NEWLINE_MOVES),
refresh(),
ok.
teardown() ->
slang:smg_reset_smg(),
slang:reset_tty(),
ok.
newline() ->
put_char($\n).
put_char(C) ->
slang:smg_write_char(C).
put_string(S) ->
slang:smg_write_string(S).
format(Fmt, Args) ->
slang:smg_printf(Fmt, Args).
erase_to_eol() ->
slang:smg_erase_eol().
move_to(X, Y) ->
slang:smg_gotorc(Y, X).
refresh() ->
slang:smg_refresh().
invalidate() ->
slang:smg_touch_screen().
width() ->
slang:getvar(screen_cols).
height() ->
slang:getvar(screen_rows).
read() ->
case slang:getkey() of
?ESC ->
read() bor 2#10000000;
N ->
N
end.
font_reverse() ->
slang:smg_reverse_video().
font_normal() ->
slang:smg_normal_video().
|