{-# LINE 1 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}
{-# LANGUAGE BlockArguments #-}
{-# LANGUAGE PatternSynonyms, ViewPatterns #-}
{-# OPTIONS_GHC -Wall -fno-warn-tabs #-}

module Graphics.Cairo.Drawing.CairoPatternT.Setting where

import Foreign.Ptr
import Foreign.ForeignPtr
import Control.Monad.Primitive
import Data.Word
import Graphics.Cairo.Drawing.CairoPatternT.Basic
import Graphics.Cairo.Utilities.CairoMatrixT.Internal



class CairoPatternSetting s where
	cairoPatternSet :: (PrimMonad m, IsCairoPatternT pt) => pt (PrimState m) -> s -> m ()
	cairoPatternGet :: (PrimMonad m, IsCairoPatternT pt) => pt (PrimState m) -> m s

newtype CairoExtendT = CairoExtendT Word32 deriving Int -> CairoExtendT -> ShowS
[CairoExtendT] -> ShowS
CairoExtendT -> String
(Int -> CairoExtendT -> ShowS)
-> (CairoExtendT -> String)
-> ([CairoExtendT] -> ShowS)
-> Show CairoExtendT
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CairoExtendT -> ShowS
showsPrec :: Int -> CairoExtendT -> ShowS
$cshow :: CairoExtendT -> String
show :: CairoExtendT -> String
$cshowList :: [CairoExtendT] -> ShowS
showList :: [CairoExtendT] -> ShowS
Show
{-# LINE 21 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

pattern CairoExtendNone :: CairoExtendT
pattern $mCairoExtendNone :: forall {r}. CairoExtendT -> ((# #) -> r) -> ((# #) -> r) -> r
$bCairoExtendNone :: CairoExtendT
CairoExtendNone <- CairoExtendT 0 where
{-# LINE 24 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}
	CairoExtendNone = Word32 -> CairoExtendT
CairoExtendT Word32
0
{-# LINE 25 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

pattern CairoExtendRepeat :: CairoExtendT
pattern $mCairoExtendRepeat :: forall {r}. CairoExtendT -> ((# #) -> r) -> ((# #) -> r) -> r
$bCairoExtendRepeat :: CairoExtendT
CairoExtendRepeat <- CairoExtendT 1 where
{-# LINE 28 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}
	CairoExtendRepeat = Word32 -> CairoExtendT
CairoExtendT Word32
1
{-# LINE 29 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

pattern CairoExtendReflect :: CairoExtendT
pattern $mCairoExtendReflect :: forall {r}. CairoExtendT -> ((# #) -> r) -> ((# #) -> r) -> r
$bCairoExtendReflect :: CairoExtendT
CairoExtendReflect <- CairoExtendT 2 where
{-# LINE 32 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}
	CairoExtendReflect = Word32 -> CairoExtendT
CairoExtendT Word32
2
{-# LINE 33 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

pattern CairoExtendPad :: CairoExtendT
pattern $mCairoExtendPad :: forall {r}. CairoExtendT -> ((# #) -> r) -> ((# #) -> r) -> r
$bCairoExtendPad :: CairoExtendT
CairoExtendPad <- CairoExtendT 3 where
{-# LINE 36 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}
	CairoExtendPad = Word32 -> CairoExtendT
CairoExtendT Word32
3
{-# LINE 37 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

instance CairoPatternSetting CairoExtendT where
	cairoPatternSet :: forall (m :: * -> *) (pt :: * -> *).
(PrimMonad m, IsCairoPatternT pt) =>
pt (PrimState m) -> CairoExtendT -> m ()
cairoPatternSet = pt (PrimState m) -> CairoExtendT -> m ()
forall (m :: * -> *) (pt :: * -> *).
(PrimMonad m, IsCairoPatternT pt) =>
pt (PrimState m) -> CairoExtendT -> m ()
cairoPatternSetExtend
	cairoPatternGet :: forall (m :: * -> *) (pt :: * -> *).
(PrimMonad m, IsCairoPatternT pt) =>
pt (PrimState m) -> m CairoExtendT
cairoPatternGet = pt (PrimState m) -> m CairoExtendT
forall (m :: * -> *) (pt :: * -> *).
(PrimMonad m, IsCairoPatternT pt) =>
pt (PrimState m) -> m CairoExtendT
cairoPatternGetExtend

cairoPatternSetExtend :: (PrimMonad m, IsCairoPatternT pt) => pt (PrimState m) -> CairoExtendT -> m ()
cairoPatternSetExtend :: forall (m :: * -> *) (pt :: * -> *).
(PrimMonad m, IsCairoPatternT pt) =>
pt (PrimState m) -> CairoExtendT -> m ()
cairoPatternSetExtend (pt (PrimState m) -> CairoPatternT (PrimState m)
forall s. pt s -> CairoPatternT s
forall (pt :: * -> *) s.
IsCairoPatternT pt =>
pt s -> CairoPatternT s
toCairoPatternT -> CairoPatternT ForeignPtr (CairoPatternT (PrimState m))
fpt) (CairoExtendT Word32
ex) =
	IO () -> m ()
forall (m :: * -> *) a. PrimMonad m => IO a -> m a
unsafeIOToPrim (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ ForeignPtr (CairoPatternT (PrimState m))
-> (Ptr (CairoPatternT (PrimState m)) -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr (CairoPatternT (PrimState m))
fpt \Ptr (CairoPatternT (PrimState m))
ppt -> Ptr (CairoPatternT (PrimState m)) -> Word32 -> IO ()
forall s. Ptr (CairoPatternT s) -> Word32 -> IO ()
c_cairo_pattern_set_extend Ptr (CairoPatternT (PrimState m))
ppt Word32
ex

foreign import ccall "cairo_pattern_set_extend" c_cairo_pattern_set_extend ::
	Ptr (CairoPatternT s) -> Word32 -> IO ()
{-# LINE 48 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

cairoPatternGetExtend :: (PrimMonad m, IsCairoPatternT pt) => pt (PrimState m) -> m CairoExtendT
cairoPatternGetExtend :: forall (m :: * -> *) (pt :: * -> *).
(PrimMonad m, IsCairoPatternT pt) =>
pt (PrimState m) -> m CairoExtendT
cairoPatternGetExtend (pt (PrimState m) -> CairoPatternT (PrimState m)
forall s. pt s -> CairoPatternT s
forall (pt :: * -> *) s.
IsCairoPatternT pt =>
pt s -> CairoPatternT s
toCairoPatternT -> CairoPatternT ForeignPtr (CairoPatternT (PrimState m))
fpt) =
	IO CairoExtendT -> m CairoExtendT
forall (m :: * -> *) a. PrimMonad m => IO a -> m a
unsafeIOToPrim (IO CairoExtendT -> m CairoExtendT)
-> IO CairoExtendT -> m CairoExtendT
forall a b. (a -> b) -> a -> b
$ Word32 -> CairoExtendT
CairoExtendT (Word32 -> CairoExtendT) -> IO Word32 -> IO CairoExtendT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ForeignPtr (CairoPatternT (PrimState m))
-> (Ptr (CairoPatternT (PrimState m)) -> IO Word32) -> IO Word32
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr (CairoPatternT (PrimState m))
fpt Ptr (CairoPatternT (PrimState m)) -> IO Word32
forall s. Ptr (CairoPatternT s) -> IO Word32
c_cairo_pattern_get_extend

foreign import ccall "cairo_pattern_get_extend" c_cairo_pattern_get_extend ::
	Ptr (CairoPatternT s) -> IO Word32
{-# LINE 55 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

newtype CairoFilterT = CairoFilterT Word32 deriving Int -> CairoFilterT -> ShowS
[CairoFilterT] -> ShowS
CairoFilterT -> String
(Int -> CairoFilterT -> ShowS)
-> (CairoFilterT -> String)
-> ([CairoFilterT] -> ShowS)
-> Show CairoFilterT
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CairoFilterT -> ShowS
showsPrec :: Int -> CairoFilterT -> ShowS
$cshow :: CairoFilterT -> String
show :: CairoFilterT -> String
$cshowList :: [CairoFilterT] -> ShowS
showList :: [CairoFilterT] -> ShowS
Show
{-# LINE 57 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

pattern CairoFilterFast :: CairoFilterT
pattern $mCairoFilterFast :: forall {r}. CairoFilterT -> ((# #) -> r) -> ((# #) -> r) -> r
$bCairoFilterFast :: CairoFilterT
CairoFilterFast <- CairoFilterT 0 where
{-# LINE 60 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}
	CairoFilterFast = Word32 -> CairoFilterT
CairoFilterT Word32
0
{-# LINE 61 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

pattern CairoFilterGood :: CairoFilterT
pattern $mCairoFilterGood :: forall {r}. CairoFilterT -> ((# #) -> r) -> ((# #) -> r) -> r
$bCairoFilterGood :: CairoFilterT
CairoFilterGood <- CairoFilterT 1 where
{-# LINE 64 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}
	CairoFilterGood = Word32 -> CairoFilterT
CairoFilterT Word32
1
{-# LINE 65 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

pattern CairoFilterBest :: CairoFilterT
pattern $mCairoFilterBest :: forall {r}. CairoFilterT -> ((# #) -> r) -> ((# #) -> r) -> r
$bCairoFilterBest :: CairoFilterT
CairoFilterBest <- CairoFilterT 2 where
{-# LINE 68 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}
	CairoFilterBest = Word32 -> CairoFilterT
CairoFilterT Word32
2
{-# LINE 69 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

pattern CairoFilterNearest :: CairoFilterT
pattern $mCairoFilterNearest :: forall {r}. CairoFilterT -> ((# #) -> r) -> ((# #) -> r) -> r
$bCairoFilterNearest :: CairoFilterT
CairoFilterNearest <- CairoFilterT 3 where
{-# LINE 72 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}
	CairoFilterNearest = Word32 -> CairoFilterT
CairoFilterT Word32
3
{-# LINE 73 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

pattern CairoFilterBilinear :: CairoFilterT
pattern $mCairoFilterBilinear :: forall {r}. CairoFilterT -> ((# #) -> r) -> ((# #) -> r) -> r
$bCairoFilterBilinear :: CairoFilterT
CairoFilterBilinear <- CairoFilterT 4 where
{-# LINE 76 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}
	CairoFilterBilinear = Word32 -> CairoFilterT
CairoFilterT Word32
4
{-# LINE 77 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

pattern CairoFilterGaussian :: CairoFilterT
pattern $mCairoFilterGaussian :: forall {r}. CairoFilterT -> ((# #) -> r) -> ((# #) -> r) -> r
$bCairoFilterGaussian :: CairoFilterT
CairoFilterGaussian <- CairoFilterT 5 where
{-# LINE 80 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}
	CairoFilterGaussian = Word32 -> CairoFilterT
CairoFilterT Word32
5
{-# LINE 81 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

instance CairoPatternSetting CairoFilterT where
	cairoPatternSet :: forall (m :: * -> *) (pt :: * -> *).
(PrimMonad m, IsCairoPatternT pt) =>
pt (PrimState m) -> CairoFilterT -> m ()
cairoPatternSet = pt (PrimState m) -> CairoFilterT -> m ()
forall (m :: * -> *) (pt :: * -> *).
(PrimMonad m, IsCairoPatternT pt) =>
pt (PrimState m) -> CairoFilterT -> m ()
cairoPatternSetFilter
	cairoPatternGet :: forall (m :: * -> *) (pt :: * -> *).
(PrimMonad m, IsCairoPatternT pt) =>
pt (PrimState m) -> m CairoFilterT
cairoPatternGet = pt (PrimState m) -> m CairoFilterT
forall (m :: * -> *) (pt :: * -> *).
(PrimMonad m, IsCairoPatternT pt) =>
pt (PrimState m) -> m CairoFilterT
cairoPatternGetFilter

cairoPatternSetFilter :: (PrimMonad m, IsCairoPatternT pt) =>
	pt (PrimState m) -> CairoFilterT -> m ()
cairoPatternSetFilter :: forall (m :: * -> *) (pt :: * -> *).
(PrimMonad m, IsCairoPatternT pt) =>
pt (PrimState m) -> CairoFilterT -> m ()
cairoPatternSetFilter (pt (PrimState m) -> CairoPatternT (PrimState m)
forall s. pt s -> CairoPatternT s
forall (pt :: * -> *) s.
IsCairoPatternT pt =>
pt s -> CairoPatternT s
toCairoPatternT -> CairoPatternT ForeignPtr (CairoPatternT (PrimState m))
fpt) (CairoFilterT Word32
flt) =
	IO () -> m ()
forall (m :: * -> *) a. PrimMonad m => IO a -> m a
unsafeIOToPrim (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ ForeignPtr (CairoPatternT (PrimState m))
-> (Ptr (CairoPatternT (PrimState m)) -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr (CairoPatternT (PrimState m))
fpt \Ptr (CairoPatternT (PrimState m))
ppt -> Ptr (CairoPatternT (PrimState m)) -> Word32 -> IO ()
forall s. Ptr (CairoPatternT s) -> Word32 -> IO ()
c_cairo_pattern_set_filter Ptr (CairoPatternT (PrimState m))
ppt Word32
flt

foreign import ccall "cairo_pattern_set_filter" c_cairo_pattern_set_filter ::
	Ptr (CairoPatternT s) -> Word32 -> IO ()
{-# LINE 93 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

cairoPatternGetFilter :: (PrimMonad m, IsCairoPatternT pt) =>
	pt (PrimState m) -> m CairoFilterT
cairoPatternGetFilter :: forall (m :: * -> *) (pt :: * -> *).
(PrimMonad m, IsCairoPatternT pt) =>
pt (PrimState m) -> m CairoFilterT
cairoPatternGetFilter (pt (PrimState m) -> CairoPatternT (PrimState m)
forall s. pt s -> CairoPatternT s
forall (pt :: * -> *) s.
IsCairoPatternT pt =>
pt s -> CairoPatternT s
toCairoPatternT -> CairoPatternT ForeignPtr (CairoPatternT (PrimState m))
fpt) =
	IO CairoFilterT -> m CairoFilterT
forall (m :: * -> *) a. PrimMonad m => IO a -> m a
unsafeIOToPrim (IO CairoFilterT -> m CairoFilterT)
-> IO CairoFilterT -> m CairoFilterT
forall a b. (a -> b) -> a -> b
$ Word32 -> CairoFilterT
CairoFilterT (Word32 -> CairoFilterT) -> IO Word32 -> IO CairoFilterT
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ForeignPtr (CairoPatternT (PrimState m))
-> (Ptr (CairoPatternT (PrimState m)) -> IO Word32) -> IO Word32
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr (CairoPatternT (PrimState m))
fpt Ptr (CairoPatternT (PrimState m)) -> IO Word32
forall s. Ptr (CairoPatternT s) -> IO Word32
c_cairo_pattern_get_filter

foreign import ccall "cairo_pattern_get_filter" c_cairo_pattern_get_filter ::
	Ptr (CairoPatternT s) -> IO Word32
{-# LINE 101 "src/Graphics/Cairo/Drawing/CairoPatternT/Setting.hsc" #-}

cairoPatternSetMatrix :: (PrimMonad m, IsCairoPatternT pt, IsCairoMatrixT mtx) =>
	pt (PrimState m) -> mtx (PrimState m) -> m ()
cairoPatternSetMatrix :: forall (m :: * -> *) (pt :: * -> *) (mtx :: * -> *).
(PrimMonad m, IsCairoPatternT pt, IsCairoMatrixT mtx) =>
pt (PrimState m) -> mtx (PrimState m) -> m ()
cairoPatternSetMatrix (pt (PrimState m) -> CairoPatternT (PrimState m)
forall s. pt s -> CairoPatternT s
forall (pt :: * -> *) s.
IsCairoPatternT pt =>
pt s -> CairoPatternT s
toCairoPatternT -> CairoPatternT ForeignPtr (CairoPatternT (PrimState m))
fpt) (mtx (PrimState m) -> CairoMatrixT (PrimState m)
forall s. mtx s -> CairoMatrixT s
forall (mtx :: * -> *) s.
IsCairoMatrixT mtx =>
mtx s -> CairoMatrixT s
toCairoMatrixT -> CairoMatrixT ForeignPtr (CairoMatrixT (PrimState m))
fmtx) =
	IO () -> m ()
forall (m :: * -> *) a. PrimMonad m => IO a -> m a
unsafeIOToPrim (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ ForeignPtr (CairoPatternT (PrimState m))
-> (Ptr (CairoPatternT (PrimState m)) -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr (CairoPatternT (PrimState m))
fpt \Ptr (CairoPatternT (PrimState m))
ppt -> ForeignPtr (CairoMatrixT (PrimState m))
-> (Ptr (CairoMatrixT (PrimState m)) -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr (CairoMatrixT (PrimState m))
fmtx \Ptr (CairoMatrixT (PrimState m))
pmtx ->
		Ptr (CairoPatternT (PrimState m))
-> Ptr (CairoMatrixT (PrimState m)) -> IO ()
forall s. Ptr (CairoPatternT s) -> Ptr (CairoMatrixT s) -> IO ()
c_cairo_pattern_set_matrix Ptr (CairoPatternT (PrimState m))
ppt Ptr (CairoMatrixT (PrimState m))
pmtx

foreign import ccall "cairo_pattern_set_matrix" c_cairo_pattern_set_matrix ::
	Ptr (CairoPatternT s) -> Ptr (CairoMatrixT s) -> IO ()

cairoPatternGetMatrix :: (PrimMonad m, IsCairoPatternT pt) =>
	pt (PrimState m) -> m (CairoMatrixT (PrimState m))
cairoPatternGetMatrix :: forall (m :: * -> *) (pt :: * -> *).
(PrimMonad m, IsCairoPatternT pt) =>
pt (PrimState m) -> m (CairoMatrixT (PrimState m))
cairoPatternGetMatrix (pt (PrimState m) -> CairoPatternT (PrimState m)
forall s. pt s -> CairoPatternT s
forall (pt :: * -> *) s.
IsCairoPatternT pt =>
pt s -> CairoPatternT s
toCairoPatternT -> CairoPatternT ForeignPtr (CairoPatternT (PrimState m))
fpt) = (ForeignPtr (CairoMatrixT (PrimState m))
-> CairoMatrixT (PrimState m)
forall s. ForeignPtr (CairoMatrixT s) -> CairoMatrixT s
CairoMatrixT (ForeignPtr (CairoMatrixT (PrimState m))
 -> CairoMatrixT (PrimState m))
-> m (ForeignPtr (CairoMatrixT (PrimState m)))
-> m (CairoMatrixT (PrimState m))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$>)
	(m (ForeignPtr (CairoMatrixT (PrimState m)))
 -> m (CairoMatrixT (PrimState m)))
-> m (ForeignPtr (CairoMatrixT (PrimState m)))
-> m (CairoMatrixT (PrimState m))
forall a b. (a -> b) -> a -> b
$ (Ptr (CairoMatrixT (PrimState m)) -> IO ())
-> m (ForeignPtr (CairoMatrixT (PrimState m)))
forall (m :: * -> *) a.
PrimMonad m =>
(Ptr (CairoMatrixT (PrimState m)) -> IO a)
-> m (ForeignPtr (CairoMatrixT (PrimState m)))
cairoMatrixAlloc \Ptr (CairoMatrixT (PrimState m))
pmtx -> ForeignPtr (CairoPatternT (PrimState m))
-> (Ptr (CairoPatternT (PrimState m)) -> IO ()) -> IO ()
forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b
withForeignPtr ForeignPtr (CairoPatternT (PrimState m))
fpt \Ptr (CairoPatternT (PrimState m))
ppt ->
		Ptr (CairoPatternT (PrimState m))
-> Ptr (CairoMatrixT (PrimState m)) -> IO ()
forall s. Ptr (CairoPatternT s) -> Ptr (CairoMatrixT s) -> IO ()
c_cairo_pattern_get_matrix Ptr (CairoPatternT (PrimState m))
ppt Ptr (CairoMatrixT (PrimState m))
pmtx

foreign import ccall "cairo_pattern_get_matrix" c_cairo_pattern_get_matrix ::
	Ptr (CairoPatternT s) -> Ptr (CairoMatrixT s) -> IO ()