{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.GdkPixbuf.Objects.Pixbuf
    ( 

-- * Exported types
    Pixbuf(..)                              ,
    PixbufK                                 ,
    toPixbuf                                ,
    noPixbuf                                ,


 -- * Methods
-- ** pixbufAddAlpha
    pixbufAddAlpha                          ,


-- ** pixbufApplyEmbeddedOrientation
    pixbufApplyEmbeddedOrientation          ,


-- ** pixbufComposite
    pixbufComposite                         ,


-- ** pixbufCompositeColor
    pixbufCompositeColor                    ,


-- ** pixbufCompositeColorSimple
    pixbufCompositeColorSimple              ,


-- ** pixbufCopy
    pixbufCopy                              ,


-- ** pixbufCopyArea
    pixbufCopyArea                          ,


-- ** pixbufFill
    pixbufFill                              ,


-- ** pixbufFlip
    pixbufFlip                              ,


-- ** pixbufFromPixdata
    pixbufFromPixdata                       ,


-- ** pixbufGetBitsPerSample
    pixbufGetBitsPerSample                  ,


-- ** pixbufGetByteLength
    pixbufGetByteLength                     ,


-- ** pixbufGetColorspace
    pixbufGetColorspace                     ,


-- ** pixbufGetFileInfo
    pixbufGetFileInfo                       ,


-- ** pixbufGetFileInfoAsync
    pixbufGetFileInfoAsync                  ,


-- ** pixbufGetFileInfoFinish
    pixbufGetFileInfoFinish                 ,


-- ** pixbufGetFormats
    pixbufGetFormats                        ,


-- ** pixbufGetHasAlpha
    pixbufGetHasAlpha                       ,


-- ** pixbufGetHeight
    pixbufGetHeight                         ,


-- ** pixbufGetNChannels
    pixbufGetNChannels                      ,


-- ** pixbufGetOption
    pixbufGetOption                         ,


-- ** pixbufGetPixels
    pixbufGetPixels                         ,


-- ** pixbufGetRowstride
    pixbufGetRowstride                      ,


-- ** pixbufGetWidth
    pixbufGetWidth                          ,


-- ** pixbufNew
    pixbufNew                               ,


-- ** pixbufNewFromBytes
    pixbufNewFromBytes                      ,


-- ** pixbufNewFromData
    pixbufNewFromData                       ,


-- ** pixbufNewFromFile
    pixbufNewFromFile                       ,


-- ** pixbufNewFromFileAtScale
    pixbufNewFromFileAtScale                ,


-- ** pixbufNewFromFileAtSize
    pixbufNewFromFileAtSize                 ,


-- ** pixbufNewFromInline
    pixbufNewFromInline                     ,


-- ** pixbufNewFromResource
    pixbufNewFromResource                   ,


-- ** pixbufNewFromResourceAtScale
    pixbufNewFromResourceAtScale            ,


-- ** pixbufNewFromStream
    pixbufNewFromStream                     ,


-- ** pixbufNewFromStreamAsync
    pixbufNewFromStreamAsync                ,


-- ** pixbufNewFromStreamAtScale
    pixbufNewFromStreamAtScale              ,


-- ** pixbufNewFromStreamAtScaleAsync
    pixbufNewFromStreamAtScaleAsync         ,


-- ** pixbufNewFromStreamFinish
    pixbufNewFromStreamFinish               ,


-- ** pixbufNewFromXpmData
    pixbufNewFromXpmData                    ,


-- ** pixbufNewSubpixbuf
    pixbufNewSubpixbuf                      ,


-- ** pixbufReadPixelBytes
    pixbufReadPixelBytes                    ,


-- ** pixbufReadPixels
    pixbufReadPixels                        ,


-- ** pixbufRotateSimple
    pixbufRotateSimple                      ,


-- ** pixbufSaturateAndPixelate
    pixbufSaturateAndPixelate               ,


-- ** pixbufSaveToBufferv
    pixbufSaveToBufferv                     ,


-- ** pixbufSaveToCallbackv
    pixbufSaveToCallbackv                   ,


-- ** pixbufSaveToStreamFinish
    pixbufSaveToStreamFinish                ,


-- ** pixbufSavev
    pixbufSavev                             ,


-- ** pixbufScale
    pixbufScale                             ,


-- ** pixbufScaleSimple
    pixbufScaleSimple                       ,




 -- * Properties
-- ** BitsPerSample
    PixbufBitsPerSamplePropertyInfo         ,
    constructPixbufBitsPerSample            ,
    getPixbufBitsPerSample                  ,


-- ** Colorspace
    PixbufColorspacePropertyInfo            ,
    constructPixbufColorspace               ,
    getPixbufColorspace                     ,


-- ** HasAlpha
    PixbufHasAlphaPropertyInfo              ,
    constructPixbufHasAlpha                 ,
    getPixbufHasAlpha                       ,


-- ** Height
    PixbufHeightPropertyInfo                ,
    constructPixbufHeight                   ,
    getPixbufHeight                         ,


-- ** NChannels
    PixbufNChannelsPropertyInfo             ,
    constructPixbufNChannels                ,
    getPixbufNChannels                      ,


-- ** PixelBytes
    PixbufPixelBytesPropertyInfo            ,
    constructPixbufPixelBytes               ,
    getPixbufPixelBytes                     ,


-- ** Pixels
    PixbufPixelsPropertyInfo                ,
    constructPixbufPixels                   ,
    getPixbufPixels                         ,


-- ** Rowstride
    PixbufRowstridePropertyInfo             ,
    constructPixbufRowstride                ,
    getPixbufRowstride                      ,


-- ** Width
    PixbufWidthPropertyInfo                 ,
    constructPixbufWidth                    ,
    getPixbufWidth                          ,




    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.GdkPixbuf.Types
import GI.GdkPixbuf.Callbacks
import qualified GI.GLib as GLib
import qualified GI.GObject as GObject
import qualified GI.Gio as Gio

newtype Pixbuf = Pixbuf (ForeignPtr Pixbuf)
foreign import ccall "gdk_pixbuf_get_type"
    c_gdk_pixbuf_get_type :: IO GType

type instance ParentTypes Pixbuf = PixbufParentTypes
type PixbufParentTypes = '[GObject.Object, Gio.Icon, Gio.LoadableIcon]

instance GObject Pixbuf where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gdk_pixbuf_get_type
    

class GObject o => PixbufK o
instance (GObject o, IsDescendantOf Pixbuf o) => PixbufK o

toPixbuf :: PixbufK o => o -> IO Pixbuf
toPixbuf = unsafeCastTo Pixbuf

noPixbuf :: Maybe Pixbuf
noPixbuf = Nothing

-- VVV Prop "bits-per-sample"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getPixbufBitsPerSample :: (MonadIO m, PixbufK o) => o -> m Int32
getPixbufBitsPerSample obj = liftIO $ getObjectPropertyCInt obj "bits-per-sample"

constructPixbufBitsPerSample :: Int32 -> IO ([Char], GValue)
constructPixbufBitsPerSample val = constructObjectPropertyCInt "bits-per-sample" val

data PixbufBitsPerSamplePropertyInfo
instance AttrInfo PixbufBitsPerSamplePropertyInfo where
    type AttrAllowedOps PixbufBitsPerSamplePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint PixbufBitsPerSamplePropertyInfo = (~) Int32
    type AttrBaseTypeConstraint PixbufBitsPerSamplePropertyInfo = PixbufK
    type AttrGetType PixbufBitsPerSamplePropertyInfo = Int32
    type AttrLabel PixbufBitsPerSamplePropertyInfo = "Pixbuf::bits-per-sample"
    attrGet _ = getPixbufBitsPerSample
    attrSet _ = undefined
    attrConstruct _ = constructPixbufBitsPerSample

-- VVV Prop "colorspace"
   -- Type: TInterface "GdkPixbuf" "Colorspace"
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getPixbufColorspace :: (MonadIO m, PixbufK o) => o -> m Colorspace
getPixbufColorspace obj = liftIO $ getObjectPropertyEnum obj "colorspace"

constructPixbufColorspace :: Colorspace -> IO ([Char], GValue)
constructPixbufColorspace val = constructObjectPropertyEnum "colorspace" val

data PixbufColorspacePropertyInfo
instance AttrInfo PixbufColorspacePropertyInfo where
    type AttrAllowedOps PixbufColorspacePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint PixbufColorspacePropertyInfo = (~) Colorspace
    type AttrBaseTypeConstraint PixbufColorspacePropertyInfo = PixbufK
    type AttrGetType PixbufColorspacePropertyInfo = Colorspace
    type AttrLabel PixbufColorspacePropertyInfo = "Pixbuf::colorspace"
    attrGet _ = getPixbufColorspace
    attrSet _ = undefined
    attrConstruct _ = constructPixbufColorspace

-- VVV Prop "has-alpha"
   -- Type: TBasicType TBoolean
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getPixbufHasAlpha :: (MonadIO m, PixbufK o) => o -> m Bool
getPixbufHasAlpha obj = liftIO $ getObjectPropertyBool obj "has-alpha"

constructPixbufHasAlpha :: Bool -> IO ([Char], GValue)
constructPixbufHasAlpha val = constructObjectPropertyBool "has-alpha" val

data PixbufHasAlphaPropertyInfo
instance AttrInfo PixbufHasAlphaPropertyInfo where
    type AttrAllowedOps PixbufHasAlphaPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint PixbufHasAlphaPropertyInfo = (~) Bool
    type AttrBaseTypeConstraint PixbufHasAlphaPropertyInfo = PixbufK
    type AttrGetType PixbufHasAlphaPropertyInfo = Bool
    type AttrLabel PixbufHasAlphaPropertyInfo = "Pixbuf::has-alpha"
    attrGet _ = getPixbufHasAlpha
    attrSet _ = undefined
    attrConstruct _ = constructPixbufHasAlpha

-- VVV Prop "height"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getPixbufHeight :: (MonadIO m, PixbufK o) => o -> m Int32
getPixbufHeight obj = liftIO $ getObjectPropertyCInt obj "height"

constructPixbufHeight :: Int32 -> IO ([Char], GValue)
constructPixbufHeight val = constructObjectPropertyCInt "height" val

data PixbufHeightPropertyInfo
instance AttrInfo PixbufHeightPropertyInfo where
    type AttrAllowedOps PixbufHeightPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint PixbufHeightPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint PixbufHeightPropertyInfo = PixbufK
    type AttrGetType PixbufHeightPropertyInfo = Int32
    type AttrLabel PixbufHeightPropertyInfo = "Pixbuf::height"
    attrGet _ = getPixbufHeight
    attrSet _ = undefined
    attrConstruct _ = constructPixbufHeight

-- VVV Prop "n-channels"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getPixbufNChannels :: (MonadIO m, PixbufK o) => o -> m Int32
getPixbufNChannels obj = liftIO $ getObjectPropertyCInt obj "n-channels"

constructPixbufNChannels :: Int32 -> IO ([Char], GValue)
constructPixbufNChannels val = constructObjectPropertyCInt "n-channels" val

data PixbufNChannelsPropertyInfo
instance AttrInfo PixbufNChannelsPropertyInfo where
    type AttrAllowedOps PixbufNChannelsPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint PixbufNChannelsPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint PixbufNChannelsPropertyInfo = PixbufK
    type AttrGetType PixbufNChannelsPropertyInfo = Int32
    type AttrLabel PixbufNChannelsPropertyInfo = "Pixbuf::n-channels"
    attrGet _ = getPixbufNChannels
    attrSet _ = undefined
    attrConstruct _ = constructPixbufNChannels

-- VVV Prop "pixel-bytes"
   -- Type: TInterface "GLib" "Bytes"
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getPixbufPixelBytes :: (MonadIO m, PixbufK o) => o -> m GLib.Bytes
getPixbufPixelBytes obj = liftIO $ getObjectPropertyBoxed obj "pixel-bytes" GLib.Bytes

constructPixbufPixelBytes :: GLib.Bytes -> IO ([Char], GValue)
constructPixbufPixelBytes val = constructObjectPropertyBoxed "pixel-bytes" val

data PixbufPixelBytesPropertyInfo
instance AttrInfo PixbufPixelBytesPropertyInfo where
    type AttrAllowedOps PixbufPixelBytesPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint PixbufPixelBytesPropertyInfo = (~) GLib.Bytes
    type AttrBaseTypeConstraint PixbufPixelBytesPropertyInfo = PixbufK
    type AttrGetType PixbufPixelBytesPropertyInfo = GLib.Bytes
    type AttrLabel PixbufPixelBytesPropertyInfo = "Pixbuf::pixel-bytes"
    attrGet _ = getPixbufPixelBytes
    attrSet _ = undefined
    attrConstruct _ = constructPixbufPixelBytes

-- VVV Prop "pixels"
   -- Type: TBasicType TVoid
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getPixbufPixels :: (MonadIO m, PixbufK o) => o -> m (Ptr ())
getPixbufPixels obj = liftIO $ getObjectPropertyPtr obj "pixels"

constructPixbufPixels :: (Ptr ()) -> IO ([Char], GValue)
constructPixbufPixels val = constructObjectPropertyPtr "pixels" val

data PixbufPixelsPropertyInfo
instance AttrInfo PixbufPixelsPropertyInfo where
    type AttrAllowedOps PixbufPixelsPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint PixbufPixelsPropertyInfo = (~) (Ptr ())
    type AttrBaseTypeConstraint PixbufPixelsPropertyInfo = PixbufK
    type AttrGetType PixbufPixelsPropertyInfo = (Ptr ())
    type AttrLabel PixbufPixelsPropertyInfo = "Pixbuf::pixels"
    attrGet _ = getPixbufPixels
    attrSet _ = undefined
    attrConstruct _ = constructPixbufPixels

-- VVV Prop "rowstride"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getPixbufRowstride :: (MonadIO m, PixbufK o) => o -> m Int32
getPixbufRowstride obj = liftIO $ getObjectPropertyCInt obj "rowstride"

constructPixbufRowstride :: Int32 -> IO ([Char], GValue)
constructPixbufRowstride val = constructObjectPropertyCInt "rowstride" val

data PixbufRowstridePropertyInfo
instance AttrInfo PixbufRowstridePropertyInfo where
    type AttrAllowedOps PixbufRowstridePropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint PixbufRowstridePropertyInfo = (~) Int32
    type AttrBaseTypeConstraint PixbufRowstridePropertyInfo = PixbufK
    type AttrGetType PixbufRowstridePropertyInfo = Int32
    type AttrLabel PixbufRowstridePropertyInfo = "Pixbuf::rowstride"
    attrGet _ = getPixbufRowstride
    attrSet _ = undefined
    attrConstruct _ = constructPixbufRowstride

-- VVV Prop "width"
   -- Type: TBasicType TInt32
   -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]

getPixbufWidth :: (MonadIO m, PixbufK o) => o -> m Int32
getPixbufWidth obj = liftIO $ getObjectPropertyCInt obj "width"

constructPixbufWidth :: Int32 -> IO ([Char], GValue)
constructPixbufWidth val = constructObjectPropertyCInt "width" val

data PixbufWidthPropertyInfo
instance AttrInfo PixbufWidthPropertyInfo where
    type AttrAllowedOps PixbufWidthPropertyInfo = '[ 'AttrConstruct, 'AttrGet]
    type AttrSetTypeConstraint PixbufWidthPropertyInfo = (~) Int32
    type AttrBaseTypeConstraint PixbufWidthPropertyInfo = PixbufK
    type AttrGetType PixbufWidthPropertyInfo = Int32
    type AttrLabel PixbufWidthPropertyInfo = "Pixbuf::width"
    attrGet _ = getPixbufWidth
    attrSet _ = undefined
    attrConstruct _ = constructPixbufWidth

type instance AttributeList Pixbuf = PixbufAttributeList
type PixbufAttributeList = ('[ '("bits-per-sample", PixbufBitsPerSamplePropertyInfo), '("colorspace", PixbufColorspacePropertyInfo), '("has-alpha", PixbufHasAlphaPropertyInfo), '("height", PixbufHeightPropertyInfo), '("n-channels", PixbufNChannelsPropertyInfo), '("pixel-bytes", PixbufPixelBytesPropertyInfo), '("pixels", PixbufPixelsPropertyInfo), '("rowstride", PixbufRowstridePropertyInfo), '("width", PixbufWidthPropertyInfo)] :: [(Symbol, *)])

