module Graphics.Rendering.Cairo.Internal.Drawing.Cairo where
import Graphics.Rendering.Cairo.Types
import Foreign
import Foreign.C
create :: Surface -> IO (Cairo)
create a1 =
withSurface a1 $ \a1' ->
create'_ a1' >>= \res ->
let {res' = Cairo res} in
return (res')
reference :: Cairo -> IO ()
reference a1 =
let {a1' = unCairo a1} in
reference'_ a1' >>= \res ->
return ()
destroy :: Cairo -> IO ()
destroy a1 =
let {a1' = unCairo a1} in
destroy'_ a1' >>= \res ->
return ()
save :: Cairo -> IO ()
save a1 =
let {a1' = unCairo a1} in
save'_ a1' >>= \res ->
return ()
restore :: Cairo -> IO ()
restore a1 =
let {a1' = unCairo a1} in
restore'_ a1' >>= \res ->
return ()
status :: Cairo -> IO (Status)
status a1 =
let {a1' = unCairo a1} in
status'_ a1' >>= \res ->
let {res' = cToEnum res} in
return (res')
getTarget :: Cairo -> IO (Surface)
getTarget a1 =
let {a1' = unCairo a1} in
getTarget'_ a1' >>= \res ->
mkSurface res >>= \res' ->
return (res')
pushGroup :: Cairo -> IO ()
pushGroup a1 =
let {a1' = unCairo a1} in
pushGroup'_ a1' >>= \res ->
return ()
pushGroupWithContent :: Cairo -> Content -> IO ()
pushGroupWithContent a1 a2 =
let {a1' = unCairo a1} in
let {a2' = cFromEnum a2} in
pushGroupWithContent'_ a1' a2' >>= \res ->
return ()
popGroup :: Cairo -> IO (Pattern)
popGroup a1 =
let {a1' = unCairo a1} in
popGroup'_ a1' >>= \res ->
let {res' = Pattern res} in
return (res')
popGroupToSource :: Cairo -> IO ()
popGroupToSource a1 =
let {a1' = unCairo a1} in
popGroupToSource'_ a1' >>= \res ->
return ()
setSourceRGB :: Cairo -> Double -> Double -> Double -> IO ()
setSourceRGB a1 a2 a3 a4 =
let {a1' = unCairo a1} in
let {a2' = cFloatConv a2} in
let {a3' = cFloatConv a3} in
let {a4' = cFloatConv a4} in
setSourceRGB'_ a1' a2' a3' a4' >>= \res ->
return ()
setSourceRGBA :: Cairo -> Double -> Double -> Double -> Double -> IO ()
setSourceRGBA a1 a2 a3 a4 a5 =
let {a1' = unCairo a1} in
let {a2' = cFloatConv a2} in
let {a3' = cFloatConv a3} in
let {a4' = cFloatConv a4} in
let {a5' = cFloatConv a5} in
setSourceRGBA'_ a1' a2' a3' a4' a5' >>= \res ->
return ()
setSource :: Cairo -> Pattern -> IO ()
setSource a1 a2 =
let {a1' = unCairo a1} in
let {a2' = unPattern a2} in
setSource'_ a1' a2' >>= \res ->
return ()
setSourceSurface :: Cairo -> Surface -> Double -> Double -> IO ()
setSourceSurface a1 a2 a3 a4 =
let {a1' = unCairo a1} in
withSurface a2 $ \a2' ->
let {a3' = cFloatConv a3} in
let {a4' = cFloatConv a4} in
setSourceSurface'_ a1' a2' a3' a4' >>= \res ->
return ()
getSource :: Cairo -> IO (Pattern)
getSource a1 =
let {a1' = unCairo a1} in
getSource'_ a1' >>= \res ->
let {res' = Pattern res} in
return (res')
setAntialias :: Cairo -> Antialias -> IO ()
setAntialias a1 a2 =
let {a1' = unCairo a1} in
let {a2' = cFromEnum a2} in
setAntialias'_ a1' a2' >>= \res ->
return ()
getAntialias :: Cairo -> IO (Antialias)
getAntialias a1 =
let {a1' = unCairo a1} in
getAntialias'_ a1' >>= \res ->
let {res' = cToEnum res} in
return (res')
setDash context xs offset = withArrayLen (map (cFloatConv) xs) $ \len ptr ->
(\(Cairo arg1) arg2 arg3 arg4 -> cairo_set_dash arg1 arg2 arg3 arg4) context ptr (cIntConv len) (cFloatConv offset)
setFillRule :: Cairo -> FillRule -> IO ()
setFillRule a1 a2 =
let {a1' = unCairo a1} in
let {a2' = cFromEnum a2} in
setFillRule'_ a1' a2' >>= \res ->
return ()
getFillRule :: Cairo -> IO (FillRule)
getFillRule a1 =
let {a1' = unCairo a1} in
getFillRule'_ a1' >>= \res ->
let {res' = cToEnum res} in
return (res')
setLineCap :: Cairo -> LineCap -> IO ()
setLineCap a1 a2 =
let {a1' = unCairo a1} in
let {a2' = cFromEnum a2} in
setLineCap'_ a1' a2' >>= \res ->
return ()
getLineCap :: Cairo -> IO (LineCap)
getLineCap a1 =
let {a1' = unCairo a1} in
getLineCap'_ a1' >>= \res ->
let {res' = cToEnum res} in
return (res')
setLineJoin :: Cairo -> LineJoin -> IO ()
setLineJoin a1 a2 =
let {a1' = unCairo a1} in
let {a2' = cFromEnum a2} in
setLineJoin'_ a1' a2' >>= \res ->
return ()
getLineJoin :: Cairo -> IO (LineJoin)
getLineJoin a1 =
let {a1' = unCairo a1} in
getLineJoin'_ a1' >>= \res ->
let {res' = cToEnum res} in
return (res')
setLineWidth :: Cairo -> Double -> IO ()
setLineWidth a1 a2 =
let {a1' = unCairo a1} in
let {a2' = cFloatConv a2} in
setLineWidth'_ a1' a2' >>= \res ->
return ()
getLineWidth :: Cairo -> IO (Double)
getLineWidth a1 =
let {a1' = unCairo a1} in
getLineWidth'_ a1' >>= \res ->
let {res' = cFloatConv res} in
return (res')
setMiterLimit :: Cairo -> Double -> IO ()
setMiterLimit a1 a2 =
let {a1' = unCairo a1} in
let {a2' = cFloatConv a2} in
setMiterLimit'_ a1' a2' >>= \res ->
return ()
getMiterLimit :: Cairo -> IO (Double)
getMiterLimit a1 =
let {a1' = unCairo a1} in
getMiterLimit'_ a1' >>= \res ->
let {res' = cFloatConv res} in
return (res')
setOperator :: Cairo -> Operator -> IO ()
setOperator a1 a2 =
let {a1' = unCairo a1} in
let {a2' = cFromEnum a2} in
setOperator'_ a1' a2' >>= \res ->
return ()
getOperator :: Cairo -> IO (Operator)
getOperator a1 =
let {a1' = unCairo a1} in
getOperator'_ a1' >>= \res ->
let {res' = cToEnum res} in
return (res')
setTolerance :: Cairo -> Double -> IO ()
setTolerance a1 a2 =
let {a1' = unCairo a1} in
let {a2' = cFloatConv a2} in
setTolerance'_ a1' a2' >>= \res ->
return ()
getTolerance :: Cairo -> IO (Double)
getTolerance a1 =
let {a1' = unCairo a1} in
getTolerance'_ a1' >>= \res ->
let {res' = cFloatConv res} in
return (res')
clip :: Cairo -> IO ()
clip a1 =
let {a1' = unCairo a1} in
clip'_ a1' >>= \res ->
return ()
clipPreserve :: Cairo -> IO ()
clipPreserve a1 =
let {a1' = unCairo a1} in
clipPreserve'_ a1' >>= \res ->
return ()
resetClip :: Cairo -> IO ()
resetClip a1 =
let {a1' = unCairo a1} in
resetClip'_ a1' >>= \res ->
return ()
fill :: Cairo -> IO ()
fill a1 =
let {a1' = unCairo a1} in
fill'_ a1' >>= \res ->
return ()
fillPreserve :: Cairo -> IO ()
fillPreserve a1 =
let {a1' = unCairo a1} in
fillPreserve'_ a1' >>= \res ->
return ()
fillExtents :: Cairo -> IO (Double, Double, Double, Double)
fillExtents a1 =
let {a1' = unCairo a1} in
alloca $ \a2' ->
alloca $ \a3' ->
alloca $ \a4' ->
alloca $ \a5' ->
fillExtents'_ a1' a2' a3' a4' a5' >>= \res ->
peekFloatConv a2'>>= \a2'' ->
peekFloatConv a3'>>= \a3'' ->
peekFloatConv a4'>>= \a4'' ->
peekFloatConv a5'>>= \a5'' ->
return (a2'', a3'', a4'', a5'')
inFill :: Cairo -> Double -> Double -> IO (Bool)
inFill a1 a2 a3 =
let {a1' = unCairo a1} in
let {a2' = cFloatConv a2} in
let {a3' = cFloatConv a3} in
inFill'_ a1' a2' a3' >>= \res ->
let {res' = cToBool res} in
return (res')
mask :: Cairo -> Pattern -> IO ()
mask a1 a2 =
let {a1' = unCairo a1} in
let {a2' = unPattern a2} in
mask'_ a1' a2' >>= \res ->
return ()
maskSurface :: Cairo -> Surface -> Double -> Double -> IO ()
maskSurface a1 a2 a3 a4 =
let {a1' = unCairo a1} in
withSurface a2 $ \a2' ->
let {a3' = cFloatConv a3} in
let {a4' = cFloatConv a4} in
maskSurface'_ a1' a2' a3' a4' >>= \res ->
return ()
paint :: Cairo -> IO ()
paint a1 =
let {a1' = unCairo a1} in
paint'_ a1' >>= \res ->
return ()
paintWithAlpha :: Cairo -> Double -> IO ()
paintWithAlpha a1 a2 =
let {a1' = unCairo a1} in
let {a2' = cFloatConv a2} in
paintWithAlpha'_ a1' a2' >>= \res ->
return ()
stroke :: Cairo -> IO ()
stroke a1 =
let {a1' = unCairo a1} in
stroke'_ a1' >>= \res ->
return ()
strokePreserve :: Cairo -> IO ()
strokePreserve a1 =
let {a1' = unCairo a1} in
strokePreserve'_ a1' >>= \res ->
return ()
strokeExtents :: Cairo -> IO (Double, Double, Double, Double)
strokeExtents a1 =
let {a1' = unCairo a1} in
alloca $ \a2' ->
alloca $ \a3' ->
alloca $ \a4' ->
alloca $ \a5' ->
strokeExtents'_ a1' a2' a3' a4' a5' >>= \res ->
peekFloatConv a2'>>= \a2'' ->
peekFloatConv a3'>>= \a3'' ->
peekFloatConv a4'>>= \a4'' ->
peekFloatConv a5'>>= \a5'' ->
return (a2'', a3'', a4'', a5'')
inStroke :: Cairo -> Double -> Double -> IO (Bool)
inStroke a1 a2 a3 =
let {a1' = unCairo a1} in
let {a2' = cFloatConv a2} in
let {a3' = cFloatConv a3} in
inStroke'_ a1' a2' a3' >>= \res ->
let {res' = cToBool res} in
return (res')
copyPage :: Cairo -> IO ()
copyPage a1 =
let {a1' = unCairo a1} in
copyPage'_ a1' >>= \res ->
return ()
showPage :: Cairo -> IO ()
showPage a1 =
let {a1' = unCairo a1} in
showPage'_ a1' >>= \res ->
return ()
foreign import ccall safe "cairo_create"
create'_ :: ((Ptr Surface) -> (IO (Ptr Cairo)))
foreign import ccall safe "cairo_reference"
reference'_ :: ((Ptr Cairo) -> (IO (Ptr Cairo)))
foreign import ccall safe "cairo_destroy"
destroy'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_save"
save'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_restore"
restore'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_status"
status'_ :: ((Ptr Cairo) -> (IO CInt))
foreign import ccall safe "cairo_get_target"
getTarget'_ :: ((Ptr Cairo) -> (IO (Ptr Surface)))
foreign import ccall safe "cairo_push_group"
pushGroup'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_push_group_with_content"
pushGroupWithContent'_ :: ((Ptr Cairo) -> (CInt -> (IO ())))
foreign import ccall safe "cairo_pop_group"
popGroup'_ :: ((Ptr Cairo) -> (IO (Ptr Pattern)))
foreign import ccall safe "cairo_pop_group_to_source"
popGroupToSource'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_set_source_rgb"
setSourceRGB'_ :: ((Ptr Cairo) -> (CDouble -> (CDouble -> (CDouble -> (IO ())))))
foreign import ccall safe "cairo_set_source_rgba"
setSourceRGBA'_ :: ((Ptr Cairo) -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (IO ()))))))
foreign import ccall safe "cairo_set_source"
setSource'_ :: ((Ptr Cairo) -> ((Ptr Pattern) -> (IO ())))
foreign import ccall safe "cairo_set_source_surface"
setSourceSurface'_ :: ((Ptr Cairo) -> ((Ptr Surface) -> (CDouble -> (CDouble -> (IO ())))))
foreign import ccall safe "cairo_get_source"
getSource'_ :: ((Ptr Cairo) -> (IO (Ptr Pattern)))
foreign import ccall safe "cairo_set_antialias"
setAntialias'_ :: ((Ptr Cairo) -> (CInt -> (IO ())))
foreign import ccall safe "cairo_get_antialias"
getAntialias'_ :: ((Ptr Cairo) -> (IO CInt))
foreign import ccall safe "cairo_set_dash"
cairo_set_dash :: ((Ptr Cairo) -> ((Ptr CDouble) -> (CInt -> (CDouble -> (IO ())))))
foreign import ccall safe "cairo_set_fill_rule"
setFillRule'_ :: ((Ptr Cairo) -> (CInt -> (IO ())))
foreign import ccall safe "cairo_get_fill_rule"
getFillRule'_ :: ((Ptr Cairo) -> (IO CInt))
foreign import ccall safe "cairo_set_line_cap"
setLineCap'_ :: ((Ptr Cairo) -> (CInt -> (IO ())))
foreign import ccall safe "cairo_get_line_cap"
getLineCap'_ :: ((Ptr Cairo) -> (IO CInt))
foreign import ccall safe "cairo_set_line_join"
setLineJoin'_ :: ((Ptr Cairo) -> (CInt -> (IO ())))
foreign import ccall safe "cairo_get_line_join"
getLineJoin'_ :: ((Ptr Cairo) -> (IO CInt))
foreign import ccall safe "cairo_set_line_width"
setLineWidth'_ :: ((Ptr Cairo) -> (CDouble -> (IO ())))
foreign import ccall safe "cairo_get_line_width"
getLineWidth'_ :: ((Ptr Cairo) -> (IO CDouble))
foreign import ccall safe "cairo_set_miter_limit"
setMiterLimit'_ :: ((Ptr Cairo) -> (CDouble -> (IO ())))
foreign import ccall safe "cairo_get_miter_limit"
getMiterLimit'_ :: ((Ptr Cairo) -> (IO CDouble))
foreign import ccall safe "cairo_set_operator"
setOperator'_ :: ((Ptr Cairo) -> (CInt -> (IO ())))
foreign import ccall safe "cairo_get_operator"
getOperator'_ :: ((Ptr Cairo) -> (IO CInt))
foreign import ccall safe "cairo_set_tolerance"
setTolerance'_ :: ((Ptr Cairo) -> (CDouble -> (IO ())))
foreign import ccall safe "cairo_get_tolerance"
getTolerance'_ :: ((Ptr Cairo) -> (IO CDouble))
foreign import ccall safe "cairo_clip"
clip'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_clip_preserve"
clipPreserve'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_reset_clip"
resetClip'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_fill"
fill'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_fill_preserve"
fillPreserve'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_fill_extents"
fillExtents'_ :: ((Ptr Cairo) -> ((Ptr CDouble) -> ((Ptr CDouble) -> ((Ptr CDouble) -> ((Ptr CDouble) -> (IO ()))))))
foreign import ccall safe "cairo_in_fill"
inFill'_ :: ((Ptr Cairo) -> (CDouble -> (CDouble -> (IO CInt))))
foreign import ccall safe "cairo_mask"
mask'_ :: ((Ptr Cairo) -> ((Ptr Pattern) -> (IO ())))
foreign import ccall safe "cairo_mask_surface"
maskSurface'_ :: ((Ptr Cairo) -> ((Ptr Surface) -> (CDouble -> (CDouble -> (IO ())))))
foreign import ccall safe "cairo_paint"
paint'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_paint_with_alpha"
paintWithAlpha'_ :: ((Ptr Cairo) -> (CDouble -> (IO ())))
foreign import ccall safe "cairo_stroke"
stroke'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_stroke_preserve"
strokePreserve'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_stroke_extents"
strokeExtents'_ :: ((Ptr Cairo) -> ((Ptr CDouble) -> ((Ptr CDouble) -> ((Ptr CDouble) -> ((Ptr CDouble) -> (IO ()))))))
foreign import ccall safe "cairo_in_stroke"
inStroke'_ :: ((Ptr Cairo) -> (CDouble -> (CDouble -> (IO CInt))))
foreign import ccall safe "cairo_copy_page"
copyPage'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_show_page"
showPage'_ :: ((Ptr Cairo) -> (IO ()))