{-# LINE 1 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
module Graphics.Rendering.Cairo.Internal.Drawing.Paths where
import Graphics.Rendering.Cairo.Types
{-# LINE 16 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
import Foreign
import Foreign.C
import Data.Text
import Graphics.Rendering.Cairo.Internal.Utilities (CairoString(..))
{-# LINE 24 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
getCurrentPoint :: Cairo -> IO (Double, Double)
getCurrentPoint a1 =
let {a1' = unCairo a1} in
alloca $ \a2' ->
alloca $ \a3' ->
getCurrentPoint'_ a1' a2' a3' >>= \res ->
peekFloatConv a2'>>= \a2'' ->
peekFloatConv a3'>>= \a3'' ->
return (a2'', a3'')
{-# LINE 26 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
newPath :: Cairo -> IO ()
newPath a1 =
let {a1' = unCairo a1} in
newPath'_ a1' >>= \res ->
return ()
{-# LINE 27 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
closePath :: Cairo -> IO ()
closePath a1 =
let {a1' = unCairo a1} in
closePath'_ a1' >>= \res ->
return ()
{-# LINE 28 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
arc :: Cairo -> Double -> Double -> Double -> Double -> Double -> IO ()
arc a1 a2 a3 a4 a5 a6 =
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
let {a6' = cFloatConv a6} in
arc'_ a1' a2' a3' a4' a5' a6' >>= \res ->
return ()
{-# LINE 29 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
arcNegative :: Cairo -> Double -> Double -> Double -> Double -> Double -> IO ()
arcNegative a1 a2 a3 a4 a5 a6 =
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
let {a6' = cFloatConv a6} in
arcNegative'_ a1' a2' a3' a4' a5' a6' >>= \res ->
return ()
{-# LINE 30 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
curveTo :: Cairo -> Double -> Double -> Double -> Double -> Double -> Double -> IO ()
curveTo a1 a2 a3 a4 a5 a6 a7 =
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
let {a6' = cFloatConv a6} in
let {a7' = cFloatConv a7} in
curveTo'_ a1' a2' a3' a4' a5' a6' a7' >>= \res ->
return ()
{-# LINE 31 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
lineTo :: Cairo -> Double -> Double -> IO ()
lineTo a1 a2 a3 =
let {a1' = unCairo a1} in
let {a2' = cFloatConv a2} in
let {a3' = cFloatConv a3} in
lineTo'_ a1' a2' a3' >>= \res ->
return ()
{-# LINE 32 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
moveTo :: Cairo -> Double -> Double -> IO ()
moveTo a1 a2 a3 =
let {a1' = unCairo a1} in
let {a2' = cFloatConv a2} in
let {a3' = cFloatConv a3} in
moveTo'_ a1' a2' a3' >>= \res ->
return ()
{-# LINE 33 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
rectangle :: Cairo -> Double -> Double -> Double -> Double -> IO ()
rectangle 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
rectangle'_ a1' a2' a3' a4' a5' >>= \res ->
return ()
{-# LINE 34 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
textPath :: CairoString string => Cairo -> string -> IO ()
textPath c string =
withUTFString string $ \string' ->
(\(Cairo arg1) arg2 -> cairo_text_path arg1 arg2)
{-# LINE 38 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
c string'
relCurveTo :: Cairo -> Double -> Double -> Double -> Double -> Double -> Double -> IO ()
relCurveTo a1 a2 a3 a4 a5 a6 a7 =
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
let {a6' = cFloatConv a6} in
let {a7' = cFloatConv a7} in
relCurveTo'_ a1' a2' a3' a4' a5' a6' a7' >>= \res ->
return ()
{-# LINE 40 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
relLineTo :: Cairo -> Double -> Double -> IO ()
relLineTo a1 a2 a3 =
let {a1' = unCairo a1} in
let {a2' = cFloatConv a2} in
let {a3' = cFloatConv a3} in
relLineTo'_ a1' a2' a3' >>= \res ->
return ()
{-# LINE 41 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
relMoveTo :: Cairo -> Double -> Double -> IO ()
relMoveTo a1 a2 a3 =
let {a1' = unCairo a1} in
let {a2' = cFloatConv a2} in
let {a3' = cFloatConv a3} in
relMoveTo'_ a1' a2' a3' >>= \res ->
return ()
{-# LINE 42 "./Graphics/Rendering/Cairo/Internal/Drawing/Paths.chs" #-}
foreign import ccall safe "cairo_get_current_point"
getCurrentPoint'_ :: ((Ptr Cairo) -> ((Ptr CDouble) -> ((Ptr CDouble) -> (IO ()))))
foreign import ccall safe "cairo_new_path"
newPath'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_close_path"
closePath'_ :: ((Ptr Cairo) -> (IO ()))
foreign import ccall safe "cairo_arc"
arc'_ :: ((Ptr Cairo) -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (IO ())))))))
foreign import ccall safe "cairo_arc_negative"
arcNegative'_ :: ((Ptr Cairo) -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (IO ())))))))
foreign import ccall safe "cairo_curve_to"
curveTo'_ :: ((Ptr Cairo) -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (IO ()))))))))
foreign import ccall safe "cairo_line_to"
lineTo'_ :: ((Ptr Cairo) -> (CDouble -> (CDouble -> (IO ()))))
foreign import ccall safe "cairo_move_to"
moveTo'_ :: ((Ptr Cairo) -> (CDouble -> (CDouble -> (IO ()))))
foreign import ccall safe "cairo_rectangle"
rectangle'_ :: ((Ptr Cairo) -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (IO ()))))))
foreign import ccall safe "cairo_text_path"
cairo_text_path :: ((Ptr Cairo) -> ((Ptr CChar) -> (IO ())))
foreign import ccall safe "cairo_rel_curve_to"
relCurveTo'_ :: ((Ptr Cairo) -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (CDouble -> (IO ()))))))))
foreign import ccall safe "cairo_rel_line_to"
relLineTo'_ :: ((Ptr Cairo) -> (CDouble -> (CDouble -> (IO ()))))
foreign import ccall safe "cairo_rel_move_to"
relMoveTo'_ :: ((Ptr Cairo) -> (CDouble -> (CDouble -> (IO ()))))