|
Graphics.HGL.Window | Portability | non-portable (requires concurrency) | Stability | provisional | Maintainer | libraries@haskell.org |
|
|
|
|
|
Description |
Windows in a simple graphics library.
|
|
Synopsis |
|
|
|
|
Windows |
|
data Window |
|
|
type Title = String |
Title of a window. |
|
data RedrawMode |
How to draw in a window. | Constructors | Unbuffered | use a double buffer to reduce flicker.
You should probably use this for animations. | DoubleBuffered | draw directly to the window.
This runs slightly faster but is more prone
to flicker. |
|
|
|
openWindowEx |
:: Title | title of the window | -> Maybe Point | the optional initial position of a window | -> Size | initial size of the window | -> RedrawMode | how to display a graphic on the window | -> Maybe Time | the time between ticks (in milliseconds) of an
optional timer associated with the window | -> IO Window | | General window creation. |
|
|
getWindowRect :: Window -> IO (Point, Size) |
The position of the top left corner of the window on the screen,
and the size of the window. |
|
closeWindow :: Window -> IO () |
Close the window. |
|
Drawing in a window |
|
setGraphic :: Window -> Graphic -> IO () |
Set the current drawing in a window. |
|
getGraphic :: Window -> IO Graphic |
Get the current drawing in a window. |
|
modGraphic :: Window -> (Graphic -> Graphic) -> IO () |
Update the drawing for a window.
Note that this does not force a redraw. |
|
directDraw :: Window -> Graphic -> IO () |
|
Events in a window |
|
data Event |
A user interface event.
Notes:
- Programmers should assume that the Event datatype will be
extended in the not-too-distant future and that individual events
may change slightly. As a minimum, you should add a "match anything"
alternative to any function which pattern matches against Events.
- X11 systems typically have three button mice. Button 1 is used as the
left button, button 3 as the right button and button 2 (the middle
button) is ignored.
| Constructors | Char | a properly translated character, sent after
a key press. | char :: Char | the character represented by a key combination |
| Key | occurs when a key was pressed or released. | keysym :: Key | representation of the keyboard keys pressed | isDown :: Bool | if True, the key was pressed;
otherwise it was released |
| Button | occurs when a mouse button is pressed or released. | pt :: Point | the position of the mouse cursor | isLeft :: Bool | if True, it was the left button | isDown :: Bool | if True, the button was pressed;
otherwise it was released |
| MouseMove | occurs when the mouse is moved inside the window. | pt :: Point | the position of the mouse cursor after the movement |
| Resize | occurs when the window is resized. | Closed | occurs when the window is closed. |
| Instances | |
|
|
getWindowEvent :: Window -> IO Event |
Wait for the next event on the given window. |
|
maybeGetWindowEvent :: Window -> IO (Maybe Event) |
Check for a pending event on the given window. |
|
Timer ticks |
|
Timers that tick at regular intervals are set up by openWindowEx. |
|
getWindowTick :: Window -> IO () |
Wait for the next tick event from the timer on the given window. |
|
getTime :: IO Integer |
Time in milliseconds since some arbitrary epoch. |
|
Produced by Haddock version 0.6 |