type instance SignalList Pixbuf = PixbufSignalList
type PixbufSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])

-- method Pixbuf::new
-- method type : Constructor
-- Args : [Arg {argName = "colorspace", argType = TInterface "GdkPixbuf" "Colorspace", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "has_alpha", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bits_per_sample", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "colorspace", argType = TInterface "GdkPixbuf" "Colorspace", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "has_alpha", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bits_per_sample", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_new" gdk_pixbuf_new :: 
    CUInt ->                                -- colorspace : TInterface "GdkPixbuf" "Colorspace"
    CInt ->                                 -- has_alpha : TBasicType TBoolean
    Int32 ->                                -- bits_per_sample : TBasicType TInt32
    Int32 ->                                -- width : TBasicType TInt32
    Int32 ->                                -- height : TBasicType TInt32
    IO (Ptr Pixbuf)


pixbufNew ::
    (MonadIO m) =>
    Colorspace ->                           -- colorspace
    Bool ->                                 -- has_alpha
    Int32 ->                                -- bits_per_sample
    Int32 ->                                -- width
    Int32 ->                                -- height
    m Pixbuf
pixbufNew colorspace has_alpha bits_per_sample width height = liftIO $ do
    let colorspace' = (fromIntegral . fromEnum) colorspace
    let has_alpha' = (fromIntegral . fromEnum) has_alpha
    result <- gdk_pixbuf_new colorspace' has_alpha' bits_per_sample width height
    checkUnexpectedReturnNULL "gdk_pixbuf_new" result
    result' <- (wrapObject Pixbuf) result
    return result'

-- method Pixbuf::new_from_bytes
-- method type : Constructor
-- Args : [Arg {argName = "data", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "colorspace", argType = TInterface "GdkPixbuf" "Colorspace", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "has_alpha", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bits_per_sample", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rowstride", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "data", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "colorspace", argType = TInterface "GdkPixbuf" "Colorspace", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "has_alpha", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bits_per_sample", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rowstride", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_from_bytes" gdk_pixbuf_new_from_bytes :: 
    Ptr GLib.Bytes ->                       -- data : TInterface "GLib" "Bytes"
    CUInt ->                                -- colorspace : TInterface "GdkPixbuf" "Colorspace"
    CInt ->                                 -- has_alpha : TBasicType TBoolean
    Int32 ->                                -- bits_per_sample : TBasicType TInt32
    Int32 ->                                -- width : TBasicType TInt32
    Int32 ->                                -- height : TBasicType TInt32
    Int32 ->                                -- rowstride : TBasicType TInt32
    IO (Ptr Pixbuf)


pixbufNewFromBytes ::
    (MonadIO m) =>
    GLib.Bytes ->                           -- data
    Colorspace ->                           -- colorspace
    Bool ->                                 -- has_alpha
    Int32 ->                                -- bits_per_sample
    Int32 ->                                -- width
    Int32 ->                                -- height
    Int32 ->                                -- rowstride
    m Pixbuf
pixbufNewFromBytes data_ colorspace has_alpha bits_per_sample width height rowstride = liftIO $ do
    let data_' = unsafeManagedPtrGetPtr data_
    let colorspace' = (fromIntegral . fromEnum) colorspace
    let has_alpha' = (fromIntegral . fromEnum) has_alpha
    result <- gdk_pixbuf_new_from_bytes data_' colorspace' has_alpha' bits_per_sample width height rowstride
    checkUnexpectedReturnNULL "gdk_pixbuf_new_from_bytes" result
    result' <- (wrapObject Pixbuf) result
    touchManagedPtr data_
    return result'

-- method Pixbuf::new_from_data
-- method type : Constructor
-- Args : [Arg {argName = "data", argType = TCArray False (-1) (-1) (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "colorspace", argType = TInterface "GdkPixbuf" "Colorspace", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "has_alpha", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bits_per_sample", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rowstride", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy_fn", argType = TInterface "GdkPixbuf" "PixbufDestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 8, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy_fn_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "data", argType = TCArray False (-1) (-1) (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "colorspace", argType = TInterface "GdkPixbuf" "Colorspace", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "has_alpha", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bits_per_sample", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rowstride", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy_fn", argType = TInterface "GdkPixbuf" "PixbufDestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 8, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_from_data" gdk_pixbuf_new_from_data :: 
    Ptr Word8 ->                            -- data : TCArray False (-1) (-1) (TBasicType TUInt8)
    CUInt ->                                -- colorspace : TInterface "GdkPixbuf" "Colorspace"
    CInt ->                                 -- has_alpha : TBasicType TBoolean
    Int32 ->                                -- bits_per_sample : TBasicType TInt32
    Int32 ->                                -- width : TBasicType TInt32
    Int32 ->                                -- height : TBasicType TInt32
    Int32 ->                                -- rowstride : TBasicType TInt32
    FunPtr PixbufDestroyNotifyC ->          -- destroy_fn : TInterface "GdkPixbuf" "PixbufDestroyNotify"
    Ptr () ->                               -- destroy_fn_data : TBasicType TVoid
    IO (Ptr Pixbuf)


pixbufNewFromData ::
    (MonadIO m) =>
    Ptr Word8 ->                            -- data
    Colorspace ->                           -- colorspace
    Bool ->                                 -- has_alpha
    Int32 ->                                -- bits_per_sample
    Int32 ->                                -- width
    Int32 ->                                -- height
    Int32 ->                                -- rowstride
    Maybe (PixbufDestroyNotify) ->          -- destroy_fn
    m Pixbuf
pixbufNewFromData data_ colorspace has_alpha bits_per_sample width height rowstride destroy_fn = liftIO $ do
    let colorspace' = (fromIntegral . fromEnum) colorspace
    let has_alpha' = (fromIntegral . fromEnum) has_alpha
    ptrdestroy_fn <- callocMem :: IO (Ptr (FunPtr PixbufDestroyNotifyC))
    maybeDestroy_fn <- case destroy_fn of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jDestroy_fn -> do
            jDestroy_fn' <- mkPixbufDestroyNotify (pixbufDestroyNotifyWrapper (Just ptrdestroy_fn) jDestroy_fn)
            poke ptrdestroy_fn jDestroy_fn'
            return jDestroy_fn'
    let destroy_fn_data = nullPtr
    result <- gdk_pixbuf_new_from_data data_ colorspace' has_alpha' bits_per_sample width height rowstride maybeDestroy_fn destroy_fn_data
    checkUnexpectedReturnNULL "gdk_pixbuf_new_from_data" result
    result' <- (wrapObject Pixbuf) result
    return result'

-- method Pixbuf::new_from_file
-- method type : Constructor
-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_from_file" gdk_pixbuf_new_from_file :: 
    CString ->                              -- filename : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr Pixbuf)


pixbufNewFromFile ::
    (MonadIO m) =>
    T.Text ->                               -- filename
    m Pixbuf
pixbufNewFromFile filename = liftIO $ do
    filename' <- textToCString filename
    onException (do
        result <- propagateGError $ gdk_pixbuf_new_from_file filename'
        checkUnexpectedReturnNULL "gdk_pixbuf_new_from_file" result
        result' <- (wrapObject Pixbuf) result
        freeMem filename'
        return result'
     ) (do
        freeMem filename'
     )

-- method Pixbuf::new_from_file_at_scale
-- method type : Constructor
-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "preserve_aspect_ratio", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "preserve_aspect_ratio", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_from_file_at_scale" gdk_pixbuf_new_from_file_at_scale :: 
    CString ->                              -- filename : TBasicType TUTF8
    Int32 ->                                -- width : TBasicType TInt32
    Int32 ->                                -- height : TBasicType TInt32
    CInt ->                                 -- preserve_aspect_ratio : TBasicType TBoolean
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr Pixbuf)


pixbufNewFromFileAtScale ::
    (MonadIO m) =>
    T.Text ->                               -- filename
    Int32 ->                                -- width
    Int32 ->                                -- height
    Bool ->                                 -- preserve_aspect_ratio
    m Pixbuf
pixbufNewFromFileAtScale filename width height preserve_aspect_ratio = liftIO $ do
    filename' <- textToCString filename
    let preserve_aspect_ratio' = (fromIntegral . fromEnum) preserve_aspect_ratio
    onException (do
        result <- propagateGError $ gdk_pixbuf_new_from_file_at_scale filename' width height preserve_aspect_ratio'
        checkUnexpectedReturnNULL "gdk_pixbuf_new_from_file_at_scale" result
        result' <- (wrapObject Pixbuf) result
        freeMem filename'
        return result'
     ) (do
        freeMem filename'
     )

-- method Pixbuf::new_from_file_at_size
-- method type : Constructor
-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_from_file_at_size" gdk_pixbuf_new_from_file_at_size :: 
    CString ->                              -- filename : TBasicType TUTF8
    Int32 ->                                -- width : TBasicType TInt32
    Int32 ->                                -- height : TBasicType TInt32
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr Pixbuf)


pixbufNewFromFileAtSize ::
    (MonadIO m) =>
    T.Text ->                               -- filename
    Int32 ->                                -- width
    Int32 ->                                -- height
    m Pixbuf
pixbufNewFromFileAtSize filename width height = liftIO $ do
    filename' <- textToCString filename
    onException (do
        result <- propagateGError $ gdk_pixbuf_new_from_file_at_size filename' width height
        checkUnexpectedReturnNULL "gdk_pixbuf_new_from_file_at_size" result
        result' <- (wrapObject Pixbuf) result
        freeMem filename'
        return result'
     ) (do
        freeMem filename'
     )

-- method Pixbuf::new_from_inline
-- method type : Constructor
-- Args : [Arg {argName = "data_length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TCArray False (-1) 0 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "copy_pixels", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : [Arg {argName = "data_length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- hInArgs : [Arg {argName = "data", argType = TCArray False (-1) 0 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "copy_pixels", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_from_inline" gdk_pixbuf_new_from_inline :: 
    Int32 ->                                -- data_length : TBasicType TInt32
    Ptr Word8 ->                            -- data : TCArray False (-1) 0 (TBasicType TUInt8)
    CInt ->                                 -- copy_pixels : TBasicType TBoolean
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr Pixbuf)

{-# DEPRECATED pixbufNewFromInline ["(Since version 2.32)","Use #GResource instead."]#-}
pixbufNewFromInline ::
    (MonadIO m) =>
    ByteString ->                           -- data
    Bool ->                                 -- copy_pixels
    m Pixbuf
pixbufNewFromInline data_ copy_pixels = liftIO $ do
    let data_length = fromIntegral $ B.length data_
    data_' <- packByteString data_
    let copy_pixels' = (fromIntegral . fromEnum) copy_pixels
    onException (do
        result <- propagateGError $ gdk_pixbuf_new_from_inline data_length data_' copy_pixels'
        checkUnexpectedReturnNULL "gdk_pixbuf_new_from_inline" result
        result' <- (wrapObject Pixbuf) result
        freeMem data_'
        return result'
     ) (do
        freeMem data_'
     )

-- method Pixbuf::new_from_resource
-- method type : Constructor
-- Args : [Arg {argName = "resource_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "resource_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_from_resource" gdk_pixbuf_new_from_resource :: 
    CString ->                              -- resource_path : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr Pixbuf)


pixbufNewFromResource ::
    (MonadIO m) =>
    T.Text ->                               -- resource_path
    m Pixbuf
pixbufNewFromResource resource_path = liftIO $ do
    resource_path' <- textToCString resource_path
    onException (do
        result <- propagateGError $ gdk_pixbuf_new_from_resource resource_path'
        checkUnexpectedReturnNULL "gdk_pixbuf_new_from_resource" result
        result' <- (wrapObject Pixbuf) result
        freeMem resource_path'
        return result'
     ) (do
        freeMem resource_path'
     )

-- method Pixbuf::new_from_resource_at_scale
-- method type : Constructor
-- Args : [Arg {argName = "resource_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "preserve_aspect_ratio", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "resource_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "preserve_aspect_ratio", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_from_resource_at_scale" gdk_pixbuf_new_from_resource_at_scale :: 
    CString ->                              -- resource_path : TBasicType TUTF8
    Int32 ->                                -- width : TBasicType TInt32
    Int32 ->                                -- height : TBasicType TInt32
    CInt ->                                 -- preserve_aspect_ratio : TBasicType TBoolean
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr Pixbuf)


pixbufNewFromResourceAtScale ::
    (MonadIO m) =>
    T.Text ->                               -- resource_path
    Int32 ->                                -- width
    Int32 ->                                -- height
    Bool ->                                 -- preserve_aspect_ratio
    m Pixbuf
pixbufNewFromResourceAtScale resource_path width height preserve_aspect_ratio = liftIO $ do
    resource_path' <- textToCString resource_path
    let preserve_aspect_ratio' = (fromIntegral . fromEnum) preserve_aspect_ratio
    onException (do
        result <- propagateGError $ gdk_pixbuf_new_from_resource_at_scale resource_path' width height preserve_aspect_ratio'
        checkUnexpectedReturnNULL "gdk_pixbuf_new_from_resource_at_scale" result
        result' <- (wrapObject Pixbuf) result
        freeMem resource_path'
        return result'
     ) (do
        freeMem resource_path'
     )

-- method Pixbuf::new_from_stream
-- method type : Constructor
-- Args : [Arg {argName = "stream", argType = TInterface "Gio" "InputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "stream", argType = TInterface "Gio" "InputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_from_stream" gdk_pixbuf_new_from_stream :: 
    Ptr Gio.InputStream ->                  -- stream : TInterface "Gio" "InputStream"
    Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr Pixbuf)


pixbufNewFromStream ::
    (MonadIO m, Gio.InputStreamK a, Gio.CancellableK b) =>
    a ->                                    -- stream
    Maybe (b) ->                            -- cancellable
    m Pixbuf
pixbufNewFromStream stream cancellable = liftIO $ do
    let stream' = unsafeManagedPtrCastPtr stream
    maybeCancellable <- case cancellable of
        Nothing -> return nullPtr
        Just jCancellable -> do
            let jCancellable' = unsafeManagedPtrCastPtr jCancellable
            return jCancellable'
    onException (do
        result <- propagateGError $ gdk_pixbuf_new_from_stream stream' maybeCancellable
        checkUnexpectedReturnNULL "gdk_pixbuf_new_from_stream" result
        result' <- (wrapObject Pixbuf) result
        touchManagedPtr stream
        whenJust cancellable touchManagedPtr
        return result'
     ) (do
        return ()
     )

-- method Pixbuf::new_from_stream_at_scale
-- method type : Constructor
-- Args : [Arg {argName = "stream", argType = TInterface "Gio" "InputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "preserve_aspect_ratio", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "stream", argType = TInterface "Gio" "InputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "preserve_aspect_ratio", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_from_stream_at_scale" gdk_pixbuf_new_from_stream_at_scale :: 
    Ptr Gio.InputStream ->                  -- stream : TInterface "Gio" "InputStream"
    Int32 ->                                -- width : TBasicType TInt32
    Int32 ->                                -- height : TBasicType TInt32
    CInt ->                                 -- preserve_aspect_ratio : TBasicType TBoolean
    Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr Pixbuf)


pixbufNewFromStreamAtScale ::
    (MonadIO m, Gio.InputStreamK a, Gio.CancellableK b) =>
    a ->                                    -- stream
    Int32 ->                                -- width
    Int32 ->                                -- height
    Bool ->                                 -- preserve_aspect_ratio
    Maybe (b) ->                            -- cancellable
    m Pixbuf
pixbufNewFromStreamAtScale stream width height preserve_aspect_ratio cancellable = liftIO $ do
    let stream' = unsafeManagedPtrCastPtr stream
    let preserve_aspect_ratio' = (fromIntegral . fromEnum) preserve_aspect_ratio
    maybeCancellable <- case cancellable of
        Nothing -> return nullPtr
        Just jCancellable -> do
            let jCancellable' = unsafeManagedPtrCastPtr jCancellable
            return jCancellable'
    onException (do
        result <- propagateGError $ gdk_pixbuf_new_from_stream_at_scale stream' width height preserve_aspect_ratio' maybeCancellable
        checkUnexpectedReturnNULL "gdk_pixbuf_new_from_stream_at_scale" result
        result' <- (wrapObject Pixbuf) result
        touchManagedPtr stream
        whenJust cancellable touchManagedPtr
        return result'
     ) (do
        return ()
     )

-- method Pixbuf::new_from_stream_finish
-- method type : Constructor
-- Args : [Arg {argName = "async_result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "async_result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_from_stream_finish" gdk_pixbuf_new_from_stream_finish :: 
    Ptr Gio.AsyncResult ->                  -- async_result : TInterface "Gio" "AsyncResult"
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr Pixbuf)


pixbufNewFromStreamFinish ::
    (MonadIO m, Gio.AsyncResultK a) =>
    a ->                                    -- async_result
    m Pixbuf
pixbufNewFromStreamFinish async_result = liftIO $ do
    let async_result' = unsafeManagedPtrCastPtr async_result
    onException (do
        result <- propagateGError $ gdk_pixbuf_new_from_stream_finish async_result'
        checkUnexpectedReturnNULL "gdk_pixbuf_new_from_stream_finish" result
        result' <- (wrapObject Pixbuf) result
        touchManagedPtr async_result
        return result'
     ) (do
        return ()
     )

-- method Pixbuf::new_from_xpm_data
-- method type : Constructor
-- Args : [Arg {argName = "data", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "data", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_from_xpm_data" gdk_pixbuf_new_from_xpm_data :: 
    Ptr CString ->                          -- data : TCArray True (-1) (-1) (TBasicType TUTF8)
    IO (Ptr Pixbuf)


pixbufNewFromXpmData ::
    (MonadIO m) =>
    [T.Text] ->                             -- data
    m Pixbuf
pixbufNewFromXpmData data_ = liftIO $ do
    data_' <- packZeroTerminatedUTF8CArray data_
    result <- gdk_pixbuf_new_from_xpm_data data_'
    checkUnexpectedReturnNULL "gdk_pixbuf_new_from_xpm_data" result
    result' <- (wrapObject Pixbuf) result
    mapZeroTerminatedCArray freeMem data_'
    freeMem data_'
    return result'

-- method Pixbuf::add_alpha
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "substitute_color", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "r", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "g", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "b", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "substitute_color", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "r", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "g", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "b", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_add_alpha" gdk_pixbuf_add_alpha :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    CInt ->                                 -- substitute_color : TBasicType TBoolean
    Word8 ->                                -- r : TBasicType TUInt8
    Word8 ->                                -- g : TBasicType TUInt8
    Word8 ->                                -- b : TBasicType TUInt8
    IO (Ptr Pixbuf)


pixbufAddAlpha ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- substitute_color
    Word8 ->                                -- r
    Word8 ->                                -- g
    Word8 ->                                -- b
    m Pixbuf
pixbufAddAlpha _obj substitute_color r g b = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let substitute_color' = (fromIntegral . fromEnum) substitute_color
    result <- gdk_pixbuf_add_alpha _obj' substitute_color' r g b
    checkUnexpectedReturnNULL "gdk_pixbuf_add_alpha" result
    result' <- (wrapObject Pixbuf) result
    touchManagedPtr _obj
    return result'

-- method Pixbuf::apply_embedded_orientation
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_apply_embedded_orientation" gdk_pixbuf_apply_embedded_orientation :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    IO (Ptr Pixbuf)


pixbufApplyEmbeddedOrientation ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    m Pixbuf
pixbufApplyEmbeddedOrientation _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_apply_embedded_orientation _obj'
    checkUnexpectedReturnNULL "gdk_pixbuf_apply_embedded_orientation" result
    result' <- (wrapObject Pixbuf) result
    touchManagedPtr _obj
    return result'

-- method Pixbuf::composite
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interp_type", argType = TInterface "GdkPixbuf" "InterpType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "overall_alpha", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interp_type", argType = TInterface "GdkPixbuf" "InterpType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "overall_alpha", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_composite" gdk_pixbuf_composite :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    Ptr Pixbuf ->                           -- dest : TInterface "GdkPixbuf" "Pixbuf"
    Int32 ->                                -- dest_x : TBasicType TInt32
    Int32 ->                                -- dest_y : TBasicType TInt32
    Int32 ->                                -- dest_width : TBasicType TInt32
    Int32 ->                                -- dest_height : TBasicType TInt32
    CDouble ->                              -- offset_x : TBasicType TDouble
    CDouble ->                              -- offset_y : TBasicType TDouble
    CDouble ->                              -- scale_x : TBasicType TDouble
    CDouble ->                              -- scale_y : TBasicType TDouble
    CUInt ->                                -- interp_type : TInterface "GdkPixbuf" "InterpType"
    Int32 ->                                -- overall_alpha : TBasicType TInt32
    IO ()


pixbufComposite ::
    (MonadIO m, PixbufK a, PixbufK b) =>
    a ->                                    -- _obj
    b ->                                    -- dest
    Int32 ->                                -- dest_x
    Int32 ->                                -- dest_y
    Int32 ->                                -- dest_width
    Int32 ->                                -- dest_height
    Double ->                               -- offset_x
    Double ->                               -- offset_y
    Double ->                               -- scale_x
    Double ->                               -- scale_y
    InterpType ->                           -- interp_type
    Int32 ->                                -- overall_alpha
    m ()
pixbufComposite _obj dest dest_x dest_y dest_width dest_height offset_x offset_y scale_x scale_y interp_type overall_alpha = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let dest' = unsafeManagedPtrCastPtr dest
    let offset_x' = realToFrac offset_x
    let offset_y' = realToFrac offset_y
    let scale_x' = realToFrac scale_x
    let scale_y' = realToFrac scale_y
    let interp_type' = (fromIntegral . fromEnum) interp_type
    gdk_pixbuf_composite _obj' dest' dest_x dest_y dest_width dest_height offset_x' offset_y' scale_x' scale_y' interp_type' overall_alpha
    touchManagedPtr _obj
    touchManagedPtr dest
    return ()

-- method Pixbuf::composite_color
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interp_type", argType = TInterface "GdkPixbuf" "InterpType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "overall_alpha", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "check_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "check_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "check_size", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color1", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color2", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interp_type", argType = TInterface "GdkPixbuf" "InterpType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "overall_alpha", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "check_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "check_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "check_size", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color1", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color2", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_composite_color" gdk_pixbuf_composite_color :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    Ptr Pixbuf ->                           -- dest : TInterface "GdkPixbuf" "Pixbuf"
    Int32 ->                                -- dest_x : TBasicType TInt32
    Int32 ->                                -- dest_y : TBasicType TInt32
    Int32 ->                                -- dest_width : TBasicType TInt32
    Int32 ->                                -- dest_height : TBasicType TInt32
    CDouble ->                              -- offset_x : TBasicType TDouble
    CDouble ->                              -- offset_y : TBasicType TDouble
    CDouble ->                              -- scale_x : TBasicType TDouble
    CDouble ->                              -- scale_y : TBasicType TDouble
    CUInt ->                                -- interp_type : TInterface "GdkPixbuf" "InterpType"
    Int32 ->                                -- overall_alpha : TBasicType TInt32
    Int32 ->                                -- check_x : TBasicType TInt32
    Int32 ->                                -- check_y : TBasicType TInt32
    Int32 ->                                -- check_size : TBasicType TInt32
    Word32 ->                               -- color1 : TBasicType TUInt32
    Word32 ->                               -- color2 : TBasicType TUInt32
    IO ()


pixbufCompositeColor ::
    (MonadIO m, PixbufK a, PixbufK b) =>
    a ->                                    -- _obj
    b ->                                    -- dest
    Int32 ->                                -- dest_x
    Int32 ->                                -- dest_y
    Int32 ->                                -- dest_width
    Int32 ->                                -- dest_height
    Double ->                               -- offset_x
    Double ->                               -- offset_y
    Double ->                               -- scale_x
    Double ->                               -- scale_y
    InterpType ->                           -- interp_type
    Int32 ->                                -- overall_alpha
    Int32 ->                                -- check_x
    Int32 ->                                -- check_y
    Int32 ->                                -- check_size
    Word32 ->                               -- color1
    Word32 ->                               -- color2
    m ()
pixbufCompositeColor _obj dest dest_x dest_y dest_width dest_height offset_x offset_y scale_x scale_y interp_type overall_alpha check_x check_y check_size color1 color2 = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let dest' = unsafeManagedPtrCastPtr dest
    let offset_x' = realToFrac offset_x
    let offset_y' = realToFrac offset_y
    let scale_x' = realToFrac scale_x
    let scale_y' = realToFrac scale_y
    let interp_type' = (fromIntegral . fromEnum) interp_type
    gdk_pixbuf_composite_color _obj' dest' dest_x dest_y dest_width dest_height offset_x' offset_y' scale_x' scale_y' interp_type' overall_alpha check_x check_y check_size color1 color2
    touchManagedPtr _obj
    touchManagedPtr dest
    return ()

-- method Pixbuf::composite_color_simple
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interp_type", argType = TInterface "GdkPixbuf" "InterpType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "overall_alpha", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "check_size", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color1", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color2", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interp_type", argType = TInterface "GdkPixbuf" "InterpType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "overall_alpha", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "check_size", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color1", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color2", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_composite_color_simple" gdk_pixbuf_composite_color_simple :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    Int32 ->                                -- dest_width : TBasicType TInt32
    Int32 ->                                -- dest_height : TBasicType TInt32
    CUInt ->                                -- interp_type : TInterface "GdkPixbuf" "InterpType"
    Int32 ->                                -- overall_alpha : TBasicType TInt32
    Int32 ->                                -- check_size : TBasicType TInt32
    Word32 ->                               -- color1 : TBasicType TUInt32
    Word32 ->                               -- color2 : TBasicType TUInt32
    IO (Ptr Pixbuf)


pixbufCompositeColorSimple ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- dest_width
    Int32 ->                                -- dest_height
    InterpType ->                           -- interp_type
    Int32 ->                                -- overall_alpha
    Int32 ->                                -- check_size
    Word32 ->                               -- color1
    Word32 ->                               -- color2
    m Pixbuf
pixbufCompositeColorSimple _obj dest_width dest_height interp_type overall_alpha check_size color1 color2 = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let interp_type' = (fromIntegral . fromEnum) interp_type
    result <- gdk_pixbuf_composite_color_simple _obj' dest_width dest_height interp_type' overall_alpha check_size color1 color2
    checkUnexpectedReturnNULL "gdk_pixbuf_composite_color_simple" result
    result' <- (wrapObject Pixbuf) result
    touchManagedPtr _obj
    return result'

-- method Pixbuf::copy
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_copy" gdk_pixbuf_copy :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    IO (Ptr Pixbuf)


pixbufCopy ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    m Pixbuf
pixbufCopy _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_copy _obj'
    checkUnexpectedReturnNULL "gdk_pixbuf_copy" result
    result' <- (wrapObject Pixbuf) result
    touchManagedPtr _obj
    return result'

-- method Pixbuf::copy_area
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_copy_area" gdk_pixbuf_copy_area :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    Int32 ->                                -- src_x : TBasicType TInt32
    Int32 ->                                -- src_y : TBasicType TInt32
    Int32 ->                                -- width : TBasicType TInt32
    Int32 ->                                -- height : TBasicType TInt32
    Ptr Pixbuf ->                           -- dest_pixbuf : TInterface "GdkPixbuf" "Pixbuf"
    Int32 ->                                -- dest_x : TBasicType TInt32
    Int32 ->                                -- dest_y : TBasicType TInt32
    IO ()


pixbufCopyArea ::
    (MonadIO m, PixbufK a, PixbufK b) =>
    a ->                                    -- _obj
    Int32 ->                                -- src_x
    Int32 ->                                -- src_y
    Int32 ->                                -- width
    Int32 ->                                -- height
    b ->                                    -- dest_pixbuf
    Int32 ->                                -- dest_x
    Int32 ->                                -- dest_y
    m ()
pixbufCopyArea _obj src_x src_y width height dest_pixbuf dest_x dest_y = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let dest_pixbuf' = unsafeManagedPtrCastPtr dest_pixbuf
    gdk_pixbuf_copy_area _obj' src_x src_y width height dest_pixbuf' dest_x dest_y
    touchManagedPtr _obj
    touchManagedPtr dest_pixbuf
    return ()

-- method Pixbuf::fill
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixel", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixel", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_fill" gdk_pixbuf_fill :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    Word32 ->                               -- pixel : TBasicType TUInt32
    IO ()


pixbufFill ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    Word32 ->                               -- pixel
    m ()
pixbufFill _obj pixel = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gdk_pixbuf_fill _obj' pixel
    touchManagedPtr _obj
    return ()

-- method Pixbuf::flip
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "horizontal", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "horizontal", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_flip" gdk_pixbuf_flip :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    CInt ->                                 -- horizontal : TBasicType TBoolean
    IO (Ptr Pixbuf)


pixbufFlip ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- horizontal
    m Pixbuf
pixbufFlip _obj horizontal = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let horizontal' = (fromIntegral . fromEnum) horizontal
    result <- gdk_pixbuf_flip _obj' horizontal'
    checkUnexpectedReturnNULL "gdk_pixbuf_flip" result
    result' <- (wrapObject Pixbuf) result
    touchManagedPtr _obj
    return result'

-- method Pixbuf::get_bits_per_sample
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_get_bits_per_sample" gdk_pixbuf_get_bits_per_sample :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    IO Int32


pixbufGetBitsPerSample ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    m Int32
pixbufGetBitsPerSample _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_get_bits_per_sample _obj'
    touchManagedPtr _obj
    return result

-- method Pixbuf::get_byte_length
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUInt64
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_get_byte_length" gdk_pixbuf_get_byte_length :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    IO Word64


pixbufGetByteLength ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    m Word64
pixbufGetByteLength _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_get_byte_length _obj'
    touchManagedPtr _obj
    return result

-- method Pixbuf::get_colorspace
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Colorspace"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_get_colorspace" gdk_pixbuf_get_colorspace :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    IO CUInt


pixbufGetColorspace ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    m Colorspace
pixbufGetColorspace _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_get_colorspace _obj'
    let result' = (toEnum . fromIntegral) result
    touchManagedPtr _obj
    return result'

-- method Pixbuf::get_has_alpha
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_get_has_alpha" gdk_pixbuf_get_has_alpha :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    IO CInt


pixbufGetHasAlpha ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    m Bool
pixbufGetHasAlpha _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_get_has_alpha _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method Pixbuf::get_height
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_get_height" gdk_pixbuf_get_height :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    IO Int32


pixbufGetHeight ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    m Int32
pixbufGetHeight _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_get_height _obj'
    touchManagedPtr _obj
    return result

-- method Pixbuf::get_n_channels
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_get_n_channels" gdk_pixbuf_get_n_channels :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    IO Int32


pixbufGetNChannels ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    m Int32
pixbufGetNChannels _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_get_n_channels _obj'
    touchManagedPtr _obj
    return result

-- method Pixbuf::get_option
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUTF8
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_get_option" gdk_pixbuf_get_option :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    CString ->                              -- key : TBasicType TUTF8
    IO CString


pixbufGetOption ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- key
    m T.Text
pixbufGetOption _obj key = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    key' <- textToCString key
    result <- gdk_pixbuf_get_option _obj' key'
    checkUnexpectedReturnNULL "gdk_pixbuf_get_option" result
    result' <- cstringToText result
    touchManagedPtr _obj
    freeMem key'
    return result'

-- XXX Could not generate method Pixbuf::get_options
-- Error was : Not implemented: "Hash table argument with transfer = Container? result"
-- method Pixbuf::get_pixels
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : [Arg {argName = "length", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TCArray False (-1) 1 (TBasicType TUInt8)
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_get_pixels_with_length" gdk_pixbuf_get_pixels_with_length :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    Ptr Word32 ->                           -- length : TBasicType TUInt32
    IO (Ptr Word8)


pixbufGetPixels ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    m ByteString
pixbufGetPixels _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    length_ <- allocMem :: IO (Ptr Word32)
    result <- gdk_pixbuf_get_pixels_with_length _obj' length_
    length_' <- peek length_
    checkUnexpectedReturnNULL "gdk_pixbuf_get_pixels_with_length" result
    result' <- (unpackByteStringWithLength length_') result
    touchManagedPtr _obj
    freeMem length_
    return result'

-- method Pixbuf::get_rowstride
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_get_rowstride" gdk_pixbuf_get_rowstride :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    IO Int32


pixbufGetRowstride ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    m Int32
pixbufGetRowstride _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_get_rowstride _obj'
    touchManagedPtr _obj
    return result

-- method Pixbuf::get_width
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TInt32
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_get_width" gdk_pixbuf_get_width :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    IO Int32


pixbufGetWidth ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    m Int32
pixbufGetWidth _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_get_width _obj'
    touchManagedPtr _obj
    return result

-- method Pixbuf::new_subpixbuf
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_subpixbuf" gdk_pixbuf_new_subpixbuf :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    Int32 ->                                -- src_x : TBasicType TInt32
    Int32 ->                                -- src_y : TBasicType TInt32
    Int32 ->                                -- width : TBasicType TInt32
    Int32 ->                                -- height : TBasicType TInt32
    IO (Ptr Pixbuf)


pixbufNewSubpixbuf ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- src_x
    Int32 ->                                -- src_y
    Int32 ->                                -- width
    Int32 ->                                -- height
    m Pixbuf
pixbufNewSubpixbuf _obj src_x src_y width height = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_new_subpixbuf _obj' src_x src_y width height
    checkUnexpectedReturnNULL "gdk_pixbuf_new_subpixbuf" result
    result' <- (wrapObject Pixbuf) result
    touchManagedPtr _obj
    return result'

-- method Pixbuf::read_pixel_bytes
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GLib" "Bytes"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_read_pixel_bytes" gdk_pixbuf_read_pixel_bytes :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    IO (Ptr GLib.Bytes)


pixbufReadPixelBytes ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    m GLib.Bytes
pixbufReadPixelBytes _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_read_pixel_bytes _obj'
    checkUnexpectedReturnNULL "gdk_pixbuf_read_pixel_bytes" result
    result' <- (wrapBoxed GLib.Bytes) result
    touchManagedPtr _obj
    return result'

-- method Pixbuf::read_pixels
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TUInt8
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_read_pixels" gdk_pixbuf_read_pixels :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    IO Word8


pixbufReadPixels ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    m Word8
pixbufReadPixels _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_read_pixels _obj'
    touchManagedPtr _obj
    return result

-- method Pixbuf::rotate_simple
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "angle", argType = TInterface "GdkPixbuf" "PixbufRotation", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "angle", argType = TInterface "GdkPixbuf" "PixbufRotation", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_rotate_simple" gdk_pixbuf_rotate_simple :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    CUInt ->                                -- angle : TInterface "GdkPixbuf" "PixbufRotation"
    IO (Ptr Pixbuf)


pixbufRotateSimple ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    PixbufRotation ->                       -- angle
    m Pixbuf
pixbufRotateSimple _obj angle = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let angle' = (fromIntegral . fromEnum) angle
    result <- gdk_pixbuf_rotate_simple _obj' angle'
    checkUnexpectedReturnNULL "gdk_pixbuf_rotate_simple" result
    result' <- (wrapObject Pixbuf) result
    touchManagedPtr _obj
    return result'

-- method Pixbuf::saturate_and_pixelate
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "saturation", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixelate", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "saturation", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixelate", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_saturate_and_pixelate" gdk_pixbuf_saturate_and_pixelate :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    Ptr Pixbuf ->                           -- dest : TInterface "GdkPixbuf" "Pixbuf"
    CFloat ->                               -- saturation : TBasicType TFloat
    CInt ->                                 -- pixelate : TBasicType TBoolean
    IO ()


pixbufSaturateAndPixelate ::
    (MonadIO m, PixbufK a, PixbufK b) =>
    a ->                                    -- _obj
    b ->                                    -- dest
    Float ->                                -- saturation
    Bool ->                                 -- pixelate
    m ()
pixbufSaturateAndPixelate _obj dest saturation pixelate = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let dest' = unsafeManagedPtrCastPtr dest
    let saturation' = realToFrac saturation
    let pixelate' = (fromIntegral . fromEnum) pixelate
    gdk_pixbuf_saturate_and_pixelate _obj' dest' saturation' pixelate'
    touchManagedPtr _obj
    touchManagedPtr dest
    return ()

-- method Pixbuf::save_to_bufferv
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "buffer_size", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "option_keys", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "option_values", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : [Arg {argName = "buffer_size", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "option_keys", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "option_values", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_save_to_bufferv" gdk_pixbuf_save_to_bufferv :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    Ptr (Ptr Word8) ->                      -- buffer : TCArray False (-1) 2 (TBasicType TUInt8)
    Ptr Word64 ->                           -- buffer_size : TBasicType TUInt64
    CString ->                              -- type : TBasicType TUTF8
    Ptr CString ->                          -- option_keys : TCArray True (-1) (-1) (TBasicType TUTF8)
    Ptr CString ->                          -- option_values : TCArray True (-1) (-1) (TBasicType TUTF8)
    Ptr (Ptr GError) ->                     -- error
    IO CInt


pixbufSaveToBufferv ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- type
    [T.Text] ->                             -- option_keys
    [T.Text] ->                             -- option_values
    m (ByteString)
pixbufSaveToBufferv _obj type_ option_keys option_values = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    buffer <- allocMem :: IO (Ptr (Ptr Word8))
    buffer_size <- allocMem :: IO (Ptr Word64)
    type_' <- textToCString type_
    option_keys' <- packZeroTerminatedUTF8CArray option_keys
    option_values' <- packZeroTerminatedUTF8CArray option_values
    onException (do
        _ <- propagateGError $ gdk_pixbuf_save_to_bufferv _obj' buffer buffer_size type_' option_keys' option_values'
        buffer_size' <- peek buffer_size
        buffer' <- peek buffer
        buffer'' <- (unpackByteStringWithLength buffer_size') buffer'
        freeMem buffer'
        touchManagedPtr _obj
        freeMem buffer
        freeMem buffer_size
        freeMem type_'
        mapZeroTerminatedCArray freeMem option_keys'
        freeMem option_keys'
        mapZeroTerminatedCArray freeMem option_values'
        freeMem option_values'
        return buffer''
     ) (do
        freeMem buffer
        freeMem buffer_size
        freeMem type_'
        mapZeroTerminatedCArray freeMem option_keys'
        freeMem option_keys'
        mapZeroTerminatedCArray freeMem option_values'
        freeMem option_values'
     )

-- method Pixbuf::save_to_callbackv
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "save_func", argType = TInterface "GdkPixbuf" "PixbufSaveFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "option_keys", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "option_values", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "save_func", argType = TInterface "GdkPixbuf" "PixbufSaveFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "option_keys", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "option_values", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_save_to_callbackv" gdk_pixbuf_save_to_callbackv :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    FunPtr PixbufSaveFuncC ->               -- save_func : TInterface "GdkPixbuf" "PixbufSaveFunc"
    Ptr () ->                               -- user_data : TBasicType TVoid
    CString ->                              -- type : TBasicType TUTF8
    Ptr CString ->                          -- option_keys : TCArray True (-1) (-1) (TBasicType TUTF8)
    Ptr CString ->                          -- option_values : TCArray True (-1) (-1) (TBasicType TUTF8)
    Ptr (Ptr GError) ->                     -- error
    IO CInt


pixbufSaveToCallbackv ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    PixbufSaveFunc ->                       -- save_func
    T.Text ->                               -- type
    [T.Text] ->                             -- option_keys
    [T.Text] ->                             -- option_values
    m ()
pixbufSaveToCallbackv _obj save_func type_ option_keys option_values = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    save_func' <- mkPixbufSaveFunc (pixbufSaveFuncWrapper Nothing save_func)
    type_' <- textToCString type_
    option_keys' <- packZeroTerminatedUTF8CArray option_keys
    option_values' <- packZeroTerminatedUTF8CArray option_values
    let user_data = nullPtr
    onException (do
        _ <- propagateGError $ gdk_pixbuf_save_to_callbackv _obj' save_func' user_data type_' option_keys' option_values'
        safeFreeFunPtr $ castFunPtrToPtr save_func'
        touchManagedPtr _obj
        freeMem type_'
        mapZeroTerminatedCArray freeMem option_keys'
        freeMem option_keys'
        mapZeroTerminatedCArray freeMem option_values'
        freeMem option_values'
        return ()
     ) (do
        safeFreeFunPtr $ castFunPtrToPtr save_func'
        freeMem type_'
        mapZeroTerminatedCArray freeMem option_keys'
        freeMem option_keys'
        mapZeroTerminatedCArray freeMem option_values'
        freeMem option_values'
     )

-- method Pixbuf::savev
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "option_keys", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "option_values", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "option_keys", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "option_values", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_savev" gdk_pixbuf_savev :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    CString ->                              -- filename : TBasicType TUTF8
    CString ->                              -- type : TBasicType TUTF8
    Ptr CString ->                          -- option_keys : TCArray True (-1) (-1) (TBasicType TUTF8)
    Ptr CString ->                          -- option_values : TCArray True (-1) (-1) (TBasicType TUTF8)
    Ptr (Ptr GError) ->                     -- error
    IO CInt


pixbufSavev ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    T.Text ->                               -- filename
    T.Text ->                               -- type
    [T.Text] ->                             -- option_keys
    [T.Text] ->                             -- option_values
    m ()
pixbufSavev _obj filename type_ option_keys option_values = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    filename' <- textToCString filename
    type_' <- textToCString type_
    option_keys' <- packZeroTerminatedUTF8CArray option_keys
    option_values' <- packZeroTerminatedUTF8CArray option_values
    onException (do
        _ <- propagateGError $ gdk_pixbuf_savev _obj' filename' type_' option_keys' option_values'
        touchManagedPtr _obj
        freeMem filename'
        freeMem type_'
        mapZeroTerminatedCArray freeMem option_keys'
        freeMem option_keys'
        mapZeroTerminatedCArray freeMem option_values'
        freeMem option_values'
        return ()
     ) (do
        freeMem filename'
        freeMem type_'
        mapZeroTerminatedCArray freeMem option_keys'
        freeMem option_keys'
        mapZeroTerminatedCArray freeMem option_values'
        freeMem option_values'
     )

-- method Pixbuf::scale
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interp_type", argType = TInterface "GdkPixbuf" "InterpType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interp_type", argType = TInterface "GdkPixbuf" "InterpType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_scale" gdk_pixbuf_scale :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    Ptr Pixbuf ->                           -- dest : TInterface "GdkPixbuf" "Pixbuf"
    Int32 ->                                -- dest_x : TBasicType TInt32
    Int32 ->                                -- dest_y : TBasicType TInt32
    Int32 ->                                -- dest_width : TBasicType TInt32
    Int32 ->                                -- dest_height : TBasicType TInt32
    CDouble ->                              -- offset_x : TBasicType TDouble
    CDouble ->                              -- offset_y : TBasicType TDouble
    CDouble ->                              -- scale_x : TBasicType TDouble
    CDouble ->                              -- scale_y : TBasicType TDouble
    CUInt ->                                -- interp_type : TInterface "GdkPixbuf" "InterpType"
    IO ()


pixbufScale ::
    (MonadIO m, PixbufK a, PixbufK b) =>
    a ->                                    -- _obj
    b ->                                    -- dest
    Int32 ->                                -- dest_x
    Int32 ->                                -- dest_y
    Int32 ->                                -- dest_width
    Int32 ->                                -- dest_height
    Double ->                               -- offset_x
    Double ->                               -- offset_y
    Double ->                               -- scale_x
    Double ->                               -- scale_y
    InterpType ->                           -- interp_type
    m ()
pixbufScale _obj dest dest_x dest_y dest_width dest_height offset_x offset_y scale_x scale_y interp_type = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let dest' = unsafeManagedPtrCastPtr dest
    let offset_x' = realToFrac offset_x
    let offset_y' = realToFrac offset_y
    let scale_x' = realToFrac scale_x
    let scale_y' = realToFrac scale_y
    let interp_type' = (fromIntegral . fromEnum) interp_type
    gdk_pixbuf_scale _obj' dest' dest_x dest_y dest_width dest_height offset_x' offset_y' scale_x' scale_y' interp_type'
    touchManagedPtr _obj
    touchManagedPtr dest
    return ()

-- method Pixbuf::scale_simple
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interp_type", argType = TInterface "GdkPixbuf" "InterpType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interp_type", argType = TInterface "GdkPixbuf" "InterpType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_scale_simple" gdk_pixbuf_scale_simple :: 
    Ptr Pixbuf ->                           -- _obj : TInterface "GdkPixbuf" "Pixbuf"
    Int32 ->                                -- dest_width : TBasicType TInt32
    Int32 ->                                -- dest_height : TBasicType TInt32
    CUInt ->                                -- interp_type : TInterface "GdkPixbuf" "InterpType"
    IO (Ptr Pixbuf)


pixbufScaleSimple ::
    (MonadIO m, PixbufK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- dest_width
    Int32 ->                                -- dest_height
    InterpType ->                           -- interp_type
    m Pixbuf
pixbufScaleSimple _obj dest_width dest_height interp_type = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let interp_type' = (fromIntegral . fromEnum) interp_type
    result <- gdk_pixbuf_scale_simple _obj' dest_width dest_height interp_type'
    checkUnexpectedReturnNULL "gdk_pixbuf_scale_simple" result
    result' <- (wrapObject Pixbuf) result
    touchManagedPtr _obj
    return result'

-- method Pixbuf::from_pixdata
-- method type : MemberFunction
-- Args : [Arg {argName = "pixdata", argType = TInterface "GdkPixbuf" "Pixdata", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "copy_pixels", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "pixdata", argType = TInterface "GdkPixbuf" "Pixdata", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "copy_pixels", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "Pixbuf"
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_from_pixdata" gdk_pixbuf_from_pixdata :: 
    Ptr Pixdata ->                          -- pixdata : TInterface "GdkPixbuf" "Pixdata"
    CInt ->                                 -- copy_pixels : TBasicType TBoolean
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr Pixbuf)

{-# DEPRECATED pixbufFromPixdata ["(Since version 2.32)","Use #GResource instead."]#-}
pixbufFromPixdata ::
    (MonadIO m) =>
    Pixdata ->                              -- pixdata
    Bool ->                                 -- copy_pixels
    m Pixbuf
pixbufFromPixdata pixdata copy_pixels = liftIO $ do
    let pixdata' = unsafeManagedPtrGetPtr pixdata
    let copy_pixels' = (fromIntegral . fromEnum) copy_pixels
    onException (do
        result <- propagateGError $ gdk_pixbuf_from_pixdata pixdata' copy_pixels'
        checkUnexpectedReturnNULL "gdk_pixbuf_from_pixdata" result
        result' <- (wrapObject Pixbuf) result
        touchManagedPtr pixdata
        return result'
     ) (do
        return ()
     )

-- method Pixbuf::get_file_info
-- method type : MemberFunction
-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "PixbufFormat"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_get_file_info" gdk_pixbuf_get_file_info :: 
    CString ->                              -- filename : TBasicType TUTF8
    Ptr Int32 ->                            -- width : TBasicType TInt32
    Ptr Int32 ->                            -- height : TBasicType TInt32
    IO (Ptr PixbufFormat)


pixbufGetFileInfo ::
    (MonadIO m) =>
    T.Text ->                               -- filename
    m (PixbufFormat,Int32,Int32)
pixbufGetFileInfo filename = liftIO $ do
    filename' <- textToCString filename
    width <- allocMem :: IO (Ptr Int32)
    height <- allocMem :: IO (Ptr Int32)
    result <- gdk_pixbuf_get_file_info filename' width height
    checkUnexpectedReturnNULL "gdk_pixbuf_get_file_info" result
    result' <- (newBoxed PixbufFormat) result
    width' <- peek width
    height' <- peek height
    freeMem filename'
    freeMem width
    freeMem height
    return (result', width', height')

-- method Pixbuf::get_file_info_async
-- method type : MemberFunction
-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 3, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 3, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_get_file_info_async" gdk_pixbuf_get_file_info_async :: 
    CString ->                              -- filename : TBasicType TUTF8
    Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
    FunPtr Gio.AsyncReadyCallbackC ->       -- callback : TInterface "Gio" "AsyncReadyCallback"
    Ptr () ->                               -- user_data : TBasicType TVoid
    IO ()


pixbufGetFileInfoAsync ::
    (MonadIO m, Gio.CancellableK a) =>
    T.Text ->                               -- filename
    Maybe (a) ->                            -- cancellable
    Maybe (Gio.AsyncReadyCallback) ->       -- callback
    m ()
pixbufGetFileInfoAsync filename cancellable callback = liftIO $ do
    filename' <- textToCString filename
    maybeCancellable <- case cancellable of
        Nothing -> return nullPtr
        Just jCancellable -> do
            let jCancellable' = unsafeManagedPtrCastPtr jCancellable
            return jCancellable'
    ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.AsyncReadyCallbackC))
    maybeCallback <- case callback of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jCallback -> do
            jCallback' <- Gio.mkAsyncReadyCallback (Gio.asyncReadyCallbackWrapper (Just ptrcallback) jCallback)
            poke ptrcallback jCallback'
            return jCallback'
    let user_data = nullPtr
    gdk_pixbuf_get_file_info_async filename' maybeCancellable maybeCallback user_data
    whenJust cancellable touchManagedPtr
    freeMem filename'
    return ()

-- method Pixbuf::get_file_info_finish
-- method type : MemberFunction
-- Args : [Arg {argName = "async_result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : []
-- hInArgs : [Arg {argName = "async_result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "PixbufFormat"
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_get_file_info_finish" gdk_pixbuf_get_file_info_finish :: 
    Ptr Gio.AsyncResult ->                  -- async_result : TInterface "Gio" "AsyncResult"
    Ptr Int32 ->                            -- width : TBasicType TInt32
    Ptr Int32 ->                            -- height : TBasicType TInt32
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr PixbufFormat)


pixbufGetFileInfoFinish ::
    (MonadIO m, Gio.AsyncResultK a) =>
    a ->                                    -- async_result
    m (PixbufFormat,Int32,Int32)
pixbufGetFileInfoFinish async_result = liftIO $ do
    let async_result' = unsafeManagedPtrCastPtr async_result
    width <- allocMem :: IO (Ptr Int32)
    height <- allocMem :: IO (Ptr Int32)
    onException (do
        result <- propagateGError $ gdk_pixbuf_get_file_info_finish async_result' width height
        checkUnexpectedReturnNULL "gdk_pixbuf_get_file_info_finish" result
        result' <- (newBoxed PixbufFormat) result
        width' <- peek width
        height' <- peek height
        touchManagedPtr async_result
        freeMem width
        freeMem height
        return (result', width', height')
     ) (do
        freeMem width
        freeMem height
     )

-- method Pixbuf::get_formats
-- method type : MemberFunction
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TGSList (TInterface "GdkPixbuf" "PixbufFormat")
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_get_formats" gdk_pixbuf_get_formats :: 
    IO (Ptr (GSList (Ptr PixbufFormat)))


pixbufGetFormats ::
    (MonadIO m) =>
    m [PixbufFormat]
pixbufGetFormats  = liftIO $ do
    result <- gdk_pixbuf_get_formats
    checkUnexpectedReturnNULL "gdk_pixbuf_get_formats" result
    result' <- unpackGSList result
    result'' <- mapM (newBoxed PixbufFormat) result'
    g_slist_free result
    return result''

-- method Pixbuf::new_from_stream_async
-- method type : MemberFunction
-- Args : [Arg {argName = "stream", argType = TInterface "Gio" "InputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 3, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "stream", argType = TInterface "Gio" "InputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 3, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_from_stream_async" gdk_pixbuf_new_from_stream_async :: 
    Ptr Gio.InputStream ->                  -- stream : TInterface "Gio" "InputStream"
    Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
    FunPtr Gio.AsyncReadyCallbackC ->       -- callback : TInterface "Gio" "AsyncReadyCallback"
    Ptr () ->                               -- user_data : TBasicType TVoid
    IO ()


pixbufNewFromStreamAsync ::
    (MonadIO m, Gio.InputStreamK a, Gio.CancellableK b) =>
    a ->                                    -- stream
    Maybe (b) ->                            -- cancellable
    Maybe (Gio.AsyncReadyCallback) ->       -- callback
    m ()
pixbufNewFromStreamAsync stream cancellable callback = liftIO $ do
    let stream' = unsafeManagedPtrCastPtr stream
    maybeCancellable <- case cancellable of
        Nothing -> return nullPtr
        Just jCancellable -> do
            let jCancellable' = unsafeManagedPtrCastPtr jCancellable
            return jCancellable'
    ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.AsyncReadyCallbackC))
    maybeCallback <- case callback of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jCallback -> do
            jCallback' <- Gio.mkAsyncReadyCallback (Gio.asyncReadyCallbackWrapper (Just ptrcallback) jCallback)
            poke ptrcallback jCallback'
            return jCallback'
    let user_data = nullPtr
    gdk_pixbuf_new_from_stream_async stream' maybeCancellable maybeCallback user_data
    touchManagedPtr stream
    whenJust cancellable touchManagedPtr
    return ()

-- method Pixbuf::new_from_stream_at_scale_async
-- method type : MemberFunction
-- Args : [Arg {argName = "stream", argType = TInterface "Gio" "InputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "preserve_aspect_ratio", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 6, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "stream", argType = TInterface "Gio" "InputStream", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "preserve_aspect_ratio", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cancellable", argType = TInterface "Gio" "Cancellable", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback", argType = TInterface "Gio" "AsyncReadyCallback", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 6, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_new_from_stream_at_scale_async" gdk_pixbuf_new_from_stream_at_scale_async :: 
    Ptr Gio.InputStream ->                  -- stream : TInterface "Gio" "InputStream"
    Int32 ->                                -- width : TBasicType TInt32
    Int32 ->                                -- height : TBasicType TInt32
    CInt ->                                 -- preserve_aspect_ratio : TBasicType TBoolean
    Ptr Gio.Cancellable ->                  -- cancellable : TInterface "Gio" "Cancellable"
    FunPtr Gio.AsyncReadyCallbackC ->       -- callback : TInterface "Gio" "AsyncReadyCallback"
    Ptr () ->                               -- user_data : TBasicType TVoid
    IO ()


pixbufNewFromStreamAtScaleAsync ::
    (MonadIO m, Gio.InputStreamK a, Gio.CancellableK b) =>
    a ->                                    -- stream
    Int32 ->                                -- width
    Int32 ->                                -- height
    Bool ->                                 -- preserve_aspect_ratio
    Maybe (b) ->                            -- cancellable
    Maybe (Gio.AsyncReadyCallback) ->       -- callback
    m ()
pixbufNewFromStreamAtScaleAsync stream width height preserve_aspect_ratio cancellable callback = liftIO $ do
    let stream' = unsafeManagedPtrCastPtr stream
    let preserve_aspect_ratio' = (fromIntegral . fromEnum) preserve_aspect_ratio
    maybeCancellable <- case cancellable of
        Nothing -> return nullPtr
        Just jCancellable -> do
            let jCancellable' = unsafeManagedPtrCastPtr jCancellable
            return jCancellable'
    ptrcallback <- callocMem :: IO (Ptr (FunPtr Gio.AsyncReadyCallbackC))
    maybeCallback <- case callback of
        Nothing -> return (castPtrToFunPtr nullPtr)
        Just jCallback -> do
            jCallback' <- Gio.mkAsyncReadyCallback (Gio.asyncReadyCallbackWrapper (Just ptrcallback) jCallback)
            poke ptrcallback jCallback'
            return jCallback'
    let user_data = nullPtr
    gdk_pixbuf_new_from_stream_at_scale_async stream' width height preserve_aspect_ratio' maybeCancellable maybeCallback user_data
    touchManagedPtr stream
    whenJust cancellable touchManagedPtr
    return ()

-- method Pixbuf::save_to_stream_finish
-- method type : MemberFunction
-- Args : [Arg {argName = "async_result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "async_result", argType = TInterface "Gio" "AsyncResult", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixbuf_save_to_stream_finish" gdk_pixbuf_save_to_stream_finish :: 
    Ptr Gio.AsyncResult ->                  -- async_result : TInterface "Gio" "AsyncResult"
    Ptr (Ptr GError) ->                     -- error
    IO CInt


pixbufSaveToStreamFinish ::
    (MonadIO m, Gio.AsyncResultK a) =>
    a ->                                    -- async_result
    m ()
pixbufSaveToStreamFinish async_result = liftIO $ do
    let async_result' = unsafeManagedPtrCastPtr async_result
    onException (do
        _ <- propagateGError $ gdk_pixbuf_save_to_stream_finish async_result'
        touchManagedPtr async_result
        return ()
     ) (do
        return ()
     )