{-# LINE 1 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} {-# LANGUAGE BlockArguments #-} {-# LANGUAGE PatternSynonyms #-} {-# OPTIOnS_GHC -Wall -fno-warn-tabs #-} module Graphics.Cairo.Drawing.CairoT.Setting where import Foreign.Ptr import Foreign.Marshal import Foreign.Storable import Foreign.C.Types import Control.Monad.Primitive import Data.Word import Data.CairoContext import Graphics.Cairo.Exception import Graphics.Cairo.Drawing.CairoT.CairoOperatorT class CairoSetting s where cairoSet :: PrimMonad m => CairoT r (PrimState m) -> s -> m () cairoGet :: PrimMonad m => CairoT r (PrimState m) -> m s newtype LineWidth = LineWidth { LineWidth -> CDouble getLineWidth :: CDouble } deriving Int -> LineWidth -> ShowS [LineWidth] -> ShowS LineWidth -> String (Int -> LineWidth -> ShowS) -> (LineWidth -> String) -> ([LineWidth] -> ShowS) -> Show LineWidth forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> LineWidth -> ShowS showsPrec :: Int -> LineWidth -> ShowS $cshow :: LineWidth -> String show :: LineWidth -> String $cshowList :: [LineWidth] -> ShowS showList :: [LineWidth] -> ShowS Show instance CairoSetting LineWidth where cairoSet :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> LineWidth -> m () cairoSet CairoT r (PrimState m) cr = CairoT r (PrimState m) -> CDouble -> m () forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> CDouble -> m () cairoSetLineWidth CairoT r (PrimState m) cr (CDouble -> m ()) -> (LineWidth -> CDouble) -> LineWidth -> m () forall b c a. (b -> c) -> (a -> b) -> a -> c . LineWidth -> CDouble getLineWidth cairoGet :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m LineWidth cairoGet CairoT r (PrimState m) cr = CDouble -> LineWidth LineWidth (CDouble -> LineWidth) -> m CDouble -> m LineWidth forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO CDouble) -> m CDouble forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr Ptr (CairoT r (PrimState m)) -> IO CDouble forall r s. Ptr (CairoT r s) -> IO CDouble c_cairo_get_line_width cairoSetLineWidth :: PrimMonad m => CairoT r (PrimState m) -> CDouble -> m () cairoSetLineWidth :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> CDouble -> m () cairoSetLineWidth CairoT r (PrimState m) cr CDouble w = CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO ()) -> m () forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr \Ptr (CairoT r (PrimState m)) pcr -> Ptr (CairoT r (PrimState m)) -> CDouble -> IO () forall r s. Ptr (CairoT r s) -> CDouble -> IO () c_cairo_set_line_width Ptr (CairoT r (PrimState m)) pcr CDouble w foreign import ccall "cairo_set_line_width" c_cairo_set_line_width :: Ptr (CairoT r s) -> CDouble -> IO () foreign import ccall "cairo_get_line_width" c_cairo_get_line_width :: Ptr (CairoT r s) -> IO CDouble data Dash = Dash [CDouble] CDouble deriving Int -> Dash -> ShowS [Dash] -> ShowS Dash -> String (Int -> Dash -> ShowS) -> (Dash -> String) -> ([Dash] -> ShowS) -> Show Dash forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Dash -> ShowS showsPrec :: Int -> Dash -> ShowS $cshow :: Dash -> String show :: Dash -> String $cshowList :: [Dash] -> ShowS showList :: [Dash] -> ShowS Show instance CairoSetting Dash where cairoSet :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> Dash -> m () cairoSet CairoT r (PrimState m) cr (Dash [CDouble] ds CDouble ofs) = CairoT r (PrimState m) -> [CDouble] -> CDouble -> m () forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> [CDouble] -> CDouble -> m () cairoSetDash CairoT r (PrimState m) cr [CDouble] ds CDouble ofs cairoGet :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m Dash cairoGet CairoT r (PrimState m) cr = ([CDouble] -> CDouble -> Dash) -> ([CDouble], CDouble) -> Dash forall a b c. (a -> b -> c) -> (a, b) -> c uncurry [CDouble] -> CDouble -> Dash Dash (([CDouble], CDouble) -> Dash) -> m ([CDouble], CDouble) -> m Dash forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> CairoT r (PrimState m) -> m ([CDouble], CDouble) forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m ([CDouble], CDouble) cairoGetDash CairoT r (PrimState m) cr cairoSetDash :: PrimMonad m => CairoT r (PrimState m) -> [CDouble] -> CDouble -> m () cairoSetDash :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> [CDouble] -> CDouble -> m () cairoSetDash CairoT r (PrimState m) cr [CDouble] ds CDouble ofs = CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO ()) -> m () forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr \Ptr (CairoT r (PrimState m)) pcr -> [CDouble] -> (Int -> Ptr CDouble -> IO ()) -> IO () forall a b. Storable a => [a] -> (Int -> Ptr a -> IO b) -> IO b withArrayLen [CDouble] ds \Int lds Ptr CDouble pds -> do Ptr (CairoT r (PrimState m)) -> Ptr CDouble -> CInt -> CDouble -> IO () forall r s. Ptr (CairoT r s) -> Ptr CDouble -> CInt -> CDouble -> IO () c_cairo_set_dash Ptr (CairoT r (PrimState m)) pcr Ptr CDouble pds (Int -> CInt forall a b. (Integral a, Num b) => a -> b fromIntegral Int lds) CDouble ofs CairoT r (PrimState m) -> IO () forall r s. CairoT r s -> IO () raiseIfError CairoT r (PrimState m) cr foreign import ccall "cairo_set_dash" c_cairo_set_dash :: Ptr (CairoT r s) -> Ptr CDouble -> CInt -> CDouble -> IO () cairoGetDash :: PrimMonad m => CairoT r (PrimState m) -> m ([CDouble], CDouble) cairoGetDash :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m ([CDouble], CDouble) cairoGetDash CairoT r (PrimState m) cr = CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO ([CDouble], CDouble)) -> m ([CDouble], CDouble) forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr \Ptr (CairoT r (PrimState m)) pcr -> do ln <- CInt -> Int forall a b. (Integral a, Num b) => a -> b fromIntegral (CInt -> Int) -> IO CInt -> IO Int forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Ptr (CairoT r (PrimState m)) -> IO CInt forall r s. Ptr (CairoT r s) -> IO CInt c_cairo_get_dash_count Ptr (CairoT r (PrimState m)) pcr allocaArray ln \Ptr CDouble ds -> (Ptr CDouble -> IO ([CDouble], CDouble)) -> IO ([CDouble], CDouble) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble ofs -> do Ptr (CairoT r (PrimState m)) -> Ptr CDouble -> Ptr CDouble -> IO () forall r s. Ptr (CairoT r s) -> Ptr CDouble -> Ptr CDouble -> IO () c_cairo_get_dash Ptr (CairoT r (PrimState m)) pcr Ptr CDouble ds Ptr CDouble ofs (,) ([CDouble] -> CDouble -> ([CDouble], CDouble)) -> IO [CDouble] -> IO (CDouble -> ([CDouble], CDouble)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Int -> Ptr CDouble -> IO [CDouble] forall a. Storable a => Int -> Ptr a -> IO [a] peekArray Int ln Ptr CDouble ds IO (CDouble -> ([CDouble], CDouble)) -> IO CDouble -> IO ([CDouble], CDouble) forall a b. IO (a -> b) -> IO a -> IO b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Ptr CDouble -> IO CDouble forall a. Storable a => Ptr a -> IO a peek Ptr CDouble ofs foreign import ccall "cairo_get_dash_count" c_cairo_get_dash_count :: Ptr (CairoT r s) -> IO CInt foreign import ccall "cairo_get_dash" c_cairo_get_dash :: Ptr (CairoT r s) -> Ptr CDouble -> Ptr CDouble -> IO () newtype FillRule = FillRule Word32 deriving Int -> FillRule -> ShowS [FillRule] -> ShowS FillRule -> String (Int -> FillRule -> ShowS) -> (FillRule -> String) -> ([FillRule] -> ShowS) -> Show FillRule forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> FillRule -> ShowS showsPrec :: Int -> FillRule -> ShowS $cshow :: FillRule -> String show :: FillRule -> String $cshowList :: [FillRule] -> ShowS showList :: [FillRule] -> ShowS Show {-# LINE 66 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} pattern FillRuleWinding :: FillRule pattern $mFillRuleWinding :: forall {r}. FillRule -> ((# #) -> r) -> ((# #) -> r) -> r $bFillRuleWinding :: FillRule FillRuleWinding <- FillRule 0 where {-# LINE 69 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} FillRuleWinding = Word32 -> FillRule FillRule Word32 0 {-# LINE 70 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} pattern FillRuleEvenOdd :: FillRule pattern $mFillRuleEvenOdd :: forall {r}. FillRule -> ((# #) -> r) -> ((# #) -> r) -> r $bFillRuleEvenOdd :: FillRule FillRuleEvenOdd <- FillRule 1 where {-# LINE 73 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} FillRuleEvenOdd = Word32 -> FillRule FillRule Word32 1 {-# LINE 74 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} instance CairoSetting FillRule where cairoSet :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> FillRule -> m () cairoSet CairoT r (PrimState m) cr (FillRule Word32 fr) = CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO ()) -> m () forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr \Ptr (CairoT r (PrimState m)) pcr -> Ptr (CairoT r (PrimState m)) -> Word32 -> IO () forall r s. Ptr (CairoT r s) -> Word32 -> IO () c_cairo_set_fill_rule Ptr (CairoT r (PrimState m)) pcr Word32 fr cairoGet :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m FillRule cairoGet CairoT r (PrimState m) cr = Word32 -> FillRule FillRule (Word32 -> FillRule) -> m Word32 -> m FillRule forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO Word32) -> m Word32 forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr Ptr (CairoT r (PrimState m)) -> IO Word32 forall r s. Ptr (CairoT r s) -> IO Word32 c_cairo_get_fill_rule foreign import ccall "cairo_set_fill_rule" c_cairo_set_fill_rule :: Ptr (CairoT r s) -> Word32 -> IO () {-# LINE 81 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} foreign import ccall "cairo_get_fill_rule" c_cairo_get_fill_rule :: Ptr (CairoT r s) -> IO Word32 {-# LINE 84 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} newtype LineCap = LineCap { LineCap -> Word32 getLineCap :: Word32 } deriving Int -> LineCap -> ShowS [LineCap] -> ShowS LineCap -> String (Int -> LineCap -> ShowS) -> (LineCap -> String) -> ([LineCap] -> ShowS) -> Show LineCap forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> LineCap -> ShowS showsPrec :: Int -> LineCap -> ShowS $cshow :: LineCap -> String show :: LineCap -> String $cshowList :: [LineCap] -> ShowS showList :: [LineCap] -> ShowS Show {-# LINE 87 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} pattern LineCapButt :: LineCap pattern $mLineCapButt :: forall {r}. LineCap -> ((# #) -> r) -> ((# #) -> r) -> r $bLineCapButt :: LineCap LineCapButt <- LineCap 0 where {-# LINE 90 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} LineCapButt = Word32 -> LineCap LineCap Word32 0 {-# LINE 91 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} pattern LineCapRound :: LineCap pattern $mLineCapRound :: forall {r}. LineCap -> ((# #) -> r) -> ((# #) -> r) -> r $bLineCapRound :: LineCap LineCapRound <- LineCap 1 where {-# LINE 94 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} LineCapRound = Word32 -> LineCap LineCap Word32 1 {-# LINE 95 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} pattern LineCapSquare :: LineCap pattern $mLineCapSquare :: forall {r}. LineCap -> ((# #) -> r) -> ((# #) -> r) -> r $bLineCapSquare :: LineCap LineCapSquare <- LineCap 2 where {-# LINE 98 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} LineCapSquare = Word32 -> LineCap LineCap Word32 2 {-# LINE 99 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} instance CairoSetting LineCap where cairoSet :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> LineCap -> m () cairoSet CairoT r (PrimState m) cr (LineCap Word32 c) = CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO ()) -> m () forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr (Ptr (CairoT r (PrimState m)) -> Word32 -> IO () forall r s. Ptr (CairoT r s) -> Word32 -> IO () `c_cairo_set_line_cap` Word32 c) cairoGet :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m LineCap cairoGet CairoT r (PrimState m) cr = Word32 -> LineCap LineCap (Word32 -> LineCap) -> m Word32 -> m LineCap forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO Word32) -> m Word32 forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr Ptr (CairoT r (PrimState m)) -> IO Word32 forall r s. Ptr (CairoT r s) -> IO Word32 c_cairo_get_line_cap foreign import ccall "cairo_set_line_cap" c_cairo_set_line_cap :: Ptr (CairoT r s) -> Word32 -> IO () {-# LINE 106 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} foreign import ccall "cairo_get_line_cap" c_cairo_get_line_cap :: Ptr (CairoT r s) -> IO Word32 {-# LINE 109 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} newtype LineJoin = LineJoin Word32 deriving Int -> LineJoin -> ShowS [LineJoin] -> ShowS LineJoin -> String (Int -> LineJoin -> ShowS) -> (LineJoin -> String) -> ([LineJoin] -> ShowS) -> Show LineJoin forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> LineJoin -> ShowS showsPrec :: Int -> LineJoin -> ShowS $cshow :: LineJoin -> String show :: LineJoin -> String $cshowList :: [LineJoin] -> ShowS showList :: [LineJoin] -> ShowS Show {-# LINE 111 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} pattern LineJoinMiter :: LineJoin pattern $mLineJoinMiter :: forall {r}. LineJoin -> ((# #) -> r) -> ((# #) -> r) -> r $bLineJoinMiter :: LineJoin LineJoinMiter <- LineJoin 0 where {-# LINE 114 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} LineJoinMiter = Word32 -> LineJoin LineJoin Word32 0 {-# LINE 115 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} pattern LineJoinRound :: LineJoin pattern $mLineJoinRound :: forall {r}. LineJoin -> ((# #) -> r) -> ((# #) -> r) -> r $bLineJoinRound :: LineJoin LineJoinRound <- LineJoin 1 where {-# LINE 118 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} LineJoinRound = Word32 -> LineJoin LineJoin Word32 1 {-# LINE 119 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} pattern LineJoinBevel :: LineJoin pattern $mLineJoinBevel :: forall {r}. LineJoin -> ((# #) -> r) -> ((# #) -> r) -> r $bLineJoinBevel :: LineJoin LineJoinBevel <- LineJoin 2 where {-# LINE 122 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} LineJoinBevel = Word32 -> LineJoin LineJoin Word32 2 {-# LINE 123 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} instance CairoSetting LineJoin where cairoSet :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> LineJoin -> m () cairoSet CairoT r (PrimState m) cr (LineJoin Word32 j) = CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO ()) -> m () forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr (Ptr (CairoT r (PrimState m)) -> Word32 -> IO () forall r s. Ptr (CairoT r s) -> Word32 -> IO () `c_cairo_set_line_join` Word32 j) cairoGet :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m LineJoin cairoGet CairoT r (PrimState m) cr = Word32 -> LineJoin LineJoin (Word32 -> LineJoin) -> m Word32 -> m LineJoin forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO Word32) -> m Word32 forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr Ptr (CairoT r (PrimState m)) -> IO Word32 forall r s. Ptr (CairoT r s) -> IO Word32 c_cairo_get_line_join foreign import ccall "cairo_set_line_join" c_cairo_set_line_join :: Ptr (CairoT r s) -> Word32 -> IO () {-# LINE 130 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} foreign import ccall "cairo_get_line_join" c_cairo_get_line_join :: Ptr (CairoT r s) -> IO Word32 {-# LINE 133 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} newtype MiterLimit = MiterLimit CDouble deriving Int -> MiterLimit -> ShowS [MiterLimit] -> ShowS MiterLimit -> String (Int -> MiterLimit -> ShowS) -> (MiterLimit -> String) -> ([MiterLimit] -> ShowS) -> Show MiterLimit forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> MiterLimit -> ShowS showsPrec :: Int -> MiterLimit -> ShowS $cshow :: MiterLimit -> String show :: MiterLimit -> String $cshowList :: [MiterLimit] -> ShowS showList :: [MiterLimit] -> ShowS Show instance CairoSetting MiterLimit where cairoSet :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> MiterLimit -> m () cairoSet CairoT r (PrimState m) cr (MiterLimit CDouble ml) = CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO ()) -> m () forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr (Ptr (CairoT r (PrimState m)) -> CDouble -> IO () forall r s. Ptr (CairoT r s) -> CDouble -> IO () `c_cairo_set_miter_limit` CDouble ml) cairoGet :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m MiterLimit cairoGet CairoT r (PrimState m) cr = CDouble -> MiterLimit MiterLimit (CDouble -> MiterLimit) -> m CDouble -> m MiterLimit forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO CDouble) -> m CDouble forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr Ptr (CairoT r (PrimState m)) -> IO CDouble forall r s. Ptr (CairoT r s) -> IO CDouble c_cairo_get_miter_limit foreign import ccall "cairo_set_miter_limit" c_cairo_set_miter_limit :: Ptr (CairoT r s) -> CDouble -> IO () foreign import ccall "cairo_get_miter_limit" c_cairo_get_miter_limit :: Ptr (CairoT r s) -> IO CDouble instance CairoSetting Operator where cairoSet :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> Operator -> m () cairoSet CairoT r (PrimState m) cr (Operator Word32 o) = CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO ()) -> m () forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr (Ptr (CairoT r (PrimState m)) -> Word32 -> IO () forall r s. Ptr (CairoT r s) -> Word32 -> IO () `c_cairo_set_operator` Word32 o) cairoGet :: forall (m :: * -> *) r. PrimMonad m => CairoT r (PrimState m) -> m Operator cairoGet CairoT r (PrimState m) cr = Word32 -> Operator Operator (Word32 -> Operator) -> m Word32 -> m Operator forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO Word32) -> m Word32 forall (m :: * -> *) r a. PrimMonad m => CairoT r (PrimState m) -> (Ptr (CairoT r (PrimState m)) -> IO a) -> m a withCairoT CairoT r (PrimState m) cr Ptr (CairoT r (PrimState m)) -> IO Word32 forall r s. Ptr (CairoT r s) -> IO Word32 c_cairo_get_operator foreign import ccall "cairo_set_operator" c_cairo_set_operator :: Ptr (CairoT r s) -> Word32 -> IO () {-# LINE 152 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-} foreign import ccall "cairo_get_operator" c_cairo_get_operator :: Ptr (CairoT r s) -> IO Word32 {-# LINE 155 "src/Graphics/Cairo/Drawing/CairoT/Setting.hsc" #-}