{-# 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" #-}