0 | module NCurses.Core.Input
4 | %foreign libncurses "cbreak"
5 | prim__cBreak : PrimIO ()
7 | %foreign libncurses "nocbreak"
8 | prim__noCBreak : PrimIO ()
10 | %foreign libncurses "echo"
11 | prim__echo : PrimIO ()
13 | %foreign libncurses "noecho"
14 | prim__noEcho : PrimIO ()
16 | %foreign libncurses "nodelay"
17 | prim__noDelay : AnyPtr -> Int -> PrimIO ()
19 | %foreign libncurses "getch"
20 | prim__getCh : PrimIO Char
22 | %foreign libncurses "wgetch"
23 | prim__getChWindow : AnyPtr -> PrimIO Char
25 | %foreign libncurses "getch"
26 | prim__safeGetCh : PrimIO Int
28 | %foreign libncurses "wgetch"
29 | prim_safeGetChWindow : AnyPtr -> PrimIO Int
31 | %foreign libncurses "curs_set"
32 | prim__setCursorVisibility : Int -> PrimIO ()
41 | cBreak : HasIO io => io ()
42 | cBreak = primIO $
prim__cBreak
51 | noCBreak : HasIO io => io ()
52 | noCBreak = primIO $
prim__noCBreak
56 | echo : HasIO io => io ()
57 | echo = primIO $
prim__echo
61 | noEcho : HasIO io => io ()
62 | noEcho = primIO $
prim__noEcho
69 | noDelay' : HasIO io => Window -> Bool -> io ()
70 | noDelay' (Win win) on = primIO $
prim__noDelay win (boolToInt on)
77 | noDelay : HasIO io => Bool -> io ()
78 | noDelay on = noDelay' !stdWindow on
88 | getCh : HasIO io => io Char
89 | getCh = primIO $
prim__getCh
99 | getCh' : HasIO io => Window -> io Char
100 | getCh' (Win win) = primIO $
prim__getChWindow win
110 | safeGetCh : HasIO io => io (Maybe Char)
112 | err <- primIO $
prim__err
113 | ch <- primIO $
prim__safeGetCh
117 | else Just (cast ch)
128 | safeGetCh' : HasIO io => Window -> io (Maybe Char)
129 | safeGetCh' (Win win) = do
130 | err <- primIO $
prim__err
131 | ch <- primIO $
prim_safeGetChWindow win
135 | else Just (cast ch)
138 | data CursorVisibility = CInvisible | CNormal| CHighlyVisible
142 | setCursorVisibility : HasIO io => CursorVisibility -> io ()
143 | setCursorVisibility vis = primIO $
prim__setCursorVisibility $
147 | CHighlyVisible => 2