]> gitweb.factorcode.org Git - factor.git/commitdiff
curses: beginning of screen support
authorPhilipp Brüschweiler <blei42@gmail.com>
Tue, 20 Oct 2009 11:58:19 +0000 (13:58 +0200)
committerPhilipp Brüschweiler <blei42@gmail.com>
Sun, 3 Oct 2010 11:16:30 +0000 (13:16 +0200)
extra/curses/curses.factor

index aef00577730444a16f8104c70de52378c6473310..78ff542ff9ffe773131b7257a8495c88fc024573 100644 (file)
@@ -121,6 +121,30 @@ PRIVATE>
             [ endwin curses-error ] [ ] cleanup
         ] curry with-window
     ] with-destructors ; inline
+
+TUPLE: curses-terminal < disposable
+    infd outfd ptr ;
+
+: <curses-terminal> ( infd outfd ptr -- curses-terminal )
+    curses-terminal new-disposable
+        swap >>ptr
+        swap >>outfd
+        swap >>infd ;
+
+M: curses-terminal dispose
+    [ outfd>> fclose ] [ infd>> fclose ]
+    [ ptr>> delscreen ] tri ;
+
+: init-terminal ( terminal -- curses-terminal )
+    "xterm-color" swap [ "rb" fopen ] [ "wb" fopen ] bi
+    [ newterm curses-pointer-error ] 2keep <curses-terminal> ;
+
+: start-remote-curses ( terminal window -- curses-terminal )
+    [
+        init-terminal
+        initscr curses-pointer-error drop
+        dup ptr>> set_term curses-pointer-error drop
+    ] dip apply-options ;
     
 
 <PRIVATE