ContentsIndex
Graphics.UI.WXCore.Draw
Contents
DC
Creation
Draw state
Double buffering
Scrolled windows
Font
Brush
Pen
Description
Synopsis
drawLines :: DC a -> [Point] -> IO ()
drawPolygon :: DC a -> [Point] -> IO ()
getTextExtent :: DC a -> String -> IO Size
getFullTextExtent :: DC a -> String -> IO (Size, Int, Int)
dcClearRect :: DC a -> Rect -> IO ()
withPaintDC :: Window a -> (PaintDC () -> IO b) -> IO b
withClientDC :: Window a -> (ClientDC () -> IO b) -> IO b
dcDraw :: DC a -> IO b -> IO b
data DrawState
dcEncapsulate :: DC a -> IO b -> IO b
dcGetDrawState :: DC a -> IO DrawState
dcSetDrawState :: DC a -> DrawState -> IO ()
drawStateDelete :: DrawState -> IO ()
dcBuffer :: DC a -> Rect -> (DC () -> IO ()) -> IO ()
dcBufferWithRef :: DC a -> Maybe (Var (Bitmap ())) -> Rect -> (DC () -> IO ()) -> IO ()
dcBufferWithRefEx :: DC a -> (DC () -> IO ()) -> Maybe (Var (Bitmap ())) -> Rect -> (DC () -> IO ()) -> IO ()
windowGetViewStart :: Window a -> IO Point
windowGetViewRect :: Window a -> IO Rect
windowCalcUnscrolledPosition :: Window a -> Point -> IO Point
data FontStyle = FontStyle {
_fontSize :: !Int
_fontFamily :: !FontFamily
_fontShape :: !FontShape
_fontWeight :: !FontWeight
_fontUnderline :: !Bool
_fontFace :: !String
_fontEncoding :: !Int
}
data FontFamily
= FontDefault
| FontDecorative
| FontRoman
| FontScript
| FontSwiss
| FontModern
data FontShape
= ShapeNormal
| ShapeItalic
| ShapeSlant
data FontWeight
= WeightNormal
| WeightBold
| WeightLight
fontDefault :: FontStyle
fontSwiss :: FontStyle
fontSmall :: FontStyle
fontItalic :: FontStyle
fontFixed :: FontStyle
withFontStyle :: FontStyle -> (Font () -> IO a) -> IO a
dcWithFontStyle :: DC a -> FontStyle -> IO b -> IO b
dcSetFontStyle :: DC a -> FontStyle -> IO ()
dcGetFontStyle :: DC a -> IO FontStyle
fontCreateFromStyle :: FontStyle -> IO (Font (), IO ())
fontGetFontStyle :: Font () -> IO FontStyle
data BrushStyle = BrushStyle {
_brushKind :: !BrushKind
_brushColor :: !Color
}
data BrushKind
= BrushTransparent
| BrushSolid
| BrushHatch {
_brushHatch :: !HatchStyle
}
| BrushStipple {
_brushBitmap :: !(Bitmap ())
}
data HatchStyle
= HatchBDiagonal
| HatchCrossDiag
| HatchFDiagonal
| HatchCross
| HatchHorizontal
| HatchVertical
brushDefault :: BrushStyle
brushSolid :: Color -> BrushStyle
brushTransparent :: BrushStyle
dcSetBrushStyle :: DC a -> BrushStyle -> IO ()
dcGetBrushStyle :: DC a -> IO BrushStyle
withBrushStyle :: BrushStyle -> (Brush () -> IO a) -> IO a
dcWithBrushStyle :: DC a -> BrushStyle -> IO b -> IO b
dcWithBrush :: DC b -> Brush a -> IO c -> IO c
brushCreateFromStyle :: BrushStyle -> IO (Brush (), IO ())
brushGetBrushStyle :: Brush a -> IO BrushStyle
data PenStyle = PenStyle {
_penKind :: !PenKind
_penColor :: !Color
_penWidth :: !Int
_penCap :: !CapStyle
_penJoin :: !JoinStyle
}
data PenKind
= PenTransparent
| PenSolid
| PenDash {
_penDash :: !DashStyle
}
| PenHatch {
_penHatch :: !HatchStyle
}
| PenStipple {
_penBitmap :: !(Bitmap ())
}
data CapStyle
= CapRound
| CapProjecting
| CapButt
data JoinStyle
= JoinRound
| JoinBevel
| JoinMiter
data DashStyle
= DashDot
| DashLong
| DashShort
| DashDotShort
penDefault :: PenStyle
penColored :: Color -> Int -> PenStyle
penTransparent :: PenStyle
dcSetPenStyle :: DC a -> PenStyle -> IO ()
dcGetPenStyle :: DC a -> IO PenStyle
withPenStyle :: PenStyle -> (Pen () -> IO a) -> IO a
dcWithPenStyle :: DC a -> PenStyle -> IO b -> IO b
dcWithPen :: DC a -> Pen p -> IO b -> IO b
penCreateFromStyle :: PenStyle -> IO (Pen (), IO ())
penGetPenStyle :: Pen a -> IO PenStyle
DC
drawLines :: DC a -> [Point] -> IO ()
Draw connected lines.
drawPolygon :: DC a -> [Point] -> IO ()
Draw a polygon. The polygon is filled with the odd-even rule.
getTextExtent :: DC a -> String -> IO Size
Gets the dimensions of the string using the currently selected font.
getFullTextExtent :: DC a -> String -> IO (Size, Int, Int)
Gets the dimensions of the string using the currently selected font. Takes text string to measure, and returns the size, descent and external leading. Descent is the dimension from the baseline of the font to the bottom of the descender , and external leading is any extra vertical space added to the font by the font designer (is usually zero).
dcClearRect :: DC a -> Rect -> IO ()
Clear a specific rectangle with the current background brush. This is preferred to dcClear for scrolled windows as dcClear sometimes only clears the original view area, instead of the currently visible scrolled area. Unfortunately, the background brush is not set correctly on wxMAC 2.4, and this will always clear to a white color on mac systems.
Creation
withPaintDC :: Window a -> (PaintDC () -> IO b) -> IO b
Use a PaintDC.
withClientDC :: Window a -> (ClientDC () -> IO b) -> IO b
Use a ClientDC.
dcDraw :: DC a -> IO b -> IO b
Encloses the computation with dcBeginDrawing and dcEndDrawing.
Draw state
data DrawState
The drawing state (pen,brush,font,text color,text background color) of a device context.
dcEncapsulate :: DC a -> IO b -> IO b
Run a computation after which the original drawing state of the DC is restored.
dcGetDrawState :: DC a -> IO DrawState
Get the drawing state. (Should be deleted with drawStateDelete).
dcSetDrawState :: DC a -> DrawState -> IO ()
Set the drawing state.
drawStateDelete :: DrawState -> IO ()
Release the resources associated with a drawing state.
Double buffering
dcBuffer :: DC a -> Rect -> (DC () -> IO ()) -> IO ()
Use double buffering to draw to a DC -- reduces flicker. Note that the windowOnPaint handler can already take care of buffering automatically. The rectangle argument is normally the view rectangle (windowGetViewRect). Uses a MemoryDC to draw into memory first and than blit the result to the device context. The memory area allocated is the minimal size necessary to accomodate the rectangle, but is re-allocated on each invokation.
dcBufferWithRef :: DC a -> Maybe (Var (Bitmap ())) -> Rect -> (DC () -> IO ()) -> IO ()
Optimized double buffering. Takes a possible reference to a bitmap. If it is Nothing, a new bitmap is allocated everytime. Otherwise, the reference is used to re-use an allocated bitmap if possible. The Rect argument specifies the the current logical view rectangle. The last argument is called to draw on the memory DC.
dcBufferWithRefEx :: DC a -> (DC () -> IO ()) -> Maybe (Var (Bitmap ())) -> Rect -> (DC () -> IO ()) -> IO ()
Optimized double buffering. Takes a clear routine as its first argument. Normally this is something like 'dc -> dcClearRect dc viewArea' but on certain platforms, like MacOS X, special handling is necessary.
Scrolled windows
windowGetViewStart :: Window a -> IO Point
Get logical view start, adjusted for scrolling.
windowGetViewRect :: Window a -> IO Rect
Get logical view rectangle, adjusted for scrolling.
windowCalcUnscrolledPosition :: Window a -> Point -> IO Point
Get logical coordinates adjusted for scrolling.
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
FontStyle
_fontSize :: !Int
_fontFamily :: !FontFamily
_fontShape :: !FontShape
_fontWeight :: !FontWeight
_fontUnderline :: !Bool
_fontFace :: !Stringnormally ""
_fontEncoding :: !Intnormally wxFONTENCODING_DEFAULT
show/hide Instances
data FontFamily
Standard font families.
Constructors
FontDefaultA system default font.
FontDecorativeDecorative font.
FontRomanFormal serif font.
FontScriptHand writing font.
FontSwissSans-serif font.
FontModernFixed pitch font.
show/hide Instances
data FontShape
The font style.
Constructors
ShapeNormal
ShapeItalic
ShapeSlant
show/hide Instances
data FontWeight
The font weight.
Constructors
WeightNormal
WeightBold
WeightLight
show/hide 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.
withFontStyle :: FontStyle -> (Font () -> IO a) -> IO a
Use a font that is automatically deleted at the end of the computation.
dcWithFontStyle :: DC a -> FontStyle -> IO b -> IO b
Set a font that is automatically deleted at the end of the computation.
dcSetFontStyle :: DC a -> FontStyle -> IO ()
Set the font info of a DC.
dcGetFontStyle :: DC a -> IO FontStyle
Get the current font info.
fontCreateFromStyle :: FontStyle -> IO (Font (), IO ())
Create a Font from FontStyle. Returns both the font and a deletion procedure.
fontGetFontStyle :: Font () -> IO FontStyle
Get the FontStyle from a Font object.
Brush
data BrushStyle
Brush style.
Constructors
BrushStyle
_brushKind :: !BrushKind
_brushColor :: !Color
show/hide Instances
data BrushKind
Brush kind.
Constructors
BrushTransparentNo filling
BrushSolidSolid color
BrushHatchHatch pattern
_brushHatch :: !HatchStyle
BrushStippleBitmap pattern (on win95 only 8x8 bitmaps are supported)
_brushBitmap :: !(Bitmap ())
show/hide Instances
data HatchStyle
Hatch style.
Constructors
HatchBDiagonalBackward diagonal
HatchCrossDiagCrossed diagonal
HatchFDiagonalForward diagonal
HatchCrossCrossed orthogonal
HatchHorizontalHorizontal
HatchVerticalVertical
show/hide Instances
brushDefault :: BrushStyle
Default brush (transparent, black).
brushSolid :: Color -> BrushStyle
A solid brush of a specific color.
brushTransparent :: BrushStyle
A transparent brush.
dcSetBrushStyle :: DC a -> BrushStyle -> IO ()
Set the brush style (and text background color) of a device context.
dcGetBrushStyle :: DC a -> IO BrushStyle
Get the current brush of a device context.
withBrushStyle :: BrushStyle -> (Brush () -> IO a) -> IO a
Use a brush that is automatically deleted at the end of the computation.
dcWithBrushStyle :: DC a -> BrushStyle -> IO b -> IO b
Use a brush that is automatically deleted at the end of the computation.
dcWithBrush :: DC b -> Brush a -> IO c -> IO c
brushCreateFromStyle :: BrushStyle -> IO (Brush (), IO ())
Create a new brush from a BrushStyle. Returns both the brush and its deletion procedure.
brushGetBrushStyle :: Brush a -> IO BrushStyle
Get the BrushStyle of Brush.
Pen
data PenStyle
Pen style.
Constructors
PenStyle
_penKind :: !PenKind
_penColor :: !Color
_penWidth :: !Int
_penCap :: !CapStyle
_penJoin :: !JoinStyle
show/hide Instances
data PenKind
Pen kinds.
Constructors
PenTransparentNo edge.
PenSolid
PenDash
_penDash :: !DashStyle
PenHatch
_penHatch :: !HatchStyle
PenStipple_penColor is ignored
_penBitmap :: !(Bitmap ())
show/hide Instances
data CapStyle
Cap style
Constructors
CapRoundEnd points are rounded
CapProjecting
CapButt
show/hide Instances
data JoinStyle
Join style.
Constructors
JoinRoundCorners are rounded
JoinBevelCorners are bevelled
JoinMiterCorners are blocked
show/hide Instances
data DashStyle
Dash style
Constructors
DashDot
DashLong
DashShort
DashDotShort
show/hide 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.
dcSetPenStyle :: DC a -> PenStyle -> IO ()
Set the current pen style. The text color is also adapted.
dcGetPenStyle :: DC a -> IO PenStyle
Get the current pen style.
withPenStyle :: PenStyle -> (Pen () -> IO a) -> IO a
Use a pen that is automatically deleted at the end of the computation.
dcWithPenStyle :: DC a -> PenStyle -> IO b -> IO b
Set a pen that is automatically deleted at the end of the computation.
dcWithPen :: DC a -> Pen p -> IO b -> IO b
Set a pen that is used during a certain computation.
penCreateFromStyle :: PenStyle -> IO (Pen (), IO ())
Create a new pen from a PenStyle. Returns both the pen and its deletion procedure.
penGetPenStyle :: Pen a -> IO PenStyle
Create a PenStyle from a Pen.
Produced by Haddock version 0.8