ncurses-0.2.5: ncurses.cabal
name: ncurses
version: 0.2.5
license: GPL-3
license-file: license.txt
author: John Millikin <jmillikin@gmail.com>
maintainer: John Millikin <jmillikin@gmail.com>
build-type: Simple
cabal-version: >= 1.6
category: User Interfaces, Foreign
stability: experimental
homepage: https://john-millikin.com/software/haskell-ncurses/
bug-reports: mailto:jmillikin@gmail.com
synopsis: Modernised bindings to GNU ncurses
description:
GNU ncurses is a library for creating command-line application with
pseudo-graphical interfaces. This package is a nice, modern binding
to GNU ncurses.
.
The following example is a program that display the message
\"Hello world!\" until the user hits Q:
.
@
import UI.NCurses
.
main :: IO ()
main = runCurses $ do
  setEcho False
  w <- defaultWindow
  updateWindow w $ do
  moveCursor 1 10
  drawString \"Hello world!\"
  moveCursor 3 10
  drawString \"(press q to quit)\"
  moveCursor 0 0
  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' -> if p ev' then return () else loop
@
extra-source-files:
cbits/hsncurses-shim.c
cbits/hsncurses-shim.h
source-repository head
type: git
location: https://john-millikin.com/code/haskell-ncurses/
source-repository this
type: git
location: https://john-millikin.com/code/haskell-ncurses/
tag: haskell-ncurses_0.2.5
library
hs-source-dirs: lib
ghc-options: -Wall -O2
include-dirs: .
build-depends:
base >= 4.0 && < 5.0
, containers >= 0.2
, text >= 0.7
, transformers >= 0.2
build-tools:
c2hs >= 0.15
-- Do not use pkg-config to find ncurses libraries, because the .pc files
-- are missing or broken in many installations.
if os(darwin)
-- MacOS has a version of ncurses where the narrow- and wide-character
-- builds have been merged into a single header/dylib.
cc-options: -DHSNCURSES_NARROW_HEADER
extra-libraries: panel ncurses
else
extra-libraries: panelw ncursesw
c-sources: cbits/hsncurses-shim.c
exposed-modules:
UI.NCurses
UI.NCurses.Panel
other-modules:
UI.NCurses.Enums
UI.NCurses.Types