{-# LINE 1 "src/Bindings/GObject/GenericValues.hsc" #-}

{-# LINE 2 "src/Bindings/GObject/GenericValues.hsc" #-}

{-# LINE 3 "src/Bindings/GObject/GenericValues.hsc" #-}

-- | <http://library.gnome.org/devel/gobject/stable/gobject-Generic-values.html>

module Bindings.GObject.GenericValues where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 8 "src/Bindings/GObject/GenericValues.hsc" #-}
import Bindings.GLib
import Bindings.GObject.TypeInformation

foreign import ccall "inline_G_VALUE_HOLDS" c'G_VALUE_HOLDS
  :: Ptr a -> C'GType -> C'gboolean

{-# LINE 12 "src/Bindings/GObject/GenericValues.hsc" #-}
foreign import ccall "inline_G_VALUE_TYPE" c'G_VALUE_TYPE
  :: Ptr a -> C'GType

{-# LINE 13 "src/Bindings/GObject/GenericValues.hsc" #-}
foreign import ccall "inline_G_VALUE_TYPE_NAME" c'G_VALUE_TYPE_NAME
  :: Ptr a -> IO (Ptr C'gchar)

{-# LINE 14 "src/Bindings/GObject/GenericValues.hsc" #-}
foreign import ccall "inline_G_TYPE_IS_VALUE" c'G_TYPE_IS_VALUE
  :: C'GType -> C'gboolean

{-# LINE 15 "src/Bindings/GObject/GenericValues.hsc" #-}
foreign import ccall "inline_G_TYPE_IS_VALUE_ABSTRACT" c'G_TYPE_IS_VALUE_ABSTRACT
  :: C'GType -> C'gboolean

{-# LINE 16 "src/Bindings/GObject/GenericValues.hsc" #-}
foreign import ccall "inline_G_IS_VALUE" c'G_IS_VALUE
  :: Ptr a -> C'gboolean

{-# LINE 17 "src/Bindings/GObject/GenericValues.hsc" #-}

foreign import ccall "g_value_init" c'g_value_init
  :: Ptr C'GValue -> C'GType -> IO (Ptr C'GValue)
foreign import ccall "&g_value_init" p'g_value_init
  :: FunPtr (Ptr C'GValue -> C'GType -> IO (Ptr C'GValue))

{-# LINE 19 "src/Bindings/GObject/GenericValues.hsc" #-}
foreign import ccall "g_value_copy" c'g_value_copy
  :: Ptr C'GValue -> Ptr C'GValue -> IO ()
foreign import ccall "&g_value_copy" p'g_value_copy
  :: FunPtr (Ptr C'GValue -> Ptr C'GValue -> IO ())

{-# LINE 20 "src/Bindings/GObject/GenericValues.hsc" #-}
foreign import ccall "g_value_reset" c'g_value_reset
  :: Ptr C'GValue -> IO (Ptr C'GValue)
foreign import ccall "&g_value_reset" p'g_value_reset
  :: FunPtr (Ptr C'GValue -> IO (Ptr C'GValue))

{-# LINE 21 "src/Bindings/GObject/GenericValues.hsc" #-}
foreign import ccall "g_value_unset" c'g_value_unset
  :: Ptr C'GValue -> IO ()
foreign import ccall "&g_value_unset" p'g_value_unset
  :: FunPtr (Ptr C'GValue -> IO ())

{-# LINE 22 "src/Bindings/GObject/GenericValues.hsc" #-}
foreign import ccall "g_value_set_instance" c'g_value_set_instance
  :: Ptr C'GValue -> C'gpointer -> IO ()
foreign import ccall "&g_value_set_instance" p'g_value_set_instance
  :: FunPtr (Ptr C'GValue -> C'gpointer -> IO ())

{-# LINE 23 "src/Bindings/GObject/GenericValues.hsc" #-}
foreign import ccall "g_value_type_compatible" c'g_value_type_compatible
  :: C'GType -> C'GType -> IO C'gboolean
foreign import ccall "&g_value_type_compatible" p'g_value_type_compatible
  :: FunPtr (C'GType -> C'GType -> IO C'gboolean)

{-# LINE 24 "src/Bindings/GObject/GenericValues.hsc" #-}
foreign import ccall "g_value_type_transformable" c'g_value_type_transformable
  :: C'GType -> C'GType -> IO C'gboolean
foreign import ccall "&g_value_type_transformable" p'g_value_type_transformable
  :: FunPtr (C'GType -> C'GType -> IO C'gboolean)

{-# LINE 25 "src/Bindings/GObject/GenericValues.hsc" #-}
foreign import ccall "g_value_transform" c'g_value_transform
  :: Ptr C'GValue -> Ptr C'GValue -> IO C'gboolean
foreign import ccall "&g_value_transform" p'g_value_transform
  :: FunPtr (Ptr C'GValue -> Ptr C'GValue -> IO C'gboolean)

{-# LINE 26 "src/Bindings/GObject/GenericValues.hsc" #-}

type C'GValueTransform = FunPtr (Ptr C'GValue -> Ptr C'GValue -> IO ())
foreign import ccall "wrapper" mk'GValueTransform
  :: (Ptr C'GValue -> Ptr C'GValue -> IO ()) -> IO C'GValueTransform
foreign import ccall "dynamic" mK'GValueTransform
  :: C'GValueTransform -> (Ptr C'GValue -> Ptr C'GValue -> IO ())

{-# LINE 28 "src/Bindings/GObject/GenericValues.hsc" #-}

foreign import ccall "g_value_register_transform_func" c'g_value_register_transform_func
  :: C'GType -> C'GType -> C'GValueTransform -> IO ()
foreign import ccall "&g_value_register_transform_func" p'g_value_register_transform_func
  :: FunPtr (C'GType -> C'GType -> C'GValueTransform -> IO ())

{-# LINE 30 "src/Bindings/GObject/GenericValues.hsc" #-}
foreign import ccall "g_strdup_value_contents" c'g_strdup_value_contents
  :: Ptr C'GValue -> IO (Ptr C'gchar)
foreign import ccall "&g_strdup_value_contents" p'g_strdup_value_contents
  :: FunPtr (Ptr C'GValue -> IO (Ptr C'gchar))

{-# LINE 31 "src/Bindings/GObject/GenericValues.hsc" #-}