{-# LINE 1 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} {-# LANGUAGE BlockArguments, LambdaCase #-} {-# LANGUAGE PatternSynonyms, ViewPatterns #-} {-# LANGUAGE FlexibleInstances, UndecidableInstances #-} {-# OPTIONS_GHC -Wall -fno-warn-tabs #-} module Graphics.Cairo.Drawing.CairoPatternT.Basic where import Foreign.Ptr import Foreign.ForeignPtr hiding (newForeignPtr) import Foreign.Concurrent import Foreign.Marshal import Foreign.Storable import Foreign.C.Types import Control.Monad.Primitive import Data.Traversable import Data.Maybe import Data.Word import Data.Color import System.IO.Unsafe import Graphics.Cairo.Exception import Graphics.Cairo.Surfaces.CairoSurfaceT.Internal class IsCairoPatternT pt where toCairoPatternT :: pt s -> CairoPatternT s newtype CairoPatternT s = CairoPatternT (ForeignPtr (CairoPatternT s)) deriving Int -> CairoPatternT s -> ShowS [CairoPatternT s] -> ShowS CairoPatternT s -> String (Int -> CairoPatternT s -> ShowS) -> (CairoPatternT s -> String) -> ([CairoPatternT s] -> ShowS) -> Show (CairoPatternT s) forall s. Int -> CairoPatternT s -> ShowS forall s. [CairoPatternT s] -> ShowS forall s. CairoPatternT s -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall s. Int -> CairoPatternT s -> ShowS showsPrec :: Int -> CairoPatternT s -> ShowS $cshow :: forall s. CairoPatternT s -> String show :: CairoPatternT s -> String $cshowList :: forall s. [CairoPatternT s] -> ShowS showList :: [CairoPatternT s] -> ShowS Show instance IsCairoPatternT CairoPatternT where toCairoPatternT :: forall s. CairoPatternT s -> CairoPatternT s toCairoPatternT = CairoPatternT s -> CairoPatternT s forall a. a -> a id makeCairoPatternT :: Ptr (CairoPatternT s) -> IO (CairoPatternT s) makeCairoPatternT :: forall s. Ptr (CairoPatternT s) -> IO (CairoPatternT s) makeCairoPatternT Ptr (CairoPatternT s) p = ForeignPtr (CairoPatternT s) -> CairoPatternT s forall s. ForeignPtr (CairoPatternT s) -> CairoPatternT s CairoPatternT (ForeignPtr (CairoPatternT s) -> CairoPatternT s) -> IO (ForeignPtr (CairoPatternT s)) -> IO (CairoPatternT s) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Ptr (CairoPatternT s) -> IO () -> IO (ForeignPtr (CairoPatternT s)) forall a. Ptr a -> IO () -> IO (ForeignPtr a) newForeignPtr Ptr (CairoPatternT s) p (Ptr (CairoPatternT s) -> IO () forall s. Ptr (CairoPatternT s) -> IO () c_cairo_pattern_destroy Ptr (CairoPatternT s) p) returnCairoPatternT :: PrimMonad m => IO (Ptr (CairoPatternT (PrimState m))) -> m (CairoPatternT (PrimState m)) returnCairoPatternT :: forall (m :: * -> *). PrimMonad m => IO (Ptr (CairoPatternT (PrimState m))) -> m (CairoPatternT (PrimState m)) returnCairoPatternT IO (Ptr (CairoPatternT (PrimState m))) io = IO (CairoPatternT (PrimState m)) -> m (CairoPatternT (PrimState m)) forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO (CairoPatternT (PrimState m)) -> m (CairoPatternT (PrimState m))) -> IO (CairoPatternT (PrimState m)) -> m (CairoPatternT (PrimState m)) forall a b. (a -> b) -> a -> b $ Ptr (CairoPatternT (PrimState m)) -> IO (CairoPatternT (PrimState m)) forall s. Ptr (CairoPatternT s) -> IO (CairoPatternT s) makeCairoPatternT (Ptr (CairoPatternT (PrimState m)) -> IO (CairoPatternT (PrimState m))) -> IO (Ptr (CairoPatternT (PrimState m))) -> IO (CairoPatternT (PrimState m)) forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< IO (Ptr (CairoPatternT (PrimState m))) io foreign import ccall "cairo_pattern_destroy" c_cairo_pattern_destroy :: Ptr (CairoPatternT s) -> IO () newtype CairoPatternTypeT = CairoPatternTypeT Word32 deriving Int -> CairoPatternTypeT -> ShowS [CairoPatternTypeT] -> ShowS CairoPatternTypeT -> String (Int -> CairoPatternTypeT -> ShowS) -> (CairoPatternTypeT -> String) -> ([CairoPatternTypeT] -> ShowS) -> Show CairoPatternTypeT forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> CairoPatternTypeT -> ShowS showsPrec :: Int -> CairoPatternTypeT -> ShowS $cshow :: CairoPatternTypeT -> String show :: CairoPatternTypeT -> String $cshowList :: [CairoPatternTypeT] -> ShowS showList :: [CairoPatternTypeT] -> ShowS Show {-# LINE 42 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} pattern CairoPatternTypeSolid :: CairoPatternTypeT pattern $mCairoPatternTypeSolid :: forall {r}. CairoPatternTypeT -> ((# #) -> r) -> ((# #) -> r) -> r $bCairoPatternTypeSolid :: CairoPatternTypeT CairoPatternTypeSolid <- CairoPatternTypeT 0 where {-# LINE 45 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} CairoPatternTypeSolid = Word32 -> CairoPatternTypeT CairoPatternTypeT Word32 0 {-# LINE 46 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} pattern CairoPatternTypeSurface :: CairoPatternTypeT pattern $mCairoPatternTypeSurface :: forall {r}. CairoPatternTypeT -> ((# #) -> r) -> ((# #) -> r) -> r $bCairoPatternTypeSurface :: CairoPatternTypeT CairoPatternTypeSurface <- CairoPatternTypeT 1 where {-# LINE 49 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} CairoPatternTypeSurface = Word32 -> CairoPatternTypeT CairoPatternTypeT Word32 1 {-# LINE 50 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} pattern CairoPatternTypeLinear :: CairoPatternTypeT pattern $mCairoPatternTypeLinear :: forall {r}. CairoPatternTypeT -> ((# #) -> r) -> ((# #) -> r) -> r $bCairoPatternTypeLinear :: CairoPatternTypeT CairoPatternTypeLinear <- CairoPatternTypeT 2 where {-# LINE 53 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} CairoPatternTypeLinear = Word32 -> CairoPatternTypeT CairoPatternTypeT Word32 2 {-# LINE 54 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} pattern CairoPatternTypeRadial :: CairoPatternTypeT pattern $mCairoPatternTypeRadial :: forall {r}. CairoPatternTypeT -> ((# #) -> r) -> ((# #) -> r) -> r $bCairoPatternTypeRadial :: CairoPatternTypeT CairoPatternTypeRadial <- CairoPatternTypeT 3 where {-# LINE 57 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} CairoPatternTypeRadial = Word32 -> CairoPatternTypeT CairoPatternTypeT Word32 3 {-# LINE 58 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} pattern CairoPatternTypeMesh :: CairoPatternTypeT pattern $mCairoPatternTypeMesh :: forall {r}. CairoPatternTypeT -> ((# #) -> r) -> ((# #) -> r) -> r $bCairoPatternTypeMesh :: CairoPatternTypeT CairoPatternTypeMesh <- CairoPatternTypeT 4 where {-# LINE 61 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} CairoPatternTypeMesh = Word32 -> CairoPatternTypeT CairoPatternTypeT Word32 4 {-# LINE 62 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} pattern CairoPatternTypeRasterSource :: CairoPatternTypeT pattern $mCairoPatternTypeRasterSource :: forall {r}. CairoPatternTypeT -> ((# #) -> r) -> ((# #) -> r) -> r $bCairoPatternTypeRasterSource :: CairoPatternTypeT CairoPatternTypeRasterSource <- CairoPatternTypeT 5 where {-# LINE 65 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} CairoPatternTypeRasterSource = Word32 -> CairoPatternTypeT CairoPatternTypeT Word32 5 {-# LINE 66 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} cairoPatternGetType :: CairoPatternT s -> CairoPatternTypeT cairoPatternGetType :: forall s. CairoPatternT s -> CairoPatternTypeT cairoPatternGetType (CairoPatternT ForeignPtr (CairoPatternT s) fpt) = IO CairoPatternTypeT -> CairoPatternTypeT forall a. IO a -> a unsafePerformIO (IO CairoPatternTypeT -> CairoPatternTypeT) -> IO CairoPatternTypeT -> CairoPatternTypeT forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT s) -> (Ptr (CairoPatternT s) -> IO CairoPatternTypeT) -> IO CairoPatternTypeT forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoPatternT s) fpt \Ptr (CairoPatternT s) pt -> Word32 -> CairoPatternTypeT CairoPatternTypeT (Word32 -> CairoPatternTypeT) -> IO Word32 -> IO CairoPatternTypeT forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Ptr (CairoPatternT s) -> IO Word32 forall s. Ptr (CairoPatternT s) -> IO Word32 c_cairo_pattern_get_type Ptr (CairoPatternT s) pt foreign import ccall "cairo_pattern_get_type" c_cairo_pattern_get_type :: Ptr (CairoPatternT s) -> IO Word32 {-# LINE 73 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} newtype CairoPatternSolidT s = CairoPatternSolidT (ForeignPtr (CairoPatternT s)) deriving Int -> CairoPatternSolidT s -> ShowS [CairoPatternSolidT s] -> ShowS CairoPatternSolidT s -> String (Int -> CairoPatternSolidT s -> ShowS) -> (CairoPatternSolidT s -> String) -> ([CairoPatternSolidT s] -> ShowS) -> Show (CairoPatternSolidT s) forall s. Int -> CairoPatternSolidT s -> ShowS forall s. [CairoPatternSolidT s] -> ShowS forall s. CairoPatternSolidT s -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall s. Int -> CairoPatternSolidT s -> ShowS showsPrec :: Int -> CairoPatternSolidT s -> ShowS $cshow :: forall s. CairoPatternSolidT s -> String show :: CairoPatternSolidT s -> String $cshowList :: forall s. [CairoPatternSolidT s] -> ShowS showList :: [CairoPatternSolidT s] -> ShowS Show instance IsCairoPatternT CairoPatternSolidT where toCairoPatternT :: forall s. CairoPatternSolidT s -> CairoPatternT s toCairoPatternT = CairoPatternSolidT s -> CairoPatternT s forall s. CairoPatternSolidT s -> CairoPatternT s CairoPatternTSolid pattern CairoPatternTSolid :: CairoPatternSolidT s -> CairoPatternT s pattern $mCairoPatternTSolid :: forall {r} {s}. CairoPatternT s -> (CairoPatternSolidT s -> r) -> ((# #) -> r) -> r $bCairoPatternTSolid :: forall s. CairoPatternSolidT s -> CairoPatternT s CairoPatternTSolid pts <- (cairoPatternSolidT -> Just pts) where CairoPatternTSolid (CairoPatternSolidT ForeignPtr (CairoPatternT s) pts) = ForeignPtr (CairoPatternT s) -> CairoPatternT s forall s. ForeignPtr (CairoPatternT s) -> CairoPatternT s CairoPatternT ForeignPtr (CairoPatternT s) pts cairoPatternSolidT :: CairoPatternT s -> Maybe (CairoPatternSolidT s) cairoPatternSolidT :: forall s. CairoPatternT s -> Maybe (CairoPatternSolidT s) cairoPatternSolidT pt :: CairoPatternT s pt@(CairoPatternT ForeignPtr (CairoPatternT s) fpt) = case CairoPatternT s -> CairoPatternTypeT forall s. CairoPatternT s -> CairoPatternTypeT cairoPatternGetType CairoPatternT s pt of CairoPatternTypeT CairoPatternTypeSolid -> CairoPatternSolidT s -> Maybe (CairoPatternSolidT s) forall a. a -> Maybe a Just (CairoPatternSolidT s -> Maybe (CairoPatternSolidT s)) -> CairoPatternSolidT s -> Maybe (CairoPatternSolidT s) forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT s) -> CairoPatternSolidT s forall s. ForeignPtr (CairoPatternT s) -> CairoPatternSolidT s CairoPatternSolidT ForeignPtr (CairoPatternT s) fpt CairoPatternTypeT _ -> Maybe (CairoPatternSolidT s) forall a. Maybe a Nothing cairoPatternCreateRgb :: PrimMonad m => Rgb CDouble -> m (CairoPatternSolidT (PrimState m)) cairoPatternCreateRgb :: forall (m :: * -> *). PrimMonad m => Rgb CDouble -> m (CairoPatternSolidT (PrimState m)) cairoPatternCreateRgb (RgbDouble CDouble r CDouble g CDouble b) = IO (CairoPatternSolidT (PrimState m)) -> m (CairoPatternSolidT (PrimState m)) forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim do ppt <- CDouble -> CDouble -> CDouble -> IO (Ptr (CairoPatternT (PrimState m))) forall s. CDouble -> CDouble -> CDouble -> IO (Ptr (CairoPatternT s)) c_cairo_pattern_create_rgb CDouble r CDouble g CDouble b pt <- CairoPatternSolidT <$> newForeignPtr ppt (c_cairo_pattern_destroy ppt) pt <$ raiseIfErrorPattern (CairoPatternTSolid pt) foreign import ccall "cairo_pattern_create_rgb" c_cairo_pattern_create_rgb :: CDouble -> CDouble -> CDouble -> IO (Ptr (CairoPatternT s)) cairoPatternCreateRgba :: PrimMonad m => Rgba CDouble -> m (CairoPatternSolidT (PrimState m)) cairoPatternCreateRgba :: forall (m :: * -> *). PrimMonad m => Rgba CDouble -> m (CairoPatternSolidT (PrimState m)) cairoPatternCreateRgba (RgbaDouble CDouble r CDouble g CDouble b CDouble a) = IO (CairoPatternSolidT (PrimState m)) -> m (CairoPatternSolidT (PrimState m)) forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim do ppt <- CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr (CairoPatternT (PrimState m))) forall s. CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr (CairoPatternT s)) c_cairo_pattern_create_rgba CDouble r CDouble g CDouble b CDouble a pt <- CairoPatternSolidT <$> newForeignPtr ppt (c_cairo_pattern_destroy ppt) pt <$ raiseIfErrorPattern (CairoPatternTSolid pt) foreign import ccall "cairo_pattern_create_rgba" c_cairo_pattern_create_rgba :: CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr (CairoPatternT s)) cairoPatternGetRgba :: PrimMonad m => CairoPatternSolidT (PrimState m) -> m (Rgba CDouble) cairoPatternGetRgba :: forall (m :: * -> *). PrimMonad m => CairoPatternSolidT (PrimState m) -> m (Rgba CDouble) cairoPatternGetRgba (CairoPatternSolidT ForeignPtr (CairoPatternT (PrimState m)) fpts) = IO (Rgba CDouble) -> m (Rgba CDouble) forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO (Rgba CDouble) -> m (Rgba CDouble)) -> IO (Rgba CDouble) -> m (Rgba CDouble) forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT (PrimState m)) -> (Ptr (CairoPatternT (PrimState m)) -> IO (Rgba CDouble)) -> IO (Rgba CDouble) forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoPatternT (PrimState m)) fpts \Ptr (CairoPatternT (PrimState m)) pts -> (Ptr CDouble -> IO (Rgba CDouble)) -> IO (Rgba CDouble) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble r -> (Ptr CDouble -> IO (Rgba CDouble)) -> IO (Rgba CDouble) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble g -> (Ptr CDouble -> IO (Rgba CDouble)) -> IO (Rgba CDouble) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble b -> (Ptr CDouble -> IO (Rgba CDouble)) -> IO (Rgba CDouble) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble a -> do Word32 -> IO () cairoStatusToThrowError (Word32 -> IO ()) -> IO Word32 -> IO () forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< Ptr (CairoPatternT (PrimState m)) -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO Word32 forall s. Ptr (CairoPatternT s) -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO Word32 c_cairo_pattern_get_rgba Ptr (CairoPatternT (PrimState m)) pts Ptr CDouble r Ptr CDouble g Ptr CDouble b Ptr CDouble a CDouble -> CDouble -> CDouble -> CDouble -> Maybe (Rgba CDouble) forall d. (Ord d, Num d) => d -> d -> d -> d -> Maybe (Rgba d) rgbaDouble (CDouble -> CDouble -> CDouble -> CDouble -> Maybe (Rgba CDouble)) -> IO CDouble -> IO (CDouble -> CDouble -> CDouble -> Maybe (Rgba CDouble)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Ptr CDouble -> IO CDouble forall a. Storable a => Ptr a -> IO a peek Ptr CDouble r IO (CDouble -> CDouble -> CDouble -> Maybe (Rgba CDouble)) -> IO CDouble -> IO (CDouble -> CDouble -> Maybe (Rgba 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 g IO (CDouble -> CDouble -> Maybe (Rgba CDouble)) -> IO CDouble -> IO (CDouble -> Maybe (Rgba 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 b IO (CDouble -> Maybe (Rgba CDouble)) -> IO CDouble -> IO (Maybe (Rgba 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 a IO (Maybe (Rgba CDouble)) -> (Maybe (Rgba CDouble) -> IO (Rgba CDouble)) -> IO (Rgba CDouble) forall a b. IO a -> (a -> IO b) -> IO b forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b >>= \case Just Rgba CDouble rgba -> Rgba CDouble -> IO (Rgba CDouble) forall a. a -> IO a forall (f :: * -> *) a. Applicative f => a -> f a pure Rgba CDouble rgba Maybe (Rgba CDouble) Nothing -> String -> IO (Rgba CDouble) forall a. HasCallStack => String -> a error (String -> IO (Rgba CDouble)) -> String -> IO (Rgba CDouble) forall a b. (a -> b) -> a -> b $ String "(r, g, b, a) = " String -> ShowS forall a. [a] -> [a] -> [a] ++ (Ptr CDouble, Ptr CDouble, Ptr CDouble, Ptr CDouble) -> String forall a. Show a => a -> String show (Ptr CDouble r, Ptr CDouble g, Ptr CDouble b, Ptr CDouble a) foreign import ccall "cairo_pattern_get_rgba" c_cairo_pattern_get_rgba :: Ptr (CairoPatternT s) -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO Word32 {-# LINE 117 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} class IsCairoPatternT pt => IsCairoPatternGradientT pt where toCairoPatternGradientT :: pt s -> CairoPatternGradientT s newtype CairoPatternGradientT s = CairoPatternGradientT (ForeignPtr (CairoPatternT s)) deriving Int -> CairoPatternGradientT s -> ShowS [CairoPatternGradientT s] -> ShowS CairoPatternGradientT s -> String (Int -> CairoPatternGradientT s -> ShowS) -> (CairoPatternGradientT s -> String) -> ([CairoPatternGradientT s] -> ShowS) -> Show (CairoPatternGradientT s) forall s. Int -> CairoPatternGradientT s -> ShowS forall s. [CairoPatternGradientT s] -> ShowS forall s. CairoPatternGradientT s -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall s. Int -> CairoPatternGradientT s -> ShowS showsPrec :: Int -> CairoPatternGradientT s -> ShowS $cshow :: forall s. CairoPatternGradientT s -> String show :: CairoPatternGradientT s -> String $cshowList :: forall s. [CairoPatternGradientT s] -> ShowS showList :: [CairoPatternGradientT s] -> ShowS Show instance IsCairoPatternT CairoPatternGradientT where toCairoPatternT :: forall s. CairoPatternGradientT s -> CairoPatternT s toCairoPatternT = CairoPatternGradientT s -> CairoPatternT s forall s. CairoPatternGradientT s -> CairoPatternT s CairoPatternTGradient instance IsCairoPatternGradientT CairoPatternGradientT where toCairoPatternGradientT :: forall s. CairoPatternGradientT s -> CairoPatternGradientT s toCairoPatternGradientT = CairoPatternGradientT s -> CairoPatternGradientT s forall a. a -> a id pattern CairoPatternTGradient :: CairoPatternGradientT s -> CairoPatternT s pattern $mCairoPatternTGradient :: forall {r} {s}. CairoPatternT s -> (CairoPatternGradientT s -> r) -> ((# #) -> r) -> r $bCairoPatternTGradient :: forall s. CairoPatternGradientT s -> CairoPatternT s CairoPatternTGradient ptg <- (cairoPatternGradientT -> Just ptg) where CairoPatternTGradient (CairoPatternGradientT ForeignPtr (CairoPatternT s) ptg) = ForeignPtr (CairoPatternT s) -> CairoPatternT s forall s. ForeignPtr (CairoPatternT s) -> CairoPatternT s CairoPatternT ForeignPtr (CairoPatternT s) ptg cairoPatternGradientT :: CairoPatternT s -> Maybe (CairoPatternGradientT s) cairoPatternGradientT :: forall s. CairoPatternT s -> Maybe (CairoPatternGradientT s) cairoPatternGradientT pt :: CairoPatternT s pt@(CairoPatternT ForeignPtr (CairoPatternT s) fpt) = case CairoPatternT s -> CairoPatternTypeT forall s. CairoPatternT s -> CairoPatternTypeT cairoPatternGetType CairoPatternT s pt of CairoPatternTypeT CairoPatternTypeLinear -> CairoPatternGradientT s -> Maybe (CairoPatternGradientT s) forall a. a -> Maybe a Just (CairoPatternGradientT s -> Maybe (CairoPatternGradientT s)) -> CairoPatternGradientT s -> Maybe (CairoPatternGradientT s) forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT s) -> CairoPatternGradientT s forall s. ForeignPtr (CairoPatternT s) -> CairoPatternGradientT s CairoPatternGradientT ForeignPtr (CairoPatternT s) fpt CairoPatternTypeT CairoPatternTypeRadial -> CairoPatternGradientT s -> Maybe (CairoPatternGradientT s) forall a. a -> Maybe a Just (CairoPatternGradientT s -> Maybe (CairoPatternGradientT s)) -> CairoPatternGradientT s -> Maybe (CairoPatternGradientT s) forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT s) -> CairoPatternGradientT s forall s. ForeignPtr (CairoPatternT s) -> CairoPatternGradientT s CairoPatternGradientT ForeignPtr (CairoPatternT s) fpt CairoPatternTypeT _ -> Maybe (CairoPatternGradientT s) forall a. Maybe a Nothing cairoPatternAddColorStopRgb :: (PrimMonad m, IsCairoPatternGradientT pt) => pt (PrimState m) -> CDouble -> Rgb CDouble -> m () cairoPatternAddColorStopRgb :: forall (m :: * -> *) (pt :: * -> *). (PrimMonad m, IsCairoPatternGradientT pt) => pt (PrimState m) -> CDouble -> Rgb CDouble -> m () cairoPatternAddColorStopRgb (pt (PrimState m) -> CairoPatternGradientT (PrimState m) forall s. pt s -> CairoPatternGradientT s forall (pt :: * -> *) s. IsCairoPatternGradientT pt => pt s -> CairoPatternGradientT s toCairoPatternGradientT -> CairoPatternGradientT ForeignPtr (CairoPatternT (PrimState m)) fpt) CDouble os (RgbDouble CDouble r CDouble g CDouble b) = 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)) -> CDouble -> CDouble -> CDouble -> CDouble -> IO () forall s. Ptr (CairoPatternT s) -> CDouble -> CDouble -> CDouble -> CDouble -> IO () c_cairo_pattern_add_color_stop_rgb Ptr (CairoPatternT (PrimState m)) ppt CDouble os CDouble r CDouble g CDouble b foreign import ccall "cairo_pattern_add_color_stop_rgb" c_cairo_pattern_add_color_stop_rgb :: Ptr (CairoPatternT s) -> CDouble -> CDouble -> CDouble -> CDouble -> IO () cairoPatternAddColorStopRgba :: (PrimMonad m, IsCairoPatternGradientT pt) => pt (PrimState m) -> CDouble -> Rgba CDouble -> m () cairoPatternAddColorStopRgba :: forall (m :: * -> *) (pt :: * -> *). (PrimMonad m, IsCairoPatternGradientT pt) => pt (PrimState m) -> CDouble -> Rgba CDouble -> m () cairoPatternAddColorStopRgba (pt (PrimState m) -> CairoPatternGradientT (PrimState m) forall s. pt s -> CairoPatternGradientT s forall (pt :: * -> *) s. IsCairoPatternGradientT pt => pt s -> CairoPatternGradientT s toCairoPatternGradientT -> CairoPatternGradientT ForeignPtr (CairoPatternT (PrimState m)) fpt) CDouble os (RgbaDouble CDouble r CDouble g CDouble b CDouble a) = 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)) -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO () forall s. Ptr (CairoPatternT s) -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO () c_cairo_pattern_add_color_stop_rgba Ptr (CairoPatternT (PrimState m)) ppt CDouble os CDouble r CDouble g CDouble b CDouble a foreign import ccall "cairo_pattern_add_color_stop_rgba" c_cairo_pattern_add_color_stop_rgba :: Ptr (CairoPatternT s) -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO () newtype CairoPatternLinearT s = CairoPatternLinearT (ForeignPtr (CairoPatternT s)) deriving Int -> CairoPatternLinearT s -> ShowS [CairoPatternLinearT s] -> ShowS CairoPatternLinearT s -> String (Int -> CairoPatternLinearT s -> ShowS) -> (CairoPatternLinearT s -> String) -> ([CairoPatternLinearT s] -> ShowS) -> Show (CairoPatternLinearT s) forall s. Int -> CairoPatternLinearT s -> ShowS forall s. [CairoPatternLinearT s] -> ShowS forall s. CairoPatternLinearT s -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall s. Int -> CairoPatternLinearT s -> ShowS showsPrec :: Int -> CairoPatternLinearT s -> ShowS $cshow :: forall s. CairoPatternLinearT s -> String show :: CairoPatternLinearT s -> String $cshowList :: forall s. [CairoPatternLinearT s] -> ShowS showList :: [CairoPatternLinearT s] -> ShowS Show instance IsCairoPatternGradientT CairoPatternLinearT where toCairoPatternGradientT :: forall s. CairoPatternLinearT s -> CairoPatternGradientT s toCairoPatternGradientT = CairoPatternLinearT s -> CairoPatternGradientT s forall s. CairoPatternLinearT s -> CairoPatternGradientT s CairoPatternGradientTLinear instance IsCairoPatternT CairoPatternLinearT where toCairoPatternT :: forall s. CairoPatternLinearT s -> CairoPatternT s toCairoPatternT = CairoPatternGradientT s -> CairoPatternT s forall s. CairoPatternGradientT s -> CairoPatternT s CairoPatternTGradient (CairoPatternGradientT s -> CairoPatternT s) -> (CairoPatternLinearT s -> CairoPatternGradientT s) -> CairoPatternLinearT s -> CairoPatternT s forall b c a. (b -> c) -> (a -> b) -> a -> c . CairoPatternLinearT s -> CairoPatternGradientT s forall s. CairoPatternLinearT s -> CairoPatternGradientT s forall (pt :: * -> *) s. IsCairoPatternGradientT pt => pt s -> CairoPatternGradientT s toCairoPatternGradientT pattern CairoPatternGradientTLinear :: CairoPatternLinearT s -> CairoPatternGradientT s pattern $mCairoPatternGradientTLinear :: forall {r} {s}. CairoPatternGradientT s -> (CairoPatternLinearT s -> r) -> ((# #) -> r) -> r $bCairoPatternGradientTLinear :: forall s. CairoPatternLinearT s -> CairoPatternGradientT s CairoPatternGradientTLinear ptl <- (cairoPatternGradientLinearT -> Just ptl) where CairoPatternGradientTLinear (CairoPatternLinearT ForeignPtr (CairoPatternT s) ptl) = ForeignPtr (CairoPatternT s) -> CairoPatternGradientT s forall s. ForeignPtr (CairoPatternT s) -> CairoPatternGradientT s CairoPatternGradientT ForeignPtr (CairoPatternT s) ptl cairoPatternGradientLinearT :: CairoPatternGradientT s -> Maybe (CairoPatternLinearT s) cairoPatternGradientLinearT :: forall s. CairoPatternGradientT s -> Maybe (CairoPatternLinearT s) cairoPatternGradientLinearT pt :: CairoPatternGradientT s pt@(CairoPatternGradientT ForeignPtr (CairoPatternT s) fpt) = case CairoPatternT s -> CairoPatternTypeT forall s. CairoPatternT s -> CairoPatternTypeT cairoPatternGetType (CairoPatternT s -> CairoPatternTypeT) -> CairoPatternT s -> CairoPatternTypeT forall a b. (a -> b) -> a -> b $ CairoPatternGradientT s -> CairoPatternT s forall s. CairoPatternGradientT s -> CairoPatternT s CairoPatternTGradient CairoPatternGradientT s pt of CairoPatternTypeT CairoPatternTypeLinear -> CairoPatternLinearT s -> Maybe (CairoPatternLinearT s) forall a. a -> Maybe a Just (CairoPatternLinearT s -> Maybe (CairoPatternLinearT s)) -> CairoPatternLinearT s -> Maybe (CairoPatternLinearT s) forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT s) -> CairoPatternLinearT s forall s. ForeignPtr (CairoPatternT s) -> CairoPatternLinearT s CairoPatternLinearT ForeignPtr (CairoPatternT s) fpt CairoPatternTypeT _ -> Maybe (CairoPatternLinearT s) forall a. Maybe a Nothing cairoPatternCreateLinear :: PrimMonad m => CDouble -> CDouble -> CDouble -> CDouble -> m (CairoPatternLinearT (PrimState m)) cairoPatternCreateLinear :: forall (m :: * -> *). PrimMonad m => CDouble -> CDouble -> CDouble -> CDouble -> m (CairoPatternLinearT (PrimState m)) cairoPatternCreateLinear CDouble x0 CDouble y0 CDouble x1 CDouble y1 = IO (CairoPatternLinearT (PrimState m)) -> m (CairoPatternLinearT (PrimState m)) forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO (CairoPatternLinearT (PrimState m)) -> m (CairoPatternLinearT (PrimState m))) -> IO (CairoPatternLinearT (PrimState m)) -> m (CairoPatternLinearT (PrimState m)) forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT (PrimState m)) -> CairoPatternLinearT (PrimState m) forall s. ForeignPtr (CairoPatternT s) -> CairoPatternLinearT s CairoPatternLinearT (ForeignPtr (CairoPatternT (PrimState m)) -> CairoPatternLinearT (PrimState m)) -> IO (ForeignPtr (CairoPatternT (PrimState m))) -> IO (CairoPatternLinearT (PrimState m)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> do p <- CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr (CairoPatternT (PrimState m))) forall s. CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr (CairoPatternT s)) c_cairo_pattern_create_linear CDouble x0 CDouble y0 CDouble x1 CDouble y1 newForeignPtr p $ c_cairo_pattern_destroy p foreign import ccall "cairo_pattern_create_linear" c_cairo_pattern_create_linear :: CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr (CairoPatternT s)) cairoPatternGetLinearPoints :: PrimMonad m => CairoPatternLinearT (PrimState m) -> m ((CDouble, CDouble), (CDouble, CDouble)) cairoPatternGetLinearPoints :: forall (m :: * -> *). PrimMonad m => CairoPatternLinearT (PrimState m) -> m ((CDouble, CDouble), (CDouble, CDouble)) cairoPatternGetLinearPoints (CairoPatternLinearT ForeignPtr (CairoPatternT (PrimState m)) fpt) = IO ((CDouble, CDouble), (CDouble, CDouble)) -> m ((CDouble, CDouble), (CDouble, CDouble)) forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO ((CDouble, CDouble), (CDouble, CDouble)) -> m ((CDouble, CDouble), (CDouble, CDouble))) -> IO ((CDouble, CDouble), (CDouble, CDouble)) -> m ((CDouble, CDouble), (CDouble, CDouble)) forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT (PrimState m)) -> (Ptr (CairoPatternT (PrimState m)) -> IO ((CDouble, CDouble), (CDouble, CDouble))) -> IO ((CDouble, CDouble), (CDouble, CDouble)) forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoPatternT (PrimState m)) fpt \Ptr (CairoPatternT (PrimState m)) ppt -> (Ptr CDouble -> IO ((CDouble, CDouble), (CDouble, CDouble))) -> IO ((CDouble, CDouble), (CDouble, CDouble)) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble x0 -> (Ptr CDouble -> IO ((CDouble, CDouble), (CDouble, CDouble))) -> IO ((CDouble, CDouble), (CDouble, CDouble)) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble y0 -> (Ptr CDouble -> IO ((CDouble, CDouble), (CDouble, CDouble))) -> IO ((CDouble, CDouble), (CDouble, CDouble)) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble x1 -> (Ptr CDouble -> IO ((CDouble, CDouble), (CDouble, CDouble))) -> IO ((CDouble, CDouble), (CDouble, CDouble)) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble y1 -> do cs <- Ptr (CairoPatternT (PrimState m)) -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO Word32 forall s. Ptr (CairoPatternT s) -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO Word32 c_cairo_pattern_get_linear_points Ptr (CairoPatternT (PrimState m)) ppt Ptr CDouble x0 Ptr CDouble y0 Ptr CDouble x1 Ptr CDouble y1 cairoStatusToThrowError cs (,) <$> ((,) <$> peek x0 <*> peek y0) <*> ((,) <$> peek x1 <*> peek y1) foreign import ccall "cairo_pattern_get_linear_points" c_cairo_pattern_get_linear_points :: Ptr (CairoPatternT s) -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO Word32 {-# LINE 192 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} cairoPatternGetColorStopRgbaList :: (PrimMonad m, IsCairoPatternGradientT pt) => pt (PrimState m) -> m [(CDouble, Rgba CDouble)] cairoPatternGetColorStopRgbaList :: forall (m :: * -> *) (pt :: * -> *). (PrimMonad m, IsCairoPatternGradientT pt) => pt (PrimState m) -> m [(CDouble, Rgba CDouble)] cairoPatternGetColorStopRgbaList pt (PrimState m) pt = pt (PrimState m) -> m CInt forall (m :: * -> *) (pt :: * -> *). (PrimMonad m, IsCairoPatternGradientT pt) => pt (PrimState m) -> m CInt cairoPatternGetColorStopCount pt (PrimState m) pt m CInt -> (CInt -> m [(CDouble, Rgba CDouble)]) -> m [(CDouble, Rgba CDouble)] forall a b. m a -> (a -> m b) -> m b forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b >>= \CInt n -> [CInt] -> (CInt -> m (CDouble, Rgba CDouble)) -> m [(CDouble, Rgba CDouble)] forall (t :: * -> *) (f :: * -> *) a b. (Traversable t, Applicative f) => t a -> (a -> f b) -> f (t b) for [CInt 0 .. CInt n CInt -> CInt -> CInt forall a. Num a => a -> a -> a - CInt 1] \CInt i -> pt (PrimState m) -> CInt -> m (CDouble, Rgba CDouble) forall (m :: * -> *) (pt :: * -> *). (PrimMonad m, IsCairoPatternGradientT pt) => pt (PrimState m) -> CInt -> m (CDouble, Rgba CDouble) cairoPatternGetColorStopRgba pt (PrimState m) pt CInt i cairoPatternGetColorStopCount :: (PrimMonad m, IsCairoPatternGradientT pt) => pt (PrimState m) -> m CInt cairoPatternGetColorStopCount :: forall (m :: * -> *) (pt :: * -> *). (PrimMonad m, IsCairoPatternGradientT pt) => pt (PrimState m) -> m CInt cairoPatternGetColorStopCount (pt (PrimState m) -> CairoPatternGradientT (PrimState m) forall s. pt s -> CairoPatternGradientT s forall (pt :: * -> *) s. IsCairoPatternGradientT pt => pt s -> CairoPatternGradientT s toCairoPatternGradientT -> CairoPatternGradientT ForeignPtr (CairoPatternT (PrimState m)) fpt) = IO CInt -> m CInt forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO CInt -> m CInt) -> IO CInt -> m CInt forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT (PrimState m)) -> (Ptr (CairoPatternT (PrimState m)) -> IO CInt) -> IO CInt forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoPatternT (PrimState m)) fpt \Ptr (CairoPatternT (PrimState m)) ppt -> (Ptr CInt -> IO CInt) -> IO CInt forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CInt n -> do cs <- Ptr (CairoPatternT (PrimState m)) -> Ptr CInt -> IO Word32 forall s. Ptr (CairoPatternT s) -> Ptr CInt -> IO Word32 c_cairo_pattern_get_color_stop_count Ptr (CairoPatternT (PrimState m)) ppt Ptr CInt n cairoStatusToThrowError cs peek n foreign import ccall "cairo_pattern_get_color_stop_count" c_cairo_pattern_get_color_stop_count :: Ptr (CairoPatternT s) -> Ptr CInt -> IO Word32 {-# LINE 208 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} cairoPatternGetColorStopRgba :: (PrimMonad m, IsCairoPatternGradientT pt) => pt (PrimState m) -> CInt -> m (CDouble, Rgba CDouble) cairoPatternGetColorStopRgba :: forall (m :: * -> *) (pt :: * -> *). (PrimMonad m, IsCairoPatternGradientT pt) => pt (PrimState m) -> CInt -> m (CDouble, Rgba CDouble) cairoPatternGetColorStopRgba (pt (PrimState m) -> CairoPatternGradientT (PrimState m) forall s. pt s -> CairoPatternGradientT s forall (pt :: * -> *) s. IsCairoPatternGradientT pt => pt s -> CairoPatternGradientT s toCairoPatternGradientT -> CairoPatternGradientT ForeignPtr (CairoPatternT (PrimState m)) fpt) CInt i = IO (CDouble, Rgba CDouble) -> m (CDouble, Rgba CDouble) forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO (CDouble, Rgba CDouble) -> m (CDouble, Rgba CDouble)) -> IO (CDouble, Rgba CDouble) -> m (CDouble, Rgba CDouble) forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT (PrimState m)) -> (Ptr (CairoPatternT (PrimState m)) -> IO (CDouble, Rgba CDouble)) -> IO (CDouble, Rgba CDouble) forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoPatternT (PrimState m)) fpt \Ptr (CairoPatternT (PrimState m)) ppt -> (Ptr CDouble -> IO (CDouble, Rgba CDouble)) -> IO (CDouble, Rgba CDouble) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble os -> (Ptr CDouble -> IO (CDouble, Rgba CDouble)) -> IO (CDouble, Rgba CDouble) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble rd -> (Ptr CDouble -> IO (CDouble, Rgba CDouble)) -> IO (CDouble, Rgba CDouble) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble gr -> (Ptr CDouble -> IO (CDouble, Rgba CDouble)) -> IO (CDouble, Rgba CDouble) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble bl -> (Ptr CDouble -> IO (CDouble, Rgba CDouble)) -> IO (CDouble, Rgba CDouble) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble al -> do cs <- Ptr (CairoPatternT (PrimState m)) -> CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO Word32 forall s. Ptr (CairoPatternT s) -> CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO Word32 c_cairo_pattern_get_color_stop_rgba Ptr (CairoPatternT (PrimState m)) ppt CInt i Ptr CDouble os Ptr CDouble rd Ptr CDouble gr Ptr CDouble bl Ptr CDouble al cairoStatusToThrowError cs (,) <$> peek os <*> ((\CDouble r CDouble g CDouble b CDouble a -> Maybe (Rgba CDouble) -> Rgba CDouble forall a. HasCallStack => Maybe a -> a fromJust (Maybe (Rgba CDouble) -> Rgba CDouble) -> Maybe (Rgba CDouble) -> Rgba CDouble forall a b. (a -> b) -> a -> b $ CDouble -> CDouble -> CDouble -> CDouble -> Maybe (Rgba CDouble) forall d. (Ord d, Num d) => d -> d -> d -> d -> Maybe (Rgba d) rgbaDouble CDouble r CDouble g CDouble b CDouble a) <$> peek rd <*> peek gr <*> peek bl <*> peek al) foreign import ccall "cairo_pattern_get_color_stop_rgba" c_cairo_pattern_get_color_stop_rgba :: Ptr (CairoPatternT s) -> CInt -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO Word32 {-# LINE 220 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} newtype CairoPatternRadialT s = CairoPatternRadialT (ForeignPtr (CairoPatternT s)) deriving Int -> CairoPatternRadialT s -> ShowS [CairoPatternRadialT s] -> ShowS CairoPatternRadialT s -> String (Int -> CairoPatternRadialT s -> ShowS) -> (CairoPatternRadialT s -> String) -> ([CairoPatternRadialT s] -> ShowS) -> Show (CairoPatternRadialT s) forall s. Int -> CairoPatternRadialT s -> ShowS forall s. [CairoPatternRadialT s] -> ShowS forall s. CairoPatternRadialT s -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall s. Int -> CairoPatternRadialT s -> ShowS showsPrec :: Int -> CairoPatternRadialT s -> ShowS $cshow :: forall s. CairoPatternRadialT s -> String show :: CairoPatternRadialT s -> String $cshowList :: forall s. [CairoPatternRadialT s] -> ShowS showList :: [CairoPatternRadialT s] -> ShowS Show instance IsCairoPatternT CairoPatternRadialT where toCairoPatternT :: forall s. CairoPatternRadialT s -> CairoPatternT s toCairoPatternT = CairoPatternGradientT s -> CairoPatternT s forall s. CairoPatternGradientT s -> CairoPatternT s CairoPatternTGradient (CairoPatternGradientT s -> CairoPatternT s) -> (CairoPatternRadialT s -> CairoPatternGradientT s) -> CairoPatternRadialT s -> CairoPatternT s forall b c a. (b -> c) -> (a -> b) -> a -> c . CairoPatternRadialT s -> CairoPatternGradientT s forall s. CairoPatternRadialT s -> CairoPatternGradientT s forall (pt :: * -> *) s. IsCairoPatternGradientT pt => pt s -> CairoPatternGradientT s toCairoPatternGradientT instance IsCairoPatternGradientT CairoPatternRadialT where toCairoPatternGradientT :: forall s. CairoPatternRadialT s -> CairoPatternGradientT s toCairoPatternGradientT = CairoPatternRadialT s -> CairoPatternGradientT s forall s. CairoPatternRadialT s -> CairoPatternGradientT s CairoPatternGradientTRadial pattern CairoPatternGradientTRadial :: CairoPatternRadialT s -> CairoPatternGradientT s pattern $mCairoPatternGradientTRadial :: forall {r} {s}. CairoPatternGradientT s -> (CairoPatternRadialT s -> r) -> ((# #) -> r) -> r $bCairoPatternGradientTRadial :: forall s. CairoPatternRadialT s -> CairoPatternGradientT s CairoPatternGradientTRadial pt <- (cairoPatternGradientRadialT -> Just pt) where CairoPatternGradientTRadial (CairoPatternRadialT ForeignPtr (CairoPatternT s) fpt) = ForeignPtr (CairoPatternT s) -> CairoPatternGradientT s forall s. ForeignPtr (CairoPatternT s) -> CairoPatternGradientT s CairoPatternGradientT ForeignPtr (CairoPatternT s) fpt cairoPatternGradientRadialT :: CairoPatternGradientT s -> Maybe (CairoPatternRadialT s) cairoPatternGradientRadialT :: forall s. CairoPatternGradientT s -> Maybe (CairoPatternRadialT s) cairoPatternGradientRadialT pt :: CairoPatternGradientT s pt@(CairoPatternGradientT ForeignPtr (CairoPatternT s) fpt) = case CairoPatternT s -> CairoPatternTypeT forall s. CairoPatternT s -> CairoPatternTypeT cairoPatternGetType (CairoPatternT s -> CairoPatternTypeT) -> CairoPatternT s -> CairoPatternTypeT forall a b. (a -> b) -> a -> b $ CairoPatternGradientT s -> CairoPatternT s forall s. CairoPatternGradientT s -> CairoPatternT s CairoPatternTGradient CairoPatternGradientT s pt of CairoPatternTypeT CairoPatternTypeRadial -> CairoPatternRadialT s -> Maybe (CairoPatternRadialT s) forall a. a -> Maybe a Just (CairoPatternRadialT s -> Maybe (CairoPatternRadialT s)) -> CairoPatternRadialT s -> Maybe (CairoPatternRadialT s) forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT s) -> CairoPatternRadialT s forall s. ForeignPtr (CairoPatternT s) -> CairoPatternRadialT s CairoPatternRadialT ForeignPtr (CairoPatternT s) fpt CairoPatternTypeT _ -> Maybe (CairoPatternRadialT s) forall a. Maybe a Nothing cairoPatternCreateRadial :: PrimMonad m => CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> m (CairoPatternRadialT (PrimState m)) cairoPatternCreateRadial :: forall (m :: * -> *). PrimMonad m => CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> m (CairoPatternRadialT (PrimState m)) cairoPatternCreateRadial CDouble cx0 CDouble cy0 CDouble r0 CDouble cx1 CDouble cy1 CDouble r1 = IO (CairoPatternRadialT (PrimState m)) -> m (CairoPatternRadialT (PrimState m)) forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO (CairoPatternRadialT (PrimState m)) -> m (CairoPatternRadialT (PrimState m))) -> IO (CairoPatternRadialT (PrimState m)) -> m (CairoPatternRadialT (PrimState m)) forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT (PrimState m)) -> CairoPatternRadialT (PrimState m) forall s. ForeignPtr (CairoPatternT s) -> CairoPatternRadialT s CairoPatternRadialT (ForeignPtr (CairoPatternT (PrimState m)) -> CairoPatternRadialT (PrimState m)) -> IO (ForeignPtr (CairoPatternT (PrimState m))) -> IO (CairoPatternRadialT (PrimState m)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> do p <- CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr (CairoPatternT (PrimState m))) forall s. CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr (CairoPatternT s)) c_cairo_pattern_create_radial CDouble cx0 CDouble cy0 CDouble r0 CDouble cx1 CDouble cy1 CDouble r1 newForeignPtr p $ c_cairo_pattern_destroy p foreign import ccall "cairo_pattern_create_radial" c_cairo_pattern_create_radial :: CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> CDouble -> IO (Ptr (CairoPatternT s)) cairoPatternGetRadialCircles :: PrimMonad m => CairoPatternRadialT (PrimState m) -> m ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble)) cairoPatternGetRadialCircles :: forall (m :: * -> *). PrimMonad m => CairoPatternRadialT (PrimState m) -> m ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble)) cairoPatternGetRadialCircles (CairoPatternRadialT ForeignPtr (CairoPatternT (PrimState m)) fpt) = IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble)) -> m ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble)) forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble)) -> m ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble))) -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble)) -> m ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble)) forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT (PrimState m)) -> (Ptr (CairoPatternT (PrimState m)) -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble))) -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble)) forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoPatternT (PrimState m)) fpt \Ptr (CairoPatternT (PrimState m)) ppt -> (Ptr CDouble -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble))) -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble)) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble x0 -> (Ptr CDouble -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble))) -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble)) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble y0 -> (Ptr CDouble -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble))) -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble)) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble r0 -> (Ptr CDouble -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble))) -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble)) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble x1 -> (Ptr CDouble -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble))) -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble)) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble y1 -> (Ptr CDouble -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble))) -> IO ((CDouble, CDouble, CDouble), (CDouble, CDouble, CDouble)) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr CDouble r1 -> do cs <- Ptr (CairoPatternT (PrimState m)) -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO Word32 forall s. Ptr (CairoPatternT s) -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO Word32 c_cairo_pattern_get_radial_circles Ptr (CairoPatternT (PrimState m)) ppt Ptr CDouble x0 Ptr CDouble y0 Ptr CDouble r0 Ptr CDouble x1 Ptr CDouble y1 Ptr CDouble r1 cairoStatusToThrowError cs (,) <$> ((,,) <$> peek x0 <*> peek y0 <*> peek r0) <*> ((,,) <$> peek x1 <*> peek y1 <*> peek r1) foreign import ccall "cairo_pattern_get_radial_circles" c_cairo_pattern_get_radial_circles :: Ptr (CairoPatternT s) -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> Ptr CDouble -> IO Word32 {-# LINE 260 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} newtype CairoPatternSurfaceT s = CairoPatternSurfaceT (ForeignPtr (CairoPatternT s)) deriving Int -> CairoPatternSurfaceT s -> ShowS [CairoPatternSurfaceT s] -> ShowS CairoPatternSurfaceT s -> String (Int -> CairoPatternSurfaceT s -> ShowS) -> (CairoPatternSurfaceT s -> String) -> ([CairoPatternSurfaceT s] -> ShowS) -> Show (CairoPatternSurfaceT s) forall s. Int -> CairoPatternSurfaceT s -> ShowS forall s. [CairoPatternSurfaceT s] -> ShowS forall s. CairoPatternSurfaceT s -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall s. Int -> CairoPatternSurfaceT s -> ShowS showsPrec :: Int -> CairoPatternSurfaceT s -> ShowS $cshow :: forall s. CairoPatternSurfaceT s -> String show :: CairoPatternSurfaceT s -> String $cshowList :: forall s. [CairoPatternSurfaceT s] -> ShowS showList :: [CairoPatternSurfaceT s] -> ShowS Show instance IsCairoPatternT CairoPatternSurfaceT where toCairoPatternT :: forall s. CairoPatternSurfaceT s -> CairoPatternT s toCairoPatternT = CairoPatternSurfaceT s -> CairoPatternT s forall s. CairoPatternSurfaceT s -> CairoPatternT s CairoPatternTSurface pattern CairoPatternTSurface :: CairoPatternSurfaceT s -> CairoPatternT s pattern $mCairoPatternTSurface :: forall {r} {s}. CairoPatternT s -> (CairoPatternSurfaceT s -> r) -> ((# #) -> r) -> r $bCairoPatternTSurface :: forall s. CairoPatternSurfaceT s -> CairoPatternT s CairoPatternTSurface pt <- (cairoPatternTSurface -> Just pt) where CairoPatternTSurface (CairoPatternSurfaceT ForeignPtr (CairoPatternT s) fpt) = ForeignPtr (CairoPatternT s) -> CairoPatternT s forall s. ForeignPtr (CairoPatternT s) -> CairoPatternT s CairoPatternT ForeignPtr (CairoPatternT s) fpt cairoPatternTSurface :: CairoPatternT s -> Maybe (CairoPatternSurfaceT s) cairoPatternTSurface :: forall s. CairoPatternT s -> Maybe (CairoPatternSurfaceT s) cairoPatternTSurface pt :: CairoPatternT s pt@(CairoPatternT ForeignPtr (CairoPatternT s) fpt) = case CairoPatternT s -> CairoPatternTypeT forall s. CairoPatternT s -> CairoPatternTypeT cairoPatternGetType CairoPatternT s pt of CairoPatternTypeT CairoPatternTypeSurface -> CairoPatternSurfaceT s -> Maybe (CairoPatternSurfaceT s) forall a. a -> Maybe a Just (CairoPatternSurfaceT s -> Maybe (CairoPatternSurfaceT s)) -> CairoPatternSurfaceT s -> Maybe (CairoPatternSurfaceT s) forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT s) -> CairoPatternSurfaceT s forall s. ForeignPtr (CairoPatternT s) -> CairoPatternSurfaceT s CairoPatternSurfaceT ForeignPtr (CairoPatternT s) fpt CairoPatternTypeT _ -> Maybe (CairoPatternSurfaceT s) forall a. Maybe a Nothing cairoPatternCreateForSurface :: (PrimMonad m, IsCairoSurfaceT sr) => sr s (PrimState m) -> m (CairoPatternSurfaceT (PrimState m)) cairoPatternCreateForSurface :: forall (m :: * -> *) (sr :: * -> * -> *) s. (PrimMonad m, IsCairoSurfaceT sr) => sr s (PrimState m) -> m (CairoPatternSurfaceT (PrimState m)) cairoPatternCreateForSurface (sr s (PrimState m) -> CairoSurfaceT s (PrimState m) forall s ps. sr s ps -> CairoSurfaceT s ps forall (sr :: * -> * -> *) s ps. IsCairoSurfaceT sr => sr s ps -> CairoSurfaceT s ps toCairoSurfaceT -> CairoSurfaceT ForeignPtr (CairoSurfaceT s (PrimState m)) fs) = IO (CairoPatternSurfaceT (PrimState m)) -> m (CairoPatternSurfaceT (PrimState m)) forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO (CairoPatternSurfaceT (PrimState m)) -> m (CairoPatternSurfaceT (PrimState m))) -> IO (CairoPatternSurfaceT (PrimState m)) -> m (CairoPatternSurfaceT (PrimState m)) forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoPatternT (PrimState m)) -> CairoPatternSurfaceT (PrimState m) forall s. ForeignPtr (CairoPatternT s) -> CairoPatternSurfaceT s CairoPatternSurfaceT (ForeignPtr (CairoPatternT (PrimState m)) -> CairoPatternSurfaceT (PrimState m)) -> IO (ForeignPtr (CairoPatternT (PrimState m))) -> IO (CairoPatternSurfaceT (PrimState m)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> ForeignPtr (CairoSurfaceT s (PrimState m)) -> (Ptr (CairoSurfaceT s (PrimState m)) -> IO (ForeignPtr (CairoPatternT (PrimState m)))) -> IO (ForeignPtr (CairoPatternT (PrimState m))) forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoSurfaceT s (PrimState m)) fs \Ptr (CairoSurfaceT s (PrimState m)) ps -> do p <- Ptr (CairoSurfaceT s (PrimState m)) -> IO (Ptr (CairoPatternT (PrimState m))) forall s ps. Ptr (CairoSurfaceT s ps) -> IO (Ptr (CairoPatternT ps)) c_cairo_pattern_create_for_surface Ptr (CairoSurfaceT s (PrimState m)) ps newForeignPtr p $ touchForeignPtr fs >> c_cairo_pattern_destroy p foreign import ccall "cairo_pattern_create_for_surface" c_cairo_pattern_create_for_surface :: Ptr (CairoSurfaceT s ps) -> IO (Ptr (CairoPatternT ps)) cairoPatternGetSurface :: PrimMonad m => CairoPatternSurfaceT (PrimState m) -> m (CairoSurfaceT s (PrimState m)) cairoPatternGetSurface :: forall (m :: * -> *) s. PrimMonad m => CairoPatternSurfaceT (PrimState m) -> m (CairoSurfaceT s (PrimState m)) cairoPatternGetSurface (CairoPatternSurfaceT ForeignPtr (CairoPatternT (PrimState m)) fpt) = IO (CairoSurfaceT s (PrimState m)) -> m (CairoSurfaceT s (PrimState m)) forall (m :: * -> *) a. PrimMonad m => IO a -> m a unsafeIOToPrim (IO (CairoSurfaceT s (PrimState m)) -> m (CairoSurfaceT s (PrimState m))) -> IO (CairoSurfaceT s (PrimState m)) -> m (CairoSurfaceT s (PrimState m)) forall a b. (a -> b) -> a -> b $ ForeignPtr (CairoSurfaceT s (PrimState m)) -> CairoSurfaceT s (PrimState m) forall s ps. ForeignPtr (CairoSurfaceT s ps) -> CairoSurfaceT s ps CairoSurfaceT (ForeignPtr (CairoSurfaceT s (PrimState m)) -> CairoSurfaceT s (PrimState m)) -> IO (ForeignPtr (CairoSurfaceT s (PrimState m))) -> IO (CairoSurfaceT s (PrimState m)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> ForeignPtr (CairoPatternT (PrimState m)) -> (Ptr (CairoPatternT (PrimState m)) -> IO (ForeignPtr (CairoSurfaceT s (PrimState m)))) -> IO (ForeignPtr (CairoSurfaceT s (PrimState m))) forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoPatternT (PrimState m)) fpt \Ptr (CairoPatternT (PrimState m)) ppt -> (Ptr (Ptr (CairoSurfaceT s (PrimState m))) -> IO (ForeignPtr (CairoSurfaceT s (PrimState m)))) -> IO (ForeignPtr (CairoSurfaceT s (PrimState m))) forall a b. Storable a => (Ptr a -> IO b) -> IO b alloca \Ptr (Ptr (CairoSurfaceT s (PrimState m))) pps -> do Word32 -> IO () cairoStatusToThrowError (Word32 -> IO ()) -> IO Word32 -> IO () forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< Ptr (CairoPatternT (PrimState m)) -> Ptr (Ptr (CairoSurfaceT s (PrimState m))) -> IO Word32 forall ps s. Ptr (CairoPatternT ps) -> Ptr (Ptr (CairoSurfaceT s ps)) -> IO Word32 c_cairo_pattern_get_surface Ptr (CairoPatternT (PrimState m)) ppt Ptr (Ptr (CairoSurfaceT s (PrimState m))) pps p <- Ptr (CairoSurfaceT s (PrimState m)) -> IO (Ptr (CairoSurfaceT s (PrimState m))) forall s ps. Ptr (CairoSurfaceT s ps) -> IO (Ptr (CairoSurfaceT s ps)) c_cairo_surface_reference (Ptr (CairoSurfaceT s (PrimState m)) -> IO (Ptr (CairoSurfaceT s (PrimState m)))) -> IO (Ptr (CairoSurfaceT s (PrimState m))) -> IO (Ptr (CairoSurfaceT s (PrimState m))) forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< Ptr (Ptr (CairoSurfaceT s (PrimState m))) -> IO (Ptr (CairoSurfaceT s (PrimState m))) forall a. Storable a => Ptr a -> IO a peek Ptr (Ptr (CairoSurfaceT s (PrimState m))) pps newForeignPtr p $ c_cairo_surface_destroy p foreign import ccall "cairo_pattern_get_surface" c_cairo_pattern_get_surface :: Ptr (CairoPatternT ps) -> Ptr (Ptr (CairoSurfaceT s ps)) -> IO Word32 {-# LINE 295 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-} foreign import ccall "cairo_surface_reference" c_cairo_surface_reference :: Ptr (CairoSurfaceT s ps) -> IO (Ptr (CairoSurfaceT s ps)) raiseIfErrorPattern :: CairoPatternT s -> IO () raiseIfErrorPattern :: forall s. CairoPatternT s -> IO () raiseIfErrorPattern (CairoPatternT ForeignPtr (CairoPatternT s) fpt) = ForeignPtr (CairoPatternT s) -> (Ptr (CairoPatternT s) -> IO ()) -> IO () forall a b. ForeignPtr a -> (Ptr a -> IO b) -> IO b withForeignPtr ForeignPtr (CairoPatternT s) fpt \Ptr (CairoPatternT s) pt -> Word32 -> IO () cairoStatusToThrowError (Word32 -> IO ()) -> IO Word32 -> IO () forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b =<< Ptr (CairoPatternT s) -> IO Word32 forall s. Ptr (CairoPatternT s) -> IO Word32 c_cairo_pattern_status Ptr (CairoPatternT s) pt foreign import ccall "cairo_pattern_status" c_cairo_pattern_status :: Ptr (CairoPatternT s) -> IO Word32 {-# LINE 305 "src/Graphics/Cairo/Drawing/CairoPatternT/Basic.hsc" #-}