packages feed

gi-gdkpixbuf-0.2.31.8: GI/GdkPixbuf.hs

-- Generated code.

{-# OPTIONS_GHC -fno-warn-unused-imports #-}

{-# LANGUAGE ForeignFunctionInterface, ConstraintKinds,
    TypeFamilies, MultiParamTypeClasses, KindSignatures,
    FlexibleInstances, UndecidableInstances, DataKinds,
    OverloadedStrings, NegativeLiterals, FlexibleContexts #-}

module GI.GdkPixbuf where

import Prelude ()
import Data.GI.Base.ShortPrelude
import Data.Char
import Data.Int
import Data.Word
import qualified Data.ByteString.Char8 as B
import Data.ByteString.Char8 (ByteString)
import qualified Data.Map as Map
import Foreign.C
import Foreign.Ptr
import Foreign.ForeignPtr
import Foreign.ForeignPtr.Unsafe (unsafeForeignPtrToPtr)
import Foreign.Storable (peek, poke, sizeOf)
import Control.Applicative ((<$>))
import Control.Exception (onException)
import Control.Monad.IO.Class
import qualified Data.Text as T

import Data.GI.Base.Attributes hiding (get, set)
import Data.GI.Base.BasicTypes
import Data.GI.Base.BasicConversions
import Data.GI.Base.Closure
import Data.GI.Base.GError
import Data.GI.Base.GHashTable
import Data.GI.Base.GParamSpec
import Data.GI.Base.GVariant
import Data.GI.Base.GValue
import Data.GI.Base.ManagedPtr
import Data.GI.Base.Overloading
import Data.GI.Base.Properties hiding (new)
import Data.GI.Base.Signals (SignalConnectMode(..), connectSignalFunPtr, SignalHandlerId)
import Data.GI.Base.Utils

import qualified GI.GLib as GLib
import qualified GI.GLibAttributes as GLibA
import qualified GI.GObject as GObject
import qualified GI.GObjectAttributes as GObjectA
import qualified GI.Gio as Gio
import qualified GI.GioAttributes as GioA

-- Enum Colorspace

data Colorspace = 
      ColorspaceRgb
    | AnotherColorspace Int
    deriving (Show, Eq)

instance Enum Colorspace where
    fromEnum ColorspaceRgb = 0
    fromEnum (AnotherColorspace k) = k

    toEnum 0 = ColorspaceRgb
    toEnum k = AnotherColorspace k

foreign import ccall "gdk_colorspace_get_type" c_gdk_colorspace_get_type :: 
    IO GType

instance BoxedEnum Colorspace where
    boxedEnumType _ = c_gdk_colorspace_get_type

-- Enum InterpType

data InterpType = 
      InterpTypeNearest
    | InterpTypeTiles
    | InterpTypeBilinear
    | InterpTypeHyper
    | AnotherInterpType Int
    deriving (Show, Eq)

instance Enum InterpType where
    fromEnum InterpTypeNearest = 0
    fromEnum InterpTypeTiles = 1
    fromEnum InterpTypeBilinear = 2
    fromEnum InterpTypeHyper = 3
    fromEnum (AnotherInterpType k) = k

    toEnum 0 = InterpTypeNearest
    toEnum 1 = InterpTypeTiles
    toEnum 2 = InterpTypeBilinear
    toEnum 3 = InterpTypeHyper
    toEnum k = AnotherInterpType k

foreign import ccall "gdk_interp_type_get_type" c_gdk_interp_type_get_type :: 
    IO GType

instance BoxedEnum InterpType where
    boxedEnumType _ = c_gdk_interp_type_get_type

-- object Pixbuf 
newtype Pixbuf = Pixbuf (ForeignPtr Pixbuf)
noPixbuf :: Maybe Pixbuf
noPixbuf = Nothing

foreign import ccall "gdk_pixbuf_get_type"
    c_gdk_pixbuf_get_type :: IO GType

type instance ParentTypes Pixbuf = '[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

-- 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
    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
    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 <- callocBytes $ sizeOf (undefined :: 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
    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'
        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'
        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
        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'
        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'
        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'
        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
        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
        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'
        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_'
    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
    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'
    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
    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'
    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'
    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'
    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_
    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
    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'
    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'
    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'
    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'
        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
    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 <- callocBytes $ sizeOf (undefined :: 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
        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
    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 <- callocBytes $ sizeOf (undefined :: 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 <- callocBytes $ sizeOf (undefined :: 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 ()
     )

-- Enum PixbufAlphaMode

data PixbufAlphaMode = 
      PixbufAlphaModeBilevel
    | PixbufAlphaModeFull
    | AnotherPixbufAlphaMode Int
    deriving (Show, Eq)

instance Enum PixbufAlphaMode where
    fromEnum PixbufAlphaModeBilevel = 0
    fromEnum PixbufAlphaModeFull = 1
    fromEnum (AnotherPixbufAlphaMode k) = k

    toEnum 0 = PixbufAlphaModeBilevel
    toEnum 1 = PixbufAlphaModeFull
    toEnum k = AnotherPixbufAlphaMode k

foreign import ccall "gdk_pixbuf_alpha_mode_get_type" c_gdk_pixbuf_alpha_mode_get_type :: 
    IO GType

instance BoxedEnum PixbufAlphaMode where
    boxedEnumType _ = c_gdk_pixbuf_alpha_mode_get_type

-- object PixbufAnimation 
newtype PixbufAnimation = PixbufAnimation (ForeignPtr PixbufAnimation)
noPixbufAnimation :: Maybe PixbufAnimation
noPixbufAnimation = Nothing

foreign import ccall "gdk_pixbuf_animation_get_type"
    c_gdk_pixbuf_animation_get_type :: IO GType

type instance ParentTypes PixbufAnimation = '[GObject.Object]

instance GObject PixbufAnimation where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gdk_pixbuf_animation_get_type
    

class GObject o => PixbufAnimationK o
instance (GObject o, IsDescendantOf PixbufAnimation o) => PixbufAnimationK o

toPixbufAnimation :: PixbufAnimationK o => o -> IO PixbufAnimation
toPixbufAnimation = unsafeCastTo PixbufAnimation

-- method PixbufAnimation::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" "PixbufAnimation"
-- throws : True
-- Skip return : False

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


pixbufAnimationNewFromFile ::
    (MonadIO m) =>
    T.Text ->                               -- filename
    m PixbufAnimation
pixbufAnimationNewFromFile filename = liftIO $ do
    filename' <- textToCString filename
    onException (do
        result <- propagateGError $ gdk_pixbuf_animation_new_from_file filename'
        result' <- (wrapObject PixbufAnimation) result
        freeMem filename'
        return result'
     ) (do
        freeMem filename'
     )

-- method PixbufAnimation::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" "PixbufAnimation"
-- throws : True
-- Skip return : False

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


pixbufAnimationNewFromResource ::
    (MonadIO m) =>
    T.Text ->                               -- resource_path
    m PixbufAnimation
pixbufAnimationNewFromResource resource_path = liftIO $ do
    resource_path' <- textToCString resource_path
    onException (do
        result <- propagateGError $ gdk_pixbuf_animation_new_from_resource resource_path'
        result' <- (wrapObject PixbufAnimation) result
        freeMem resource_path'
        return result'
     ) (do
        freeMem resource_path'
     )

-- method PixbufAnimation::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" "PixbufAnimation"
-- throws : True
-- Skip return : False

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


pixbufAnimationNewFromStream ::
    (MonadIO m, Gio.InputStreamK a, Gio.CancellableK b) =>
    a ->                                    -- stream
    Maybe (b) ->                            -- cancellable
    m PixbufAnimation
pixbufAnimationNewFromStream 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_animation_new_from_stream stream' maybeCancellable
        result' <- (wrapObject PixbufAnimation) result
        touchManagedPtr stream
        whenJust cancellable touchManagedPtr
        return result'
     ) (do
        return ()
     )

-- method PixbufAnimation::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" "PixbufAnimation"
-- throws : True
-- Skip return : False

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


pixbufAnimationNewFromStreamFinish ::
    (MonadIO m, Gio.AsyncResultK a) =>
    a ->                                    -- async_result
    m PixbufAnimation
pixbufAnimationNewFromStreamFinish async_result = liftIO $ do
    let async_result' = unsafeManagedPtrCastPtr async_result
    onException (do
        result <- propagateGError $ gdk_pixbuf_animation_new_from_stream_finish async_result'
        result' <- (wrapObject PixbufAnimation) result
        touchManagedPtr async_result
        return result'
     ) (do
        return ()
     )

-- method PixbufAnimation::get_height
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufAnimation", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufAnimation", 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_animation_get_height" gdk_pixbuf_animation_get_height :: 
    Ptr PixbufAnimation ->                  -- _obj : TInterface "GdkPixbuf" "PixbufAnimation"
    IO Int32


pixbufAnimationGetHeight ::
    (MonadIO m, PixbufAnimationK a) =>
    a ->                                    -- _obj
    m Int32
pixbufAnimationGetHeight _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_animation_get_height _obj'
    touchManagedPtr _obj
    return result

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

foreign import ccall "gdk_pixbuf_animation_get_iter" gdk_pixbuf_animation_get_iter :: 
    Ptr PixbufAnimation ->                  -- _obj : TInterface "GdkPixbuf" "PixbufAnimation"
    Ptr GLib.TimeVal ->                     -- start_time : TInterface "GLib" "TimeVal"
    IO (Ptr PixbufAnimationIter)


pixbufAnimationGetIter ::
    (MonadIO m, PixbufAnimationK a) =>
    a ->                                    -- _obj
    Maybe (GLib.TimeVal) ->                 -- start_time
    m PixbufAnimationIter
pixbufAnimationGetIter _obj start_time = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeStart_time <- case start_time of
        Nothing -> return nullPtr
        Just jStart_time -> do
            let jStart_time' = unsafeManagedPtrGetPtr jStart_time
            return jStart_time'
    result <- gdk_pixbuf_animation_get_iter _obj' maybeStart_time
    result' <- (wrapObject PixbufAnimationIter) result
    touchManagedPtr _obj
    whenJust start_time touchManagedPtr
    return result'

-- method PixbufAnimation::get_static_image
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufAnimation", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufAnimation", 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_animation_get_static_image" gdk_pixbuf_animation_get_static_image :: 
    Ptr PixbufAnimation ->                  -- _obj : TInterface "GdkPixbuf" "PixbufAnimation"
    IO (Ptr Pixbuf)


pixbufAnimationGetStaticImage ::
    (MonadIO m, PixbufAnimationK a) =>
    a ->                                    -- _obj
    m Pixbuf
pixbufAnimationGetStaticImage _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_animation_get_static_image _obj'
    result' <- (newObject Pixbuf) result
    touchManagedPtr _obj
    return result'

-- method PixbufAnimation::get_width
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufAnimation", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufAnimation", 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_animation_get_width" gdk_pixbuf_animation_get_width :: 
    Ptr PixbufAnimation ->                  -- _obj : TInterface "GdkPixbuf" "PixbufAnimation"
    IO Int32


pixbufAnimationGetWidth ::
    (MonadIO m, PixbufAnimationK a) =>
    a ->                                    -- _obj
    m Int32
pixbufAnimationGetWidth _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_animation_get_width _obj'
    touchManagedPtr _obj
    return result

-- method PixbufAnimation::is_static_image
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufAnimation", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufAnimation", 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_animation_is_static_image" gdk_pixbuf_animation_is_static_image :: 
    Ptr PixbufAnimation ->                  -- _obj : TInterface "GdkPixbuf" "PixbufAnimation"
    IO CInt


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

-- method PixbufAnimation::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_animation_new_from_stream_async" gdk_pixbuf_animation_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 ()


pixbufAnimationNewFromStreamAsync ::
    (MonadIO m, Gio.InputStreamK a, Gio.CancellableK b) =>
    a ->                                    -- stream
    Maybe (b) ->                            -- cancellable
    Maybe (Gio.AsyncReadyCallback) ->       -- callback
    m ()
pixbufAnimationNewFromStreamAsync 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 <- callocBytes $ sizeOf (undefined :: 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_animation_new_from_stream_async stream' maybeCancellable maybeCallback user_data
    touchManagedPtr stream
    whenJust cancellable touchManagedPtr
    return ()

-- object PixbufAnimationIter 
newtype PixbufAnimationIter = PixbufAnimationIter (ForeignPtr PixbufAnimationIter)
noPixbufAnimationIter :: Maybe PixbufAnimationIter
noPixbufAnimationIter = Nothing

foreign import ccall "gdk_pixbuf_animation_iter_get_type"
    c_gdk_pixbuf_animation_iter_get_type :: IO GType

type instance ParentTypes PixbufAnimationIter = '[GObject.Object]

instance GObject PixbufAnimationIter where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gdk_pixbuf_animation_iter_get_type
    

class GObject o => PixbufAnimationIterK o
instance (GObject o, IsDescendantOf PixbufAnimationIter o) => PixbufAnimationIterK o

toPixbufAnimationIter :: PixbufAnimationIterK o => o -> IO PixbufAnimationIter
toPixbufAnimationIter = unsafeCastTo PixbufAnimationIter

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

foreign import ccall "gdk_pixbuf_animation_iter_advance" gdk_pixbuf_animation_iter_advance :: 
    Ptr PixbufAnimationIter ->              -- _obj : TInterface "GdkPixbuf" "PixbufAnimationIter"
    Ptr GLib.TimeVal ->                     -- current_time : TInterface "GLib" "TimeVal"
    IO CInt


pixbufAnimationIterAdvance ::
    (MonadIO m, PixbufAnimationIterK a) =>
    a ->                                    -- _obj
    Maybe (GLib.TimeVal) ->                 -- current_time
    m Bool
pixbufAnimationIterAdvance _obj current_time = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    maybeCurrent_time <- case current_time of
        Nothing -> return nullPtr
        Just jCurrent_time -> do
            let jCurrent_time' = unsafeManagedPtrGetPtr jCurrent_time
            return jCurrent_time'
    result <- gdk_pixbuf_animation_iter_advance _obj' maybeCurrent_time
    let result' = (/= 0) result
    touchManagedPtr _obj
    whenJust current_time touchManagedPtr
    return result'

-- method PixbufAnimationIter::get_delay_time
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufAnimationIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufAnimationIter", 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_animation_iter_get_delay_time" gdk_pixbuf_animation_iter_get_delay_time :: 
    Ptr PixbufAnimationIter ->              -- _obj : TInterface "GdkPixbuf" "PixbufAnimationIter"
    IO Int32


pixbufAnimationIterGetDelayTime ::
    (MonadIO m, PixbufAnimationIterK a) =>
    a ->                                    -- _obj
    m Int32
pixbufAnimationIterGetDelayTime _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_animation_iter_get_delay_time _obj'
    touchManagedPtr _obj
    return result

-- method PixbufAnimationIter::get_pixbuf
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufAnimationIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufAnimationIter", 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_animation_iter_get_pixbuf" gdk_pixbuf_animation_iter_get_pixbuf :: 
    Ptr PixbufAnimationIter ->              -- _obj : TInterface "GdkPixbuf" "PixbufAnimationIter"
    IO (Ptr Pixbuf)


pixbufAnimationIterGetPixbuf ::
    (MonadIO m, PixbufAnimationIterK a) =>
    a ->                                    -- _obj
    m Pixbuf
pixbufAnimationIterGetPixbuf _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_animation_iter_get_pixbuf _obj'
    result' <- (newObject Pixbuf) result
    touchManagedPtr _obj
    return result'

-- method PixbufAnimationIter::on_currently_loading_frame
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufAnimationIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufAnimationIter", 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_animation_iter_on_currently_loading_frame" gdk_pixbuf_animation_iter_on_currently_loading_frame :: 
    Ptr PixbufAnimationIter ->              -- _obj : TInterface "GdkPixbuf" "PixbufAnimationIter"
    IO CInt


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

-- callback PixbufDestroyNotify
pixbufDestroyNotifyClosure :: PixbufDestroyNotify -> IO Closure
pixbufDestroyNotifyClosure cb = newCClosure =<< mkPixbufDestroyNotify wrapped
    where wrapped = pixbufDestroyNotifyWrapper Nothing cb

type PixbufDestroyNotifyC =
    Ptr Word8 ->
    Ptr () ->
    IO ()

foreign import ccall "wrapper"
    mkPixbufDestroyNotify :: PixbufDestroyNotifyC -> IO (FunPtr PixbufDestroyNotifyC)

type PixbufDestroyNotify =
    Ptr Word8 ->
    IO ()

noPixbufDestroyNotify :: Maybe PixbufDestroyNotify
noPixbufDestroyNotify = Nothing

pixbufDestroyNotifyWrapper ::
    Maybe (Ptr (FunPtr (PixbufDestroyNotifyC))) ->
    PixbufDestroyNotify ->
    Ptr Word8 ->
    Ptr () ->
    IO ()
pixbufDestroyNotifyWrapper funptrptr _cb pixels _ = do
    _cb  pixels
    maybeReleaseFunPtr funptrptr

-- Enum PixbufError

data PixbufError = 
      PixbufErrorCorruptImage
    | PixbufErrorInsufficientMemory
    | PixbufErrorBadOption
    | PixbufErrorUnknownType
    | PixbufErrorUnsupportedOperation
    | PixbufErrorFailed
    | AnotherPixbufError Int
    deriving (Show, Eq)

instance Enum PixbufError where
    fromEnum PixbufErrorCorruptImage = 0
    fromEnum PixbufErrorInsufficientMemory = 1
    fromEnum PixbufErrorBadOption = 2
    fromEnum PixbufErrorUnknownType = 3
    fromEnum PixbufErrorUnsupportedOperation = 4
    fromEnum PixbufErrorFailed = 5
    fromEnum (AnotherPixbufError k) = k

    toEnum 0 = PixbufErrorCorruptImage
    toEnum 1 = PixbufErrorInsufficientMemory
    toEnum 2 = PixbufErrorBadOption
    toEnum 3 = PixbufErrorUnknownType
    toEnum 4 = PixbufErrorUnsupportedOperation
    toEnum 5 = PixbufErrorFailed
    toEnum k = AnotherPixbufError k

instance GErrorClass PixbufError where
    gerrorClassDomain _ = "gdk-pixbuf-error-quark"

catchPixbufError ::
    IO a ->
    (PixbufError -> GErrorMessage -> IO a) ->
    IO a
catchPixbufError = catchGErrorJustDomain

handlePixbufError ::
    (PixbufError -> GErrorMessage -> IO a) ->
    IO a ->
    IO a
handlePixbufError = handleGErrorJustDomain

foreign import ccall "gdk_pixbuf_error_get_type" c_gdk_pixbuf_error_get_type :: 
    IO GType

instance BoxedEnum PixbufError where
    boxedEnumType _ = c_gdk_pixbuf_error_get_type

-- struct PixbufFormat
newtype PixbufFormat = PixbufFormat (ForeignPtr PixbufFormat)
noPixbufFormat :: Maybe PixbufFormat
noPixbufFormat = Nothing

foreign import ccall "gdk_pixbuf_format_get_type" c_gdk_pixbuf_format_get_type :: 
    IO GType

instance BoxedObject PixbufFormat where
    boxedType _ = c_gdk_pixbuf_format_get_type

-- method PixbufFormat::copy
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", 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_format_copy" gdk_pixbuf_format_copy :: 
    Ptr PixbufFormat ->                     -- _obj : TInterface "GdkPixbuf" "PixbufFormat"
    IO (Ptr PixbufFormat)


pixbufFormatCopy ::
    (MonadIO m) =>
    PixbufFormat ->                         -- _obj
    m PixbufFormat
pixbufFormatCopy _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gdk_pixbuf_format_copy _obj'
    result' <- (wrapBoxed PixbufFormat) result
    touchManagedPtr _obj
    return result'

-- method PixbufFormat::free
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", 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_format_free" gdk_pixbuf_format_free :: 
    Ptr PixbufFormat ->                     -- _obj : TInterface "GdkPixbuf" "PixbufFormat"
    IO ()


pixbufFormatFree ::
    (MonadIO m) =>
    PixbufFormat ->                         -- _obj
    m ()
pixbufFormatFree _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    gdk_pixbuf_format_free _obj'
    touchManagedPtr _obj
    return ()

-- method PixbufFormat::get_description
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", 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_format_get_description" gdk_pixbuf_format_get_description :: 
    Ptr PixbufFormat ->                     -- _obj : TInterface "GdkPixbuf" "PixbufFormat"
    IO CString


pixbufFormatGetDescription ::
    (MonadIO m) =>
    PixbufFormat ->                         -- _obj
    m T.Text
pixbufFormatGetDescription _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gdk_pixbuf_format_get_description _obj'
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gdk_pixbuf_format_get_extensions" gdk_pixbuf_format_get_extensions :: 
    Ptr PixbufFormat ->                     -- _obj : TInterface "GdkPixbuf" "PixbufFormat"
    IO (Ptr CString)


pixbufFormatGetExtensions ::
    (MonadIO m) =>
    PixbufFormat ->                         -- _obj
    m [T.Text]
pixbufFormatGetExtensions _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gdk_pixbuf_format_get_extensions _obj'
    result' <- unpackZeroTerminatedUTF8CArray result
    mapZeroTerminatedCArray freeMem result
    freeMem result
    touchManagedPtr _obj
    return result'

-- method PixbufFormat::get_license
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", 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_format_get_license" gdk_pixbuf_format_get_license :: 
    Ptr PixbufFormat ->                     -- _obj : TInterface "GdkPixbuf" "PixbufFormat"
    IO CString


pixbufFormatGetLicense ::
    (MonadIO m) =>
    PixbufFormat ->                         -- _obj
    m T.Text
pixbufFormatGetLicense _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gdk_pixbuf_format_get_license _obj'
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    return result'

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

foreign import ccall "gdk_pixbuf_format_get_mime_types" gdk_pixbuf_format_get_mime_types :: 
    Ptr PixbufFormat ->                     -- _obj : TInterface "GdkPixbuf" "PixbufFormat"
    IO (Ptr CString)


pixbufFormatGetMimeTypes ::
    (MonadIO m) =>
    PixbufFormat ->                         -- _obj
    m [T.Text]
pixbufFormatGetMimeTypes _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gdk_pixbuf_format_get_mime_types _obj'
    result' <- unpackZeroTerminatedUTF8CArray result
    mapZeroTerminatedCArray freeMem result
    freeMem result
    touchManagedPtr _obj
    return result'

-- method PixbufFormat::get_name
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", 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_format_get_name" gdk_pixbuf_format_get_name :: 
    Ptr PixbufFormat ->                     -- _obj : TInterface "GdkPixbuf" "PixbufFormat"
    IO CString


pixbufFormatGetName ::
    (MonadIO m) =>
    PixbufFormat ->                         -- _obj
    m T.Text
pixbufFormatGetName _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gdk_pixbuf_format_get_name _obj'
    result' <- cstringToText result
    freeMem result
    touchManagedPtr _obj
    return result'

-- method PixbufFormat::is_disabled
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", 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_format_is_disabled" gdk_pixbuf_format_is_disabled :: 
    Ptr PixbufFormat ->                     -- _obj : TInterface "GdkPixbuf" "PixbufFormat"
    IO CInt


pixbufFormatIsDisabled ::
    (MonadIO m) =>
    PixbufFormat ->                         -- _obj
    m Bool
pixbufFormatIsDisabled _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gdk_pixbuf_format_is_disabled _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method PixbufFormat::is_scalable
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", 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_format_is_scalable" gdk_pixbuf_format_is_scalable :: 
    Ptr PixbufFormat ->                     -- _obj : TInterface "GdkPixbuf" "PixbufFormat"
    IO CInt


pixbufFormatIsScalable ::
    (MonadIO m) =>
    PixbufFormat ->                         -- _obj
    m Bool
pixbufFormatIsScalable _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gdk_pixbuf_format_is_scalable _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method PixbufFormat::is_writable
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", 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_format_is_writable" gdk_pixbuf_format_is_writable :: 
    Ptr PixbufFormat ->                     -- _obj : TInterface "GdkPixbuf" "PixbufFormat"
    IO CInt


pixbufFormatIsWritable ::
    (MonadIO m) =>
    PixbufFormat ->                         -- _obj
    m Bool
pixbufFormatIsWritable _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    result <- gdk_pixbuf_format_is_writable _obj'
    let result' = (/= 0) result
    touchManagedPtr _obj
    return result'

-- method PixbufFormat::set_disabled
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "disabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufFormat", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "disabled", 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_format_set_disabled" gdk_pixbuf_format_set_disabled :: 
    Ptr PixbufFormat ->                     -- _obj : TInterface "GdkPixbuf" "PixbufFormat"
    CInt ->                                 -- disabled : TBasicType TBoolean
    IO ()


pixbufFormatSetDisabled ::
    (MonadIO m) =>
    PixbufFormat ->                         -- _obj
    Bool ->                                 -- disabled
    m ()
pixbufFormatSetDisabled _obj disabled = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    let disabled' = (fromIntegral . fromEnum) disabled
    gdk_pixbuf_format_set_disabled _obj' disabled'
    touchManagedPtr _obj
    return ()

-- object PixbufLoader 
newtype PixbufLoader = PixbufLoader (ForeignPtr PixbufLoader)
noPixbufLoader :: Maybe PixbufLoader
noPixbufLoader = Nothing

foreign import ccall "gdk_pixbuf_loader_get_type"
    c_gdk_pixbuf_loader_get_type :: IO GType

type instance ParentTypes PixbufLoader = '[GObject.Object]

instance GObject PixbufLoader where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gdk_pixbuf_loader_get_type
    

class GObject o => PixbufLoaderK o
instance (GObject o, IsDescendantOf PixbufLoader o) => PixbufLoaderK o

toPixbufLoader :: PixbufLoaderK o => o -> IO PixbufLoader
toPixbufLoader = unsafeCastTo PixbufLoader

-- method PixbufLoader::new
-- method type : Constructor
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TInterface "GdkPixbuf" "PixbufLoader"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_loader_new" gdk_pixbuf_loader_new :: 
    IO (Ptr PixbufLoader)


pixbufLoaderNew ::
    (MonadIO m) =>
    m PixbufLoader
pixbufLoaderNew  = liftIO $ do
    result <- gdk_pixbuf_loader_new
    result' <- (wrapObject PixbufLoader) result
    return result'

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

foreign import ccall "gdk_pixbuf_loader_new_with_mime_type" gdk_pixbuf_loader_new_with_mime_type :: 
    CString ->                              -- mime_type : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr PixbufLoader)


pixbufLoaderNewWithMimeType ::
    (MonadIO m) =>
    T.Text ->                               -- mime_type
    m PixbufLoader
pixbufLoaderNewWithMimeType mime_type = liftIO $ do
    mime_type' <- textToCString mime_type
    onException (do
        result <- propagateGError $ gdk_pixbuf_loader_new_with_mime_type mime_type'
        result' <- (wrapObject PixbufLoader) result
        freeMem mime_type'
        return result'
     ) (do
        freeMem mime_type'
     )

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

foreign import ccall "gdk_pixbuf_loader_new_with_type" gdk_pixbuf_loader_new_with_type :: 
    CString ->                              -- image_type : TBasicType TUTF8
    Ptr (Ptr GError) ->                     -- error
    IO (Ptr PixbufLoader)


pixbufLoaderNewWithType ::
    (MonadIO m) =>
    T.Text ->                               -- image_type
    m PixbufLoader
pixbufLoaderNewWithType image_type = liftIO $ do
    image_type' <- textToCString image_type
    onException (do
        result <- propagateGError $ gdk_pixbuf_loader_new_with_type image_type'
        result' <- (wrapObject PixbufLoader) result
        freeMem image_type'
        return result'
     ) (do
        freeMem image_type'
     )

-- method PixbufLoader::close
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufLoader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufLoader", 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_loader_close" gdk_pixbuf_loader_close :: 
    Ptr PixbufLoader ->                     -- _obj : TInterface "GdkPixbuf" "PixbufLoader"
    Ptr (Ptr GError) ->                     -- error
    IO CInt


pixbufLoaderClose ::
    (MonadIO m, PixbufLoaderK a) =>
    a ->                                    -- _obj
    m ()
pixbufLoaderClose _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    onException (do
        _ <- propagateGError $ gdk_pixbuf_loader_close _obj'
        touchManagedPtr _obj
        return ()
     ) (do
        return ()
     )

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

foreign import ccall "gdk_pixbuf_loader_get_animation" gdk_pixbuf_loader_get_animation :: 
    Ptr PixbufLoader ->                     -- _obj : TInterface "GdkPixbuf" "PixbufLoader"
    IO (Ptr PixbufAnimation)


pixbufLoaderGetAnimation ::
    (MonadIO m, PixbufLoaderK a) =>
    a ->                                    -- _obj
    m PixbufAnimation
pixbufLoaderGetAnimation _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_loader_get_animation _obj'
    result' <- (newObject PixbufAnimation) result
    touchManagedPtr _obj
    return result'

-- method PixbufLoader::get_format
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufLoader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufLoader", 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_loader_get_format" gdk_pixbuf_loader_get_format :: 
    Ptr PixbufLoader ->                     -- _obj : TInterface "GdkPixbuf" "PixbufLoader"
    IO (Ptr PixbufFormat)


pixbufLoaderGetFormat ::
    (MonadIO m, PixbufLoaderK a) =>
    a ->                                    -- _obj
    m PixbufFormat
pixbufLoaderGetFormat _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_loader_get_format _obj'
    result' <- (newBoxed PixbufFormat) result
    touchManagedPtr _obj
    return result'

-- method PixbufLoader::get_pixbuf
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufLoader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufLoader", 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_loader_get_pixbuf" gdk_pixbuf_loader_get_pixbuf :: 
    Ptr PixbufLoader ->                     -- _obj : TInterface "GdkPixbuf" "PixbufLoader"
    IO (Ptr Pixbuf)


pixbufLoaderGetPixbuf ::
    (MonadIO m, PixbufLoaderK a) =>
    a ->                                    -- _obj
    m Pixbuf
pixbufLoaderGetPixbuf _obj = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    result <- gdk_pixbuf_loader_get_pixbuf _obj'
    result' <- (newObject Pixbuf) result
    touchManagedPtr _obj
    return result'

-- method PixbufLoader::set_size
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufLoader", 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" "PixbufLoader", 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 : TBasicType TVoid
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_loader_set_size" gdk_pixbuf_loader_set_size :: 
    Ptr PixbufLoader ->                     -- _obj : TInterface "GdkPixbuf" "PixbufLoader"
    Int32 ->                                -- width : TBasicType TInt32
    Int32 ->                                -- height : TBasicType TInt32
    IO ()


pixbufLoaderSetSize ::
    (MonadIO m, PixbufLoaderK a) =>
    a ->                                    -- _obj
    Int32 ->                                -- width
    Int32 ->                                -- height
    m ()
pixbufLoaderSetSize _obj width height = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    gdk_pixbuf_loader_set_size _obj' width height
    touchManagedPtr _obj
    return ()

-- method PixbufLoader::write
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufLoader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buf", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : [Arg {argName = "count", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufLoader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buf", argType = TCArray False (-1) 2 (TBasicType TUInt8), 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_loader_write" gdk_pixbuf_loader_write :: 
    Ptr PixbufLoader ->                     -- _obj : TInterface "GdkPixbuf" "PixbufLoader"
    Ptr Word8 ->                            -- buf : TCArray False (-1) 2 (TBasicType TUInt8)
    Word64 ->                               -- count : TBasicType TUInt64
    Ptr (Ptr GError) ->                     -- error
    IO CInt


pixbufLoaderWrite ::
    (MonadIO m, PixbufLoaderK a) =>
    a ->                                    -- _obj
    ByteString ->                           -- buf
    m ()
pixbufLoaderWrite _obj buf = liftIO $ do
    let count = fromIntegral $ B.length buf
    let _obj' = unsafeManagedPtrCastPtr _obj
    buf' <- packByteString buf
    onException (do
        _ <- propagateGError $ gdk_pixbuf_loader_write _obj' buf' count
        touchManagedPtr _obj
        freeMem buf'
        return ()
     ) (do
        freeMem buf'
     )

-- method PixbufLoader::write_bytes
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufLoader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufLoader", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer", argType = TInterface "GLib" "Bytes", 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_loader_write_bytes" gdk_pixbuf_loader_write_bytes :: 
    Ptr PixbufLoader ->                     -- _obj : TInterface "GdkPixbuf" "PixbufLoader"
    Ptr GLib.Bytes ->                       -- buffer : TInterface "GLib" "Bytes"
    Ptr (Ptr GError) ->                     -- error
    IO CInt


pixbufLoaderWriteBytes ::
    (MonadIO m, PixbufLoaderK a) =>
    a ->                                    -- _obj
    GLib.Bytes ->                           -- buffer
    m ()
pixbufLoaderWriteBytes _obj buffer = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let buffer' = unsafeManagedPtrGetPtr buffer
    onException (do
        _ <- propagateGError $ gdk_pixbuf_loader_write_bytes _obj' buffer'
        touchManagedPtr _obj
        touchManagedPtr buffer
        return ()
     ) (do
        return ()
     )

-- signal PixbufLoader::area-prepared
type PixbufLoaderAreaPreparedCallback =
    IO ()

noPixbufLoaderAreaPreparedCallback :: Maybe PixbufLoaderAreaPreparedCallback
noPixbufLoaderAreaPreparedCallback = Nothing

type PixbufLoaderAreaPreparedCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkPixbufLoaderAreaPreparedCallback :: PixbufLoaderAreaPreparedCallbackC -> IO (FunPtr PixbufLoaderAreaPreparedCallbackC)

pixbufLoaderAreaPreparedClosure :: PixbufLoaderAreaPreparedCallback -> IO Closure
pixbufLoaderAreaPreparedClosure cb = newCClosure =<< mkPixbufLoaderAreaPreparedCallback wrapped
    where wrapped = pixbufLoaderAreaPreparedCallbackWrapper cb

pixbufLoaderAreaPreparedCallbackWrapper ::
    PixbufLoaderAreaPreparedCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
pixbufLoaderAreaPreparedCallbackWrapper _cb _ _ = do
    _cb 

onPixbufLoaderAreaPrepared :: (GObject a, MonadIO m) => a -> PixbufLoaderAreaPreparedCallback -> m SignalHandlerId
onPixbufLoaderAreaPrepared obj cb = liftIO $ connectPixbufLoaderAreaPrepared obj cb SignalConnectBefore
afterPixbufLoaderAreaPrepared :: (GObject a, MonadIO m) => a -> PixbufLoaderAreaPreparedCallback -> m SignalHandlerId
afterPixbufLoaderAreaPrepared obj cb = connectPixbufLoaderAreaPrepared obj cb SignalConnectAfter

connectPixbufLoaderAreaPrepared :: (GObject a, MonadIO m) =>
                                   a -> PixbufLoaderAreaPreparedCallback -> SignalConnectMode -> m SignalHandlerId
connectPixbufLoaderAreaPrepared obj cb after = liftIO $ do
    cb' <- mkPixbufLoaderAreaPreparedCallback (pixbufLoaderAreaPreparedCallbackWrapper cb)
    connectSignalFunPtr obj "area-prepared" cb' after

-- signal PixbufLoader::area-updated
type PixbufLoaderAreaUpdatedCallback =
    Int32 ->
    Int32 ->
    Int32 ->
    Int32 ->
    IO ()

noPixbufLoaderAreaUpdatedCallback :: Maybe PixbufLoaderAreaUpdatedCallback
noPixbufLoaderAreaUpdatedCallback = Nothing

type PixbufLoaderAreaUpdatedCallbackC =
    Ptr () ->                               -- object
    Int32 ->
    Int32 ->
    Int32 ->
    Int32 ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkPixbufLoaderAreaUpdatedCallback :: PixbufLoaderAreaUpdatedCallbackC -> IO (FunPtr PixbufLoaderAreaUpdatedCallbackC)

pixbufLoaderAreaUpdatedClosure :: PixbufLoaderAreaUpdatedCallback -> IO Closure
pixbufLoaderAreaUpdatedClosure cb = newCClosure =<< mkPixbufLoaderAreaUpdatedCallback wrapped
    where wrapped = pixbufLoaderAreaUpdatedCallbackWrapper cb

pixbufLoaderAreaUpdatedCallbackWrapper ::
    PixbufLoaderAreaUpdatedCallback ->
    Ptr () ->
    Int32 ->
    Int32 ->
    Int32 ->
    Int32 ->
    Ptr () ->
    IO ()
pixbufLoaderAreaUpdatedCallbackWrapper _cb _ x y width height _ = do
    _cb  x y width height

onPixbufLoaderAreaUpdated :: (GObject a, MonadIO m) => a -> PixbufLoaderAreaUpdatedCallback -> m SignalHandlerId
onPixbufLoaderAreaUpdated obj cb = liftIO $ connectPixbufLoaderAreaUpdated obj cb SignalConnectBefore
afterPixbufLoaderAreaUpdated :: (GObject a, MonadIO m) => a -> PixbufLoaderAreaUpdatedCallback -> m SignalHandlerId
afterPixbufLoaderAreaUpdated obj cb = connectPixbufLoaderAreaUpdated obj cb SignalConnectAfter

connectPixbufLoaderAreaUpdated :: (GObject a, MonadIO m) =>
                                  a -> PixbufLoaderAreaUpdatedCallback -> SignalConnectMode -> m SignalHandlerId
connectPixbufLoaderAreaUpdated obj cb after = liftIO $ do
    cb' <- mkPixbufLoaderAreaUpdatedCallback (pixbufLoaderAreaUpdatedCallbackWrapper cb)
    connectSignalFunPtr obj "area-updated" cb' after

-- signal PixbufLoader::closed
type PixbufLoaderClosedCallback =
    IO ()

noPixbufLoaderClosedCallback :: Maybe PixbufLoaderClosedCallback
noPixbufLoaderClosedCallback = Nothing

type PixbufLoaderClosedCallbackC =
    Ptr () ->                               -- object
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkPixbufLoaderClosedCallback :: PixbufLoaderClosedCallbackC -> IO (FunPtr PixbufLoaderClosedCallbackC)

pixbufLoaderClosedClosure :: PixbufLoaderClosedCallback -> IO Closure
pixbufLoaderClosedClosure cb = newCClosure =<< mkPixbufLoaderClosedCallback wrapped
    where wrapped = pixbufLoaderClosedCallbackWrapper cb

pixbufLoaderClosedCallbackWrapper ::
    PixbufLoaderClosedCallback ->
    Ptr () ->
    Ptr () ->
    IO ()
pixbufLoaderClosedCallbackWrapper _cb _ _ = do
    _cb 

onPixbufLoaderClosed :: (GObject a, MonadIO m) => a -> PixbufLoaderClosedCallback -> m SignalHandlerId
onPixbufLoaderClosed obj cb = liftIO $ connectPixbufLoaderClosed obj cb SignalConnectBefore
afterPixbufLoaderClosed :: (GObject a, MonadIO m) => a -> PixbufLoaderClosedCallback -> m SignalHandlerId
afterPixbufLoaderClosed obj cb = connectPixbufLoaderClosed obj cb SignalConnectAfter

connectPixbufLoaderClosed :: (GObject a, MonadIO m) =>
                             a -> PixbufLoaderClosedCallback -> SignalConnectMode -> m SignalHandlerId
connectPixbufLoaderClosed obj cb after = liftIO $ do
    cb' <- mkPixbufLoaderClosedCallback (pixbufLoaderClosedCallbackWrapper cb)
    connectSignalFunPtr obj "closed" cb' after

-- signal PixbufLoader::size-prepared
type PixbufLoaderSizePreparedCallback =
    Int32 ->
    Int32 ->
    IO ()

noPixbufLoaderSizePreparedCallback :: Maybe PixbufLoaderSizePreparedCallback
noPixbufLoaderSizePreparedCallback = Nothing

type PixbufLoaderSizePreparedCallbackC =
    Ptr () ->                               -- object
    Int32 ->
    Int32 ->
    Ptr () ->                               -- user_data
    IO ()

foreign import ccall "wrapper"
    mkPixbufLoaderSizePreparedCallback :: PixbufLoaderSizePreparedCallbackC -> IO (FunPtr PixbufLoaderSizePreparedCallbackC)

pixbufLoaderSizePreparedClosure :: PixbufLoaderSizePreparedCallback -> IO Closure
pixbufLoaderSizePreparedClosure cb = newCClosure =<< mkPixbufLoaderSizePreparedCallback wrapped
    where wrapped = pixbufLoaderSizePreparedCallbackWrapper cb

pixbufLoaderSizePreparedCallbackWrapper ::
    PixbufLoaderSizePreparedCallback ->
    Ptr () ->
    Int32 ->
    Int32 ->
    Ptr () ->
    IO ()
pixbufLoaderSizePreparedCallbackWrapper _cb _ width height _ = do
    _cb  width height

onPixbufLoaderSizePrepared :: (GObject a, MonadIO m) => a -> PixbufLoaderSizePreparedCallback -> m SignalHandlerId
onPixbufLoaderSizePrepared obj cb = liftIO $ connectPixbufLoaderSizePrepared obj cb SignalConnectBefore
afterPixbufLoaderSizePrepared :: (GObject a, MonadIO m) => a -> PixbufLoaderSizePreparedCallback -> m SignalHandlerId
afterPixbufLoaderSizePrepared obj cb = connectPixbufLoaderSizePrepared obj cb SignalConnectAfter

connectPixbufLoaderSizePrepared :: (GObject a, MonadIO m) =>
                                   a -> PixbufLoaderSizePreparedCallback -> SignalConnectMode -> m SignalHandlerId
connectPixbufLoaderSizePrepared obj cb after = liftIO $ do
    cb' <- mkPixbufLoaderSizePreparedCallback (pixbufLoaderSizePreparedCallbackWrapper cb)
    connectSignalFunPtr obj "size-prepared" cb' after

-- Enum PixbufRotation

data PixbufRotation = 
      PixbufRotationNone
    | PixbufRotationCounterclockwise
    | PixbufRotationUpsidedown
    | PixbufRotationClockwise
    | AnotherPixbufRotation Int
    deriving (Show, Eq)

instance Enum PixbufRotation where
    fromEnum PixbufRotationNone = 0
    fromEnum PixbufRotationCounterclockwise = 90
    fromEnum PixbufRotationUpsidedown = 180
    fromEnum PixbufRotationClockwise = 270
    fromEnum (AnotherPixbufRotation k) = k

    toEnum 0 = PixbufRotationNone
    toEnum 90 = PixbufRotationCounterclockwise
    toEnum 180 = PixbufRotationUpsidedown
    toEnum 270 = PixbufRotationClockwise
    toEnum k = AnotherPixbufRotation k

foreign import ccall "gdk_pixbuf_rotation_get_type" c_gdk_pixbuf_rotation_get_type :: 
    IO GType

instance BoxedEnum PixbufRotation where
    boxedEnumType _ = c_gdk_pixbuf_rotation_get_type

-- callback PixbufSaveFunc
pixbufSaveFuncClosure :: PixbufSaveFunc -> IO Closure
pixbufSaveFuncClosure cb = newCClosure =<< mkPixbufSaveFunc wrapped
    where wrapped = pixbufSaveFuncWrapper Nothing cb

type PixbufSaveFuncC =
    Ptr Word8 ->
    Word64 ->
    Ptr (Ptr GError) ->
    Ptr () ->
    IO CInt

foreign import ccall "wrapper"
    mkPixbufSaveFunc :: PixbufSaveFuncC -> IO (FunPtr PixbufSaveFuncC)

type PixbufSaveFunc =
    ByteString ->
    IO (Bool,GError)

noPixbufSaveFunc :: Maybe PixbufSaveFunc
noPixbufSaveFunc = Nothing

pixbufSaveFuncWrapper ::
    Maybe (Ptr (FunPtr (PixbufSaveFuncC))) ->
    PixbufSaveFunc ->
    Ptr Word8 ->
    Word64 ->
    Ptr (Ptr GError) ->
    Ptr () ->
    IO CInt
pixbufSaveFuncWrapper funptrptr _cb buf count error_ _ = do
    buf' <- (unpackByteStringWithLength count) buf
    (result, outerror_) <- _cb  buf'
    outerror_' <- copyBoxed outerror_
    poke error_ outerror_'
    maybeReleaseFunPtr funptrptr
    let result' = (fromIntegral . fromEnum) result
    return result'

-- object PixbufSimpleAnim 
newtype PixbufSimpleAnim = PixbufSimpleAnim (ForeignPtr PixbufSimpleAnim)
noPixbufSimpleAnim :: Maybe PixbufSimpleAnim
noPixbufSimpleAnim = Nothing

foreign import ccall "gdk_pixbuf_simple_anim_get_type"
    c_gdk_pixbuf_simple_anim_get_type :: IO GType

type instance ParentTypes PixbufSimpleAnim = '[PixbufAnimation, GObject.Object]

instance GObject PixbufSimpleAnim where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gdk_pixbuf_simple_anim_get_type
    

class GObject o => PixbufSimpleAnimK o
instance (GObject o, IsDescendantOf PixbufSimpleAnim o) => PixbufSimpleAnimK o

toPixbufSimpleAnim :: PixbufSimpleAnimK o => o -> IO PixbufSimpleAnim
toPixbufSimpleAnim = unsafeCastTo PixbufSimpleAnim

-- method PixbufSimpleAnim::new
-- method type : Constructor
-- Args : [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 = "rate", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [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 = "rate", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GdkPixbuf" "PixbufSimpleAnim"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_simple_anim_new" gdk_pixbuf_simple_anim_new :: 
    Int32 ->                                -- width : TBasicType TInt32
    Int32 ->                                -- height : TBasicType TInt32
    CFloat ->                               -- rate : TBasicType TFloat
    IO (Ptr PixbufSimpleAnim)


pixbufSimpleAnimNew ::
    (MonadIO m) =>
    Int32 ->                                -- width
    Int32 ->                                -- height
    Float ->                                -- rate
    m PixbufSimpleAnim
pixbufSimpleAnimNew width height rate = liftIO $ do
    let rate' = realToFrac rate
    result <- gdk_pixbuf_simple_anim_new width height rate'
    result' <- (wrapObject PixbufSimpleAnim) result
    return result'

-- method PixbufSimpleAnim::add_frame
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufSimpleAnim", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufSimpleAnim", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", 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_simple_anim_add_frame" gdk_pixbuf_simple_anim_add_frame :: 
    Ptr PixbufSimpleAnim ->                 -- _obj : TInterface "GdkPixbuf" "PixbufSimpleAnim"
    Ptr Pixbuf ->                           -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
    IO ()


pixbufSimpleAnimAddFrame ::
    (MonadIO m, PixbufSimpleAnimK a, PixbufK b) =>
    a ->                                    -- _obj
    b ->                                    -- pixbuf
    m ()
pixbufSimpleAnimAddFrame _obj pixbuf = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let pixbuf' = unsafeManagedPtrCastPtr pixbuf
    gdk_pixbuf_simple_anim_add_frame _obj' pixbuf'
    touchManagedPtr _obj
    touchManagedPtr pixbuf
    return ()

-- method PixbufSimpleAnim::get_loop
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufSimpleAnim", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufSimpleAnim", 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_simple_anim_get_loop" gdk_pixbuf_simple_anim_get_loop :: 
    Ptr PixbufSimpleAnim ->                 -- _obj : TInterface "GdkPixbuf" "PixbufSimpleAnim"
    IO CInt


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

-- method PixbufSimpleAnim::set_loop
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufSimpleAnim", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "loop", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "PixbufSimpleAnim", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "loop", 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_simple_anim_set_loop" gdk_pixbuf_simple_anim_set_loop :: 
    Ptr PixbufSimpleAnim ->                 -- _obj : TInterface "GdkPixbuf" "PixbufSimpleAnim"
    CInt ->                                 -- loop : TBasicType TBoolean
    IO ()


pixbufSimpleAnimSetLoop ::
    (MonadIO m, PixbufSimpleAnimK a) =>
    a ->                                    -- _obj
    Bool ->                                 -- loop
    m ()
pixbufSimpleAnimSetLoop _obj loop = liftIO $ do
    let _obj' = unsafeManagedPtrCastPtr _obj
    let loop' = (fromIntegral . fromEnum) loop
    gdk_pixbuf_simple_anim_set_loop _obj' loop'
    touchManagedPtr _obj
    return ()

-- object PixbufSimpleAnimIter 
newtype PixbufSimpleAnimIter = PixbufSimpleAnimIter (ForeignPtr PixbufSimpleAnimIter)
noPixbufSimpleAnimIter :: Maybe PixbufSimpleAnimIter
noPixbufSimpleAnimIter = Nothing

foreign import ccall "gdk_pixbuf_simple_anim_iter_get_type"
    c_gdk_pixbuf_simple_anim_iter_get_type :: IO GType

type instance ParentTypes PixbufSimpleAnimIter = '[PixbufAnimationIter, GObject.Object]

instance GObject PixbufSimpleAnimIter where
    gobjectIsInitiallyUnowned _ = False
    gobjectType _ = c_gdk_pixbuf_simple_anim_iter_get_type
    

class GObject o => PixbufSimpleAnimIterK o
instance (GObject o, IsDescendantOf PixbufSimpleAnimIter o) => PixbufSimpleAnimIterK o

toPixbufSimpleAnimIter :: PixbufSimpleAnimIterK o => o -> IO PixbufSimpleAnimIter
toPixbufSimpleAnimIter = unsafeCastTo PixbufSimpleAnimIter

-- struct Pixdata
newtype Pixdata = Pixdata (ForeignPtr Pixdata)
noPixdata :: Maybe Pixdata
noPixdata = Nothing

pixdataReadMagic :: Pixdata -> IO Word32
pixdataReadMagic s = withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 0) :: IO Word32
    return val

pixdataReadLength :: Pixdata -> IO Int32
pixdataReadLength s = withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 4) :: IO Int32
    return val

pixdataReadPixdataType :: Pixdata -> IO Word32
pixdataReadPixdataType s = withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 8) :: IO Word32
    return val

pixdataReadRowstride :: Pixdata -> IO Word32
pixdataReadRowstride s = withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 12) :: IO Word32
    return val

pixdataReadWidth :: Pixdata -> IO Word32
pixdataReadWidth s = withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 16) :: IO Word32
    return val

pixdataReadHeight :: Pixdata -> IO Word32
pixdataReadHeight s = withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 20) :: IO Word32
    return val

