|
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.7 |