name: ncurses version: 0.2.11 license: GPL-3 license-file: license.txt author: John Millikin maintainer: John Millikin 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 displays 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 cbits/mavericks-c2hs-workaround.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.11 -- Do not use default to using pkg-config to find ncurses libraries, because -- the .pc files are missing or broken in many installations. flag use-pkgconfig default: False manual: True description: Use pkg-config to set linker and include flags. flag force-narrow-library default: False manual: True description: Force including and linking against ncurses instead of ncursesw. This is only useful on systems that have the ncursesw package installed incorrectly. On most systems this will cause compile- or run-time errors. flag force-c2hs-newtype-pointer-hooks default: False manual: True description: Force using the newtype'd pointer hooks introduced in c2hs 0.18.1. This is only necessary when building with c2hs==0.18.1, as 0.18.2 and later can be auto-detected. 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 if flag(use-pkgconfig) if flag(force-narrow-library) cc-options: -DHSNCURSES_NARROW_HEADER pkgconfig-depends: ncurses, panel else pkgconfig-depends: ncursesw, panelw else -- MacOS has a version of ncurses where the narrow- and wide-character -- builds have been merged into a single header/dylib. -- -- Explicitly linking against libpthread.so fixes a build problem on -- platforms where the linker doesn't automatically follow dependencies. if os(darwin) || os(freebsd) || flag(force-narrow-library) cc-options: -DHSNCURSES_NARROW_HEADER if os(darwin) || flag(force-narrow-library) extra-libraries: panel ncurses pthread else extra-libraries: panelw ncursesw pthread if flag(force-c2hs-newtype-pointer-hooks) cc-options: -DHSNCURSES_NEWTYPE_POINTER_HOOKS c-sources: cbits/hsncurses-shim.c exposed-modules: UI.NCurses UI.NCurses.Panel other-modules: UI.NCurses.Enums UI.NCurses.Compat UI.NCurses.Types