pixdataReadPixelData :: Pixdata -> IO (Ptr Word8)
pixdataReadPixelData s = withManagedPtr s $ \ptr -> do
    val <- peek (ptr `plusPtr` 24) :: IO (Ptr Word8)
    return val

-- method Pixdata::deserialize
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixdata", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "stream_length", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "stream", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : [Arg {argName = "stream_length", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixdata", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "stream", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TBasicType TBoolean
-- throws : True
-- Skip return : False

foreign import ccall "gdk_pixdata_deserialize" gdk_pixdata_deserialize :: 
    Ptr Pixdata ->                          -- _obj : TInterface "GdkPixbuf" "Pixdata"
    Word32 ->                               -- stream_length : TBasicType TUInt32
    Ptr Word8 ->                            -- stream : TCArray False (-1) 1 (TBasicType TUInt8)
    Ptr (Ptr GError) ->                     -- error
    IO CInt

{-# DEPRECATED pixdataDeserialize ["(Since version 2.32)","Use #GResource instead."]#-}
pixdataDeserialize ::
    (MonadIO m) =>
    Pixdata ->                              -- _obj
    ByteString ->                           -- stream
    m ()
pixdataDeserialize _obj stream = liftIO $ do
    let stream_length = fromIntegral $ B.length stream
    let _obj' = unsafeManagedPtrGetPtr _obj
    stream' <- packByteString stream
    onException (do
        _ <- propagateGError $ gdk_pixdata_deserialize _obj' stream_length stream'
        touchManagedPtr _obj
        freeMem stream'
        return ()
     ) (do
        freeMem stream'
     )

-- method Pixdata::serialize
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixdata", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "stream_length_p", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- Lengths : [Arg {argName = "stream_length_p", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixdata", 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_pixdata_serialize" gdk_pixdata_serialize :: 
    Ptr Pixdata ->                          -- _obj : TInterface "GdkPixbuf" "Pixdata"
    Ptr Word32 ->                           -- stream_length_p : TBasicType TUInt32
    IO (Ptr Word8)

{-# DEPRECATED pixdataSerialize ["(Since version 2.32)","Use #GResource instead."]#-}
pixdataSerialize ::
    (MonadIO m) =>
    Pixdata ->                              -- _obj
    m ByteString
pixdataSerialize _obj = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    stream_length_p <- allocMem :: IO (Ptr Word32)
    result <- gdk_pixdata_serialize _obj' stream_length_p
    stream_length_p' <- peek stream_length_p
    result' <- (unpackByteStringWithLength stream_length_p') result
    freeMem result
    touchManagedPtr _obj
    freeMem stream_length_p
    return result'

-- method Pixdata::to_csource
-- method type : OrdinaryMethod
-- Args : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixdata", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dump_type", argType = TInterface "GdkPixbuf" "PixdataDumpType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- Lengths : []
-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GdkPixbuf" "Pixdata", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dump_type", argType = TInterface "GdkPixbuf" "PixdataDumpType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
-- returnType : TInterface "GLib" "String"
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixdata_to_csource" gdk_pixdata_to_csource :: 
    Ptr Pixdata ->                          -- _obj : TInterface "GdkPixbuf" "Pixdata"
    CString ->                              -- name : TBasicType TUTF8
    CUInt ->                                -- dump_type : TInterface "GdkPixbuf" "PixdataDumpType"
    IO (Ptr GLib.String)

{-# DEPRECATED pixdataToCsource ["(Since version 2.32)","Use #GResource instead."]#-}
pixdataToCsource ::
    (MonadIO m) =>
    Pixdata ->                              -- _obj
    T.Text ->                               -- name
    [PixdataDumpType] ->                    -- dump_type
    m GLib.String
pixdataToCsource _obj name dump_type = liftIO $ do
    let _obj' = unsafeManagedPtrGetPtr _obj
    name' <- textToCString name
    let dump_type' = gflagsToWord dump_type
    result <- gdk_pixdata_to_csource _obj' name' dump_type'
    result' <- (wrapBoxed GLib.String) result
    touchManagedPtr _obj
    freeMem name'
    return result'

-- Flags PixdataDumpType

data PixdataDumpType = 
      PixdataDumpTypePixdataStream
    | PixdataDumpTypePixdataStruct
    | PixdataDumpTypeMacros
    | PixdataDumpTypeGtypes
    | PixdataDumpTypeCtypes
    | PixdataDumpTypeStatic
    | PixdataDumpTypeConst
    | PixdataDumpTypeRleDecoder
    | AnotherPixdataDumpType Int
    deriving (Show, Eq)

instance Enum PixdataDumpType where
    fromEnum PixdataDumpTypePixdataStream = 0
    fromEnum PixdataDumpTypePixdataStruct = 1
    fromEnum PixdataDumpTypeMacros = 2
    fromEnum PixdataDumpTypeGtypes = 0
    fromEnum PixdataDumpTypeCtypes = 256
    fromEnum PixdataDumpTypeStatic = 512
    fromEnum PixdataDumpTypeConst = 1024
    fromEnum PixdataDumpTypeRleDecoder = 65536
    fromEnum (AnotherPixdataDumpType k) = k

    toEnum 0 = PixdataDumpTypePixdataStream
    toEnum 1 = PixdataDumpTypePixdataStruct
    toEnum 2 = PixdataDumpTypeMacros
    toEnum 256 = PixdataDumpTypeCtypes
    toEnum 512 = PixdataDumpTypeStatic
    toEnum 1024 = PixdataDumpTypeConst
    toEnum 65536 = PixdataDumpTypeRleDecoder
    toEnum k = AnotherPixdataDumpType k

instance IsGFlag PixdataDumpType

-- Flags PixdataType

data PixdataType = 
      PixdataTypeColorTypeRgb
    | PixdataTypeColorTypeRgba
    | PixdataTypeColorTypeMask
    | PixdataTypeSampleWidth8
    | PixdataTypeSampleWidthMask
    | PixdataTypeEncodingRaw
    | PixdataTypeEncodingRle
    | PixdataTypeEncodingMask
    | AnotherPixdataType Int
    deriving (Show, Eq)

instance Enum PixdataType where
    fromEnum PixdataTypeColorTypeRgb = 1
    fromEnum PixdataTypeColorTypeRgba = 2
    fromEnum PixdataTypeColorTypeMask = 255
    fromEnum PixdataTypeSampleWidth8 = 65536
    fromEnum PixdataTypeSampleWidthMask = 983040
    fromEnum PixdataTypeEncodingRaw = 16777216
    fromEnum PixdataTypeEncodingRle = 33554432
    fromEnum PixdataTypeEncodingMask = 251658240
    fromEnum (AnotherPixdataType k) = k

    toEnum 1 = PixdataTypeColorTypeRgb
    toEnum 2 = PixdataTypeColorTypeRgba
    toEnum 255 = PixdataTypeColorTypeMask
    toEnum 65536 = PixdataTypeSampleWidth8
    toEnum 983040 = PixdataTypeSampleWidthMask
    toEnum 16777216 = PixdataTypeEncodingRaw
    toEnum 33554432 = PixdataTypeEncodingRle
    toEnum 251658240 = PixdataTypeEncodingMask
    toEnum k = AnotherPixdataType k

instance IsGFlag PixdataType

-- constant _PIXBUF_FEATURES_H

_PIXBUF_FEATURES_H :: Int32
_PIXBUF_FEATURES_H = 1
-- constant _PIXBUF_MAGIC_NUMBER

_PIXBUF_MAGIC_NUMBER :: Int32
_PIXBUF_MAGIC_NUMBER = 1197763408
-- constant _PIXBUF_MAJOR

_PIXBUF_MAJOR :: Int32
_PIXBUF_MAJOR = 2
-- constant _PIXBUF_MICRO

_PIXBUF_MICRO :: Int32
_PIXBUF_MICRO = 6
-- constant _PIXBUF_MINOR

_PIXBUF_MINOR :: Int32
_PIXBUF_MINOR = 31
-- constant _PIXBUF_VERSION

_PIXBUF_VERSION :: T.Text
_PIXBUF_VERSION = "2.31.6"
-- constant _PIXDATA_HEADER_LENGTH

_PIXDATA_HEADER_LENGTH :: Int32
_PIXDATA_HEADER_LENGTH = 24
-- function gdk_pixbuf_error_quark
-- Args : []
-- Lengths : []
-- hInArgs : []
-- returnType : TBasicType TUInt32
-- throws : False
-- Skip return : False

foreign import ccall "gdk_pixbuf_error_quark" gdk_pixbuf_error_quark :: 
    IO Word32


pixbufErrorQuark ::
    (MonadIO m) =>
    m Word32
pixbufErrorQuark  = liftIO $ do
    result <- gdk_pixbuf_error_quark
    return result