main :: IO()
main = runCurses $ do
setEcho False
w <- defaultWindow
canvas <- newWindow 19 19 0 0
panel <- newPanel canvas
updateWindow canvas $ do
drawString "Hello world!"
render
waitFor w (\ev -> ev == EventCharacter 'q' || ev == EventCharacter 'Q')
waitFor :: Window -> (Event -> Bool) -> Curses ()
waitFor w p = loop where
loop = do
ev <- getEvent w Nothing
case ev of
Nothing -> loop
Just ev' -> unless (p ev') loop
こんにちは。ncurses パッケージを少し変更した例です。問題は、何も表示されないことです。C API では、私が覚えているように、各ウィンドウを個別に更新する必要があります。しかし、Haskell は提供するだけrender
です。どこが間違っていますか?可動ウィジェットが欲しい。