curses: seperated echo and raw/cbreak options from window-setup
parent
52af310055
commit
e1a9d597b0
|
@ -188,15 +188,18 @@ M: curses-window dispose* ( window -- )
|
||||||
[ ffi:cbreak ] [ ffi:nocbreak ] if
|
[ ffi:cbreak ] [ ffi:nocbreak ] if
|
||||||
] if curses-error ;
|
] if curses-error ;
|
||||||
|
|
||||||
: apply-options ( window -- )
|
: apply-window-options ( window -- )
|
||||||
{
|
{
|
||||||
[ [ cbreak>> ] [ raw>> ] bi set-cbreak/raw ]
|
|
||||||
[ echo>> [ ffi:echo ] [ ffi:noecho ] if curses-error ]
|
|
||||||
[ [ ptr>> ] [ scrollok>> >BOOLEAN ] bi ffi:scrollok curses-error ]
|
[ [ ptr>> ] [ scrollok>> >BOOLEAN ] bi ffi:scrollok curses-error ]
|
||||||
[ [ ptr>> ] [ leaveok>> >BOOLEAN ] bi ffi:leaveok curses-error ]
|
[ [ ptr>> ] [ leaveok>> >BOOLEAN ] bi ffi:leaveok curses-error ]
|
||||||
[ [ ptr>> ] [ keypad>> >BOOLEAN ] bi ffi:keypad curses-error ]
|
[ [ ptr>> ] [ keypad>> >BOOLEAN ] bi ffi:keypad curses-error ]
|
||||||
} cleave ;
|
} cleave ;
|
||||||
|
|
||||||
|
: apply-global-options ( window -- )
|
||||||
|
[ [ cbreak>> ] [ raw>> ] bi set-cbreak/raw ]
|
||||||
|
[ echo>> [ ffi:echo ] [ ffi:noecho ] if curses-error ]
|
||||||
|
bi ;
|
||||||
|
|
||||||
SYMBOL: n-registered-colors
|
SYMBOL: n-registered-colors
|
||||||
|
|
||||||
MEMO: register-color ( fg bg -- n )
|
MEMO: register-color ( fg bg -- n )
|
||||||
|
@ -220,7 +223,7 @@ PRIVATE>
|
||||||
] [
|
] [
|
||||||
window-params ffi:newwin
|
window-params ffi:newwin
|
||||||
] if* [ curses-error ] keep >>ptr &dispose
|
] if* [ curses-error ] keep >>ptr &dispose
|
||||||
] [ apply-options ] bi ;
|
] [ apply-window-options ] bi ;
|
||||||
|
|
||||||
: with-window ( window quot -- )
|
: with-window ( window quot -- )
|
||||||
[ current-window ] dip with-variable ; inline
|
[ current-window ] dip with-variable ; inline
|
||||||
|
@ -230,9 +233,12 @@ PRIVATE>
|
||||||
[
|
[
|
||||||
'[
|
'[
|
||||||
ffi:initscr curses-pointer-error
|
ffi:initscr curses-pointer-error
|
||||||
>>ptr dup apply-options
|
>>ptr
|
||||||
|
[ apply-global-options ] [ apply-window-options ] [ ] tri
|
||||||
|
|
||||||
ffi:erase curses-error
|
ffi:erase curses-error
|
||||||
init-colors
|
init-colors
|
||||||
|
|
||||||
_ with-window
|
_ with-window
|
||||||
] [ ffi:endwin curses-error ] [ ] cleanup
|
] [ ffi:endwin curses-error ] [ ] cleanup
|
||||||
] with-destructors ; inline
|
] with-destructors ; inline
|
||||||
|
@ -259,7 +265,7 @@ M: curses-terminal dispose
|
||||||
init-terminal
|
init-terminal
|
||||||
ffi:initscr curses-pointer-error drop
|
ffi:initscr curses-pointer-error drop
|
||||||
dup ptr>> ffi:set_term curses-pointer-error drop
|
dup ptr>> ffi:set_term curses-pointer-error drop
|
||||||
] dip apply-options ;
|
] dip [ apply-global-options ] [ apply-window-options ] bi ;
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue