|
|
|
|
|
Description |
|
|
Synopsis |
|
|
|
|
Basic Types
|
|
data Orientation |
The orientation of a widget.
| Constructors | | Instances | |
|
|
Objects
|
|
(#) :: obj -> (obj -> a) -> a |
Reverse application, i.e. x # f = f x.
Useful for an object oriented style of programming.
(frame # frameSetTitle) "hi"
|
|
feed :: a -> (a -> b) -> b |
Inverse application, i.e. feed x f = f x.
|
|
feed2 :: a -> b -> (a -> b -> c) -> c |
Composed Inverse application, i.e. feed2 x y f = f x y.
|
|
data Object a |
An Object a is a pointer to an object of type a. The a parameter is used
to encode the inheritance relation. When the type parameter is unit (), it denotes
an object of exactly that class, when the parameter is a type variable a, it
specifies an object that is at least an instance of that class. For example in
wxWindows, we have the following class hierarchy:
EvtHandler
|- Window
|- Frame
|- Control
|- Button
|- Radiobox
In wxHaskell, all the creation functions will return objects of exactly that
class and use the () type:
frameCreate :: Window a -> ... -> IO (Frame ())
buttonCreate :: Window a -> ... -> IO (Button ())
...
In contrast, all the this (or self) pointers of methods can take objects
of any instance of that class and have a type variable, for example:
windowSetClientSize :: Window a -> Size -> IO ()
controlSetLabel :: Control a -> String -> IO ()
buttonSetDefault :: Button a -> IO ()
This means that we can use windowSetClientSize on any window, including
buttons and frames, but we can only use controlSetLabel on controls, not
includeing frames.
In wxHaskell, this works since a Frame () is actually a type synonym for
Window (CFrame ()) (where CFrame is an abstract data type). We can thus
pass a value of type Frame () to anything that expects some Window a.
For a button this works too, as it is a synonym for Control (CButton ())
which is in turn a synonym for Window (CControl (CButton ())). Note that
we can't pass a frame to something that expects a value of type Control a.
Of course, a Window a is actually a type synonym for EvtHandler (CWindow a).
If you study the documentation in Graphics.UI.WXH.WxcClasses closely, you
can discover where this chain ends :-).
Objects are not automatically deleted. Normally you can use a delete function
like windowDelete to delete an object. However, almost all objects in the
wxWindows library are automatically deleted by the library. The only objects
that should be used with care are resources as bitmaps, fonts and brushes.
| Instances | |
|
|
objectNull :: Object a |
A null object. Use with care.
|
|
objectIsNull :: Object a -> Bool |
Test for null object.
|
|
objectCast :: Object a -> Object b |
Cast an object to another type. Use with care.
|
|
objectIsManaged :: Object a -> Bool |
Is this a managed object.
|
|
objectDelete :: WxObject a -> IO () |
Delete a wxObject, works for managed and unmanaged objects.
|
|
Identifiers
|
|
type Id = Int |
An Id is used to identify objects during event handling.
|
|
idAny :: Id |
When creating a new window you may specify idAny to let wxWindows
assign an unused identifier to it automatically. Furthermore, it can be
used in an event connection to handle events for any identifier.
|
|
idCreate :: IO Id |
Create a new unique identifier.
|
|
Mutable variables
|
|
type Var a = IORef a |
A mutable variable. Use this instead of MVars or IORefs to accomodate for
future expansions with possible concurrency.
|
|
varCreate :: a -> IO (Var a) |
Create a fresh mutable variable.
|
|
varGet :: Var a -> IO a |
Get the value of a mutable variable.
|
|
varSet :: Var a -> a -> IO () |
Set the value of a mutable variable.
|
|
varUpdate :: Var a -> (a -> a) -> IO a |
Update the value of a mutable variable and return the old value.
|
|
varSwap :: Var a -> a -> IO a |
Swap the value of a mutable variable.
|
|
Bits
|
|
class Eq b => BitMask b where |
Data types that can be represented through a bit mask. Only the assocBitMask method
is required for a new instance.
| | Methods | assocBitMask :: [(b, Int)] | Give the association between the constructors and the bits. If a constructor
corresponds to no bits set, it should come as the last element.
| | toBitMask :: b -> Int | Convert to a bitmask
| | fromBitMask :: Int -> b | Convert from a bitmask
| | setBitMask :: b -> Int -> Int | Set the correct bits corresponding to a constructor in a mask.
|
| | Instances | |
|
|
mask :: BitMask b => [b] -> Int |
Create a bitmask from a list of types.
|
|
(.+.) :: Int -> Int -> Int |
Bitwise or of two bit masks.
|
|
(.-.) :: Int -> BitFlag -> Int |
Unset certain bits in a bitmask.
|
|
bits :: [Int] -> Int |
Bitwise or of a list of bit masks.
|
|
bitsSet :: Int -> Int -> Bool |
(bitsSet mask i) tests if all bits in mask are also set in i.
|
|
Booleans
|
|
boolFromInt :: Int -> Bool |
|
intFromBool :: Bool -> Int |
|
Misc.
|
|
type Style = Int |
A Style is normally used as a flag mask to specify some window style
|
|
type EventId = Int |
An EventId is identifies specific events.
|
|
data TreeItem |
Identifies tree items. Note: Replaces the TreeItemId object and takes automatically
care of allocation issues.
| Instances | |
|
|
Graphical types
|
|
Colors
|
|
data Color |
An abstract data type to define colors.
| Instances | |
|
|
rgb :: Int -> Int -> Int -> Color |
Create a color from a red/green/blue triple.
|
|
colorRGB :: Int -> Int -> Int -> Color |
Create a color from a red/green/blue triple.
|
|
colorRed :: Color -> Int |
Returns a red color component
|
|
colorGreen :: Color -> Int |
Returns a green color component
|
|
colorBlue :: Color -> Int |
Returns a blue color component
|
|
black :: Color |
|
darkgrey :: Color |
|
dimgrey :: Color |
|
mediumgrey :: Color |
|
grey :: Color |
|
lightgrey :: Color |
|
white :: Color |
|
red :: Color |
|
green :: Color |
|
blue :: Color |
|
cyan :: Color |
|
magenta :: Color |
|
yellow :: Color |
|
System colors
|
|
data SystemColor |
System Colors.
| Constructors | ColorScrollBar | The scrollbar grey area.
| ColorBackground | The desktop colour.
| ColorActiveCaption | Active window caption.
| ColorInactiveCaption | Inactive window caption.
| ColorMenu | Menu background.
| ColorWindow | Window background.
| ColorWindowFrame | Window frame.
| ColorMenuText | Menu text.
| ColorWindowText | Text in windows.
| ColorCaptionText | Text in caption, size box and scrollbar arrow box.
| ColorActiveBorder | Active window border.
| ColorInactiveBorder | Inactive window border.
| ColorAppWorkspace | Background colour MDI -- ^applications.
| ColorHighlight | Item(s) selected in a control.
| ColorHighlightText | Text of item(s) selected in a control.
| ColorBtnFace | Face shading on push buttons.
| ColorBtnShadow | Edge shading on push buttons.
| ColorGrayText | Greyed (disabled) text.
| ColorBtnText | Text on push buttons.
| ColorInactiveCaptionText | Colour of text in active captions.
| ColorBtnHighlight | Highlight colour for buttons (same as 3DHILIGHT).
| Color3DDkShadow | Dark shadow for three-dimensional display elements.
| Color3DLight | Light colour for three-dimensional display elements.
| ColorInfoText | Text colour for tooltip controls.
| ColorInfoBk | Background colour for tooltip controls.
| ColorDesktop | Same as BACKGROUND.
| Color3DFace | Same as BTNFACE.
| Color3DShadow | Same as BTNSHADOW.
| Color3DHighlight | Same as BTNHIGHLIGHT.
| Color3DHilight | Same as BTNHIGHLIGHT.
| ColorBtnHilight | Same as BTNHIGHLIGHT.
|
| Instances | |
|
|
colorSystem :: SystemColor -> Color |
Convert a system color to a color.
|
|
Font
|
|
data FontStyle |
Font descriptor. The font is normally specified thru the FontFamily, giving
some degree of portability. The _fontFace can be used to specify the exact (platform
dependent) font.
Note that the original wxWindows FontStyle is renamed to FontShape.
| Constructors | | Instances | |
|
|
data FontFamily |
Standard font families.
| Constructors | FontDefault | A system default font.
| FontDecorative | Decorative font.
| FontRoman | Formal serif font.
| FontScript | Hand writing font.
| FontSwiss | Sans-serif font.
| FontModern | Fixed pitch font.
|
| Instances | |
|
|
data FontShape |
The font style.
| Constructors | ShapeNormal | | ShapeItalic | | ShapeSlant | |
| Instances | |
|
|
data FontWeight |
The font weight.
| Constructors | WeightNormal | | WeightBold | | WeightLight | |
| Instances | |
|
|
fontDefault :: FontStyle |
Default 10pt font.
|
|
fontSwiss :: FontStyle |
Default 10pt sans-serif font.
|
|
fontSmall :: FontStyle |
Default 8pt font.
|
|
fontItalic :: FontStyle |
Default 10pt italic.
|
|
fontFixed :: FontStyle |
Monospaced font, 10pt.
|
|
Brush
|
|
data BrushStyle |
Brush style.
| Constructors | | Instances | |
|
|
data BrushKind |
Brush kind.
| Constructors | BrushTransparent | No filling
| BrushSolid | Solid color
| BrushHatch | Hatch pattern
| | BrushStipple | Bitmap pattern (on win95 only 8x8 bitmaps are supported)
| |
| Instances | |
|
|
data HatchStyle |
Hatch style.
| Constructors | HatchBDiagonal | Backward diagonal
| HatchCrossDiag | Crossed diagonal
| HatchFDiagonal | Forward diagonal
| HatchCross | Crossed orthogonal
| HatchHorizontal | Horizontal
| HatchVertical | Vertical
|
| Instances | |
|
|
brushDefault :: BrushStyle |
Default brush (transparent, black).
|
|
brushTransparent :: BrushStyle |
A transparent brush.
|
|
Pen
|
|
data PenStyle |
Pen style.
| Constructors | | Instances | |
|
|
data PenKind |
Pen kinds.
| Constructors | PenTransparent | No edge.
| PenSolid | | PenDash | | | PenHatch | | | PenStipple | _penColor is ignored
| |
| Instances | |
|
|
data CapStyle |
Cap style
| Constructors | CapRound | End points are rounded
| CapProjecting | | CapButt | |
| Instances | |
|
|
data JoinStyle |
Join style.
| Constructors | JoinRound | Corners are rounded
| JoinBevel | Corners are bevelled
| JoinMiter | Corners are blocked
|
| Instances | |
|
|
data DashStyle |
Dash style
| Constructors | DashDot | | DashLong | | DashShort | | DashDotShort | |
| Instances | |
|
|
penDefault :: PenStyle |
Default pen (PenStyle PenSolid black 1 CapRound JoinRound)
|
|
penColored :: Color -> Int -> PenStyle |
A solid pen with a certain color and width.
|
|
penTransparent :: PenStyle |
A transparent pen.
|
|
Geometrical types
|
|
Points
|
|
data Point |
A point has an x and y coordinate. Coordinates are normally relative to the
upper-left corner of their view frame, where a positive x goes to the right and
a positive y to the bottom of the view.
| Constructors | Point | | pointX :: !Int | x component of a point.
| pointY :: !Int | y component of a point.
|
|
| Instances | |
|
|
point :: Int -> Int -> Point |
Construct a point.
|
|
pt :: Int -> Int -> Point |
Shorter function to construct a point.
|
|
pointFromVec :: Vector -> Point |
|
pointFromSize :: Size -> Point |
|
pointZero :: Point |
Point at the origin.
|
|
pointNull :: Point |
A null point is not a legal point (x and y are -1) and can be used for some
wxWindows functions to select a default point.
|
|
pointMove :: Vector -> Point -> Point |
|
pointMoveBySize :: Point -> Size -> Point |
|
pointAdd :: Point -> Point -> Point |
|
pointSub :: Point -> Point -> Point |
|
pointScale :: Point -> Int -> Point |
|
Sizes
|
|
data Size |
A Size has a width and height.
| Constructors | Size | | sizeW :: !Int | the width of a size
| sizeH :: !Int | the height of a size
|
|
| Instances | |
|
|
sz :: Int -> Int -> Size |
Short function to construct a size
|
|
sizeFromPoint :: Point -> Size |
|
sizeFromVec :: Vector -> Size |
|
sizeZero :: Size |
|
sizeNull :: Size |
A null size is not a legal size (width and height are -1) and can be used for some
wxWindows functions to select a default size.
|
|
sizeEncloses :: Size -> Size -> Bool |
Returns True if the first size totally encloses the second argument.
|
|
sizeMin :: Size -> Size -> Size |
The minimum of two sizes.
|
|
sizeMax :: Size -> Size -> Size |
The maximum of two sizes.
|
|
Vectors
|
|
data Vector |
A vector with an x and y delta.
| Constructors | Vector | | vecX :: !Int | delta-x component of a vector
| vecY :: !Int | delta-y component of a vector
|
|
| Instances | |
|
|
vector :: Int -> Int -> Vector |
Construct a vector.
|
|
vec :: Int -> Int -> Vector |
Short function to construct a vector.
|
|
vecFromPoint :: Point -> Vector |
|
vecFromSize :: Size -> Vector |
|
vecZero :: Vector |
A zero vector
|
|
vecNull :: Vector |
A null vector has a delta x and y of -1 and can be used for some
wxWindows functions to select a default vector.
|
|
vecNegate :: Vector -> Vector |
|
vecOrtogonal :: Vector -> Vector |
|
vecAdd :: Vector -> Vector -> Vector |
|
vecSub :: Vector -> Vector -> Vector |
|
vecScale :: Vector -> Int -> Vector |
|
vecBetween :: Point -> Point -> Vector |
|
vecLength :: Vector -> Double |
|
Rectangles
|
|
data Rect |
A rectangle is defined by the left x coordinate, the top y coordinate,
the width and the height.
| Constructors | Rect | | rectLeft :: !Int | | rectTop :: !Int | | rectWidth :: !Int | | rectHeight :: !Int | |
|
| Instances | |
|
|
rectTopLeft :: Rect -> Point |
|
rectTopRight :: Rect -> Point |
|
rectBottomLeft :: Rect -> Point |
|
rectBottomRight :: Rect -> Point |
|
rectBottom :: Rect -> Int |
|
rectRight :: Rect -> Int |
|
rect :: Point -> Size -> Rect |
Create a rectangle at a certain (upper-left) point with a certain size.
|
|
rectBetween :: Point -> Point -> Rect |
Construct a (positive) rectangle between two (arbitrary) points.
|
|
rectFromSize :: Size -> Rect |
Create a rectangle of a certain size with the upper-left corner at (pt 0 0).
|
|
rectZero :: Rect |
An empty rectangle at (0,0).
|
|
rectNull :: Rect |
An null rectangle is not a valid rectangle (Rect -1 -1 -1 -1) but can
used for some wxWindows functions to select a default rectangle. (i.e. frameCreate).
|
|
rectSize :: Rect -> Size |
Get the size of a rectangle.
|
|
rectIsEmpty :: Rect -> Bool |
|
rectContains :: Rect -> Point -> Bool |
|
rectMoveTo :: Rect -> Point -> Rect |
|
rectFromPoint :: Point -> Rect |
|
rectCentralPoint :: Rect -> Point |
|
rectCentralRect :: Rect -> Size -> Rect |
|
rectStretchTo :: Rect -> Size -> Rect |
|
rectMove :: Rect -> Vector -> Rect |
|
rectOverlaps :: Rect -> Rect -> Bool |
|
rectsDiff :: Rect -> Rect -> [Rect] |
A list with rectangles that constitute the difference between two rectangles.
|
|
rectUnion :: Rect -> Rect -> Rect |
|
rectOverlap :: Rect -> Rect -> Rect |
The intersection between two rectangles.
|
|
rectUnions :: [Rect] -> Rect |
|
IO Control
|
|
unitIO :: IO a -> IO () |
Ignore the result of an IO action.
|
|
bracket |
:: IO a | computation to run first (acquire resource)
| -> (a -> IO b) | computation to run last (release resource)
| -> (a -> IO c) | computation to run in-between (use resource)
| -> IO c | | Properly release resources, even in the event of an exception.
|
|
|
bracket_ |
:: IO a | computation to run first (acquire resource)
| -> IO b | computation to run last (release resource)
| -> IO c | computation to run in-between (use resource)
| -> IO c | | Specialized variant of bracket where the return value is not required.
|
|
|
finally |
:: IO a | computation to run first
| -> IO b | computation to run last (release resource)
| -> IO a | | Run some computation afterwards, even if an exception occurs.
|
|
|
finalize |
:: IO b | computation to run last (release resource)
| -> IO a | computation to run first
| -> IO a | | Run some computation afterwards, even if an exception occurs. Equals finally but
with the arguments swapped.
|
|
|
when :: Bool -> IO () -> IO () |
Perform an action when a test succeeds.
|
|
Produced by Haddock version 0.8 |