Portability | non-portable (requires concurrency) |
---|---|
Stability | provisional |
Maintainer | libraries@haskell.org |
Utility functions for a simple graphics library.
- openWindow :: Title -> Size -> IO Window
- clearWindow :: Window -> IO ()
- drawInWindow :: Window -> Graphic -> IO ()
- withWindow :: Title -> Size -> (Window -> IO a) -> IO a
- withWindow_ :: Title -> Size -> (Window -> IO a) -> IO ()
- runWindow :: Title -> Size -> (Window -> IO a) -> IO ()
- getWindowSize :: Window -> IO Size
- getLBP :: Window -> IO Point
- getRBP :: Window -> IO Point
- getButton :: Window -> Bool -> Bool -> IO Point
- getKey :: Window -> IO Key
- getKeyEx :: Window -> Bool -> IO Key
- wGetChar :: Window -> IO Char
- emptyGraphic :: Graphic
- overGraphic :: Graphic -> Graphic -> Graphic
- overGraphics :: [Graphic] -> Graphic
- withFont :: Font -> Graphic -> Graphic
- withTextColor :: RGB -> Graphic -> Graphic
- withTextAlignment :: Alignment -> Graphic -> Graphic
- withBkColor :: RGB -> Graphic -> Graphic
- withBkMode :: BkMode -> Graphic -> Graphic
- withPen :: Pen -> Graphic -> Graphic
- withBrush :: Brush -> Graphic -> Graphic
- withRGB :: RGB -> Graphic -> Graphic
- data Color
- colorList :: [(Color, RGB)]
- colorTable :: Array Color RGB
- withColor :: Color -> Graphic -> Graphic
- par :: IO a -> IO b -> IO (a, b)
- par_ :: IO a -> IO b -> IO ()
- parMany :: [IO ()] -> IO ()
Windows
clearWindow :: Window -> IO ()Source
Erase all drawing in the window.
(That is, set the Graphic
held by the window to emptyGraphic
.)
drawInWindow :: Window -> Graphic -> IO ()Source
Draw the given graphic on the window, on top of anything that is
already there.
(That is, combine the given Graphic
and the one held by the window
using overGraphic
, store the result in the window, and display it.)
withWindow :: Title -> Size -> (Window -> IO a) -> IO aSource
Run an action inside a new window, ensuring that the window is destroyed on exit.
withWindow_ :: Title -> Size -> (Window -> IO a) -> IO ()Source
A variant of withWindow
that ignores the result of the action.
runWindow :: Title -> Size -> (Window -> IO a) -> IO ()Source
A combination of runGraphics
and withWindow_
.
getWindowSize :: Window -> IO SizeSource
The current size of the window.
Specific events
Mouse events
getLBP :: Window -> IO PointSource
Wait for a press of the left mouse button, and return the position of the mouse cursor.
getRBP :: Window -> IO PointSource
Wait for a press of the right mouse button, and return the position of the mouse cursor.
:: Window | |
-> Bool | if |
-> Bool | if |
-> IO Point |
Wait for a mouse button to be pressed or released, and return the position of the mouse cursor.
Keyboard events
getKeyEx :: Window -> Bool -> IO KeySource
Wait until a key is pressed (if the second argument is True
)
or released (otherwise).
wGetChar :: Window -> IO CharSource
Wait for a translated character (from a key press).
Use in preference to getKey
if the aim is to read text.
Graphics
Combining Graphics
An empty drawing.
overGraphic :: Graphic -> Graphic -> GraphicSource
A composite drawing made by overlaying the first argument on the second.
overGraphics :: [Graphic] -> GraphicSource
Overlay a list of drawings.
Graphic modifiers
withTextColor :: RGB -> Graphic -> GraphicSource
Set the default color for drawing text.
withTextAlignment :: Alignment -> Graphic -> GraphicSource
Set the default alignment of text in a drawing.
withBkColor :: RGB -> Graphic -> GraphicSource
Set the default background color for drawing text with background
mode Opaque
. The background color is ignored when the mode is
Transparent
.
withBkMode :: BkMode -> Graphic -> GraphicSource
Set the default background mode for drawing text.
withRGB :: RGB -> Graphic -> GraphicSource
A convenience function that sets the brush, pen and text colors to the same value.
Named colors
Named colors.
Concurrency
par :: IO a -> IO b -> IO (a, b)Source
Run two IO
actions in parallel and terminate when both actions terminate.