aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/edit_terminal.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/edit_terminal.erl')
-rw-r--r--src/edit_terminal.erl77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/edit_terminal.erl b/src/edit_terminal.erl
new file mode 100644
index 0000000..b18cafb
--- /dev/null
+++ b/src/edit_terminal.erl
@@ -0,0 +1,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().
+