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

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

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

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

module Bindings.GObject.GParamSpec 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/GParamSpec.hsc" #-}
import Bindings.GLib
import Bindings.GObject.TypeInformation

data C'GParamSpec = C'GParamSpec

{-# LINE 12 "src/Bindings/GObject/GParamSpec.hsc" #-}
data C'GParamSpecClass = C'GParamSpecClass

{-# LINE 13 "src/Bindings/GObject/GParamSpec.hsc" #-}

foreign import ccall "inline_G_TYPE_IS_PARAM" c'G_TYPE_IS_PARAM
  :: C'GType -> C'gboolean

{-# LINE 15 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "inline_G_PARAM_SPEC" c'G_PARAM_SPEC
  :: Ptr a -> Ptr C'GParamSpec

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

{-# LINE 17 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "inline_G_PARAM_SPEC_CLASS" c'G_PARAM_SPEC_CLASS
  :: Ptr a -> Ptr C'GParamSpecClass

{-# LINE 18 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "inline_G_IS_PARAM_SPEC_CLASS" c'G_IS_PARAM_SPEC_CLASS
  :: Ptr a -> C'gboolean

{-# LINE 19 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "inline_G_PARAM_SPEC_GET_CLASS" c'G_PARAM_SPEC_GET_CLASS
  :: Ptr a -> Ptr C'GParamSpecClass

{-# LINE 20 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "inline_G_PARAM_SPEC_TYPE" c'G_PARAM_SPEC_TYPE
  :: Ptr a -> C'GType

{-# LINE 21 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "inline_G_PARAM_SPEC_TYPE_NAME" c'G_PARAM_SPEC_TYPE_NAME
  :: Ptr a -> IO (Ptr C'gchar)

{-# LINE 22 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "inline_G_PARAM_SPEC_VALUE_TYPE" c'G_PARAM_SPEC_VALUE_TYPE
  :: Ptr a -> C'GType

{-# LINE 23 "src/Bindings/GObject/GParamSpec.hsc" #-}

type C'GParamFlags = CUInt

{-# LINE 25 "src/Bindings/GObject/GParamSpec.hsc" #-}

c'G_PARAM_READABLE = 1
c'G_PARAM_READABLE :: (Num a) => a

{-# LINE 27 "src/Bindings/GObject/GParamSpec.hsc" #-}
c'G_PARAM_WRITABLE = 2
c'G_PARAM_WRITABLE :: (Num a) => a

{-# LINE 28 "src/Bindings/GObject/GParamSpec.hsc" #-}
c'G_PARAM_CONSTRUCT = 4
c'G_PARAM_CONSTRUCT :: (Num a) => a

{-# LINE 29 "src/Bindings/GObject/GParamSpec.hsc" #-}
c'G_PARAM_CONSTRUCT_ONLY = 8
c'G_PARAM_CONSTRUCT_ONLY :: (Num a) => a

{-# LINE 30 "src/Bindings/GObject/GParamSpec.hsc" #-}
c'G_PARAM_LAX_VALIDATION = 16
c'G_PARAM_LAX_VALIDATION :: (Num a) => a

{-# LINE 31 "src/Bindings/GObject/GParamSpec.hsc" #-}
c'G_PARAM_STATIC_NAME = 32
c'G_PARAM_STATIC_NAME :: (Num a) => a

{-# LINE 32 "src/Bindings/GObject/GParamSpec.hsc" #-}
c'G_PARAM_STATIC_NICK = 64
c'G_PARAM_STATIC_NICK :: (Num a) => a

{-# LINE 33 "src/Bindings/GObject/GParamSpec.hsc" #-}
c'G_PARAM_STATIC_BLURB = 128
c'G_PARAM_STATIC_BLURB :: (Num a) => a

{-# LINE 34 "src/Bindings/GObject/GParamSpec.hsc" #-}

c'G_PARAM_READWRITE = 3
c'G_PARAM_READWRITE :: (Num a) => a

{-# LINE 36 "src/Bindings/GObject/GParamSpec.hsc" #-}
c'G_PARAM_STATIC_STRINGS = 224
c'G_PARAM_STATIC_STRINGS :: (Num a) => a

{-# LINE 37 "src/Bindings/GObject/GParamSpec.hsc" #-}
c'G_PARAM_MASK = 255
c'G_PARAM_MASK :: (Num a) => a

{-# LINE 38 "src/Bindings/GObject/GParamSpec.hsc" #-}
c'G_PARAM_USER_SHIFT = 8
c'G_PARAM_USER_SHIFT :: (Num a) => a

{-# LINE 39 "src/Bindings/GObject/GParamSpec.hsc" #-}

foreign import ccall "g_param_spec_ref" c'g_param_spec_ref
  :: Ptr C'GParamSpec -> IO (Ptr C'GParamSpec)
foreign import ccall "&g_param_spec_ref" p'g_param_spec_ref
  :: FunPtr (Ptr C'GParamSpec -> IO (Ptr C'GParamSpec))

{-# LINE 41 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "g_param_spec_unref" c'g_param_spec_unref
  :: Ptr C'GParamSpec -> IO ()
foreign import ccall "&g_param_spec_unref" p'g_param_spec_unref
  :: FunPtr (Ptr C'GParamSpec -> IO ())

{-# LINE 42 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "g_param_spec_sink" c'g_param_spec_sink
  :: Ptr C'GParamSpec -> IO ()
foreign import ccall "&g_param_spec_sink" p'g_param_spec_sink
  :: FunPtr (Ptr C'GParamSpec -> IO ())

{-# LINE 43 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "g_param_spec_ref_sink" c'g_param_spec_ref_sink
  :: Ptr C'GParamSpec -> IO (Ptr C'GParamSpec)
foreign import ccall "&g_param_spec_ref_sink" p'g_param_spec_ref_sink
  :: FunPtr (Ptr C'GParamSpec -> IO (Ptr C'GParamSpec))

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

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

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

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

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

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

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

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

{-# LINE 52 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "g_param_spec_get_qdata" c'g_param_spec_get_qdata
  :: Ptr C'GParamSpec -> C'GQuark -> IO C'gpointer
foreign import ccall "&g_param_spec_get_qdata" p'g_param_spec_get_qdata
  :: FunPtr (Ptr C'GParamSpec -> C'GQuark -> IO C'gpointer)

{-# LINE 53 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "g_param_spec_set_qdata" c'g_param_spec_set_qdata
  :: Ptr C'GParamSpec -> C'GQuark -> C'gpointer -> IO ()
foreign import ccall "&g_param_spec_set_qdata" p'g_param_spec_set_qdata
  :: FunPtr (Ptr C'GParamSpec -> C'GQuark -> C'gpointer -> IO ())

{-# LINE 54 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "g_param_spec_set_qdata_full" c'g_param_spec_set_qdata_full
  :: Ptr C'GParamSpec -> C'GQuark -> C'gpointer -> C'GDestroyNotify -> IO ()
foreign import ccall "&g_param_spec_set_qdata_full" p'g_param_spec_set_qdata_full
  :: FunPtr (Ptr C'GParamSpec -> C'GQuark -> C'gpointer -> C'GDestroyNotify -> IO ())

{-# LINE 55 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "g_param_spec_steal_qdata" c'g_param_spec_steal_qdata
  :: Ptr C'GParamSpec -> C'GQuark -> IO C'gpointer
foreign import ccall "&g_param_spec_steal_qdata" p'g_param_spec_steal_qdata
  :: FunPtr (Ptr C'GParamSpec -> C'GQuark -> IO C'gpointer)

{-# LINE 56 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "g_param_spec_get_redirect_target" c'g_param_spec_get_redirect_target
  :: Ptr C'GParamSpec -> IO (Ptr C'GParamSpec)
foreign import ccall "&g_param_spec_get_redirect_target" p'g_param_spec_get_redirect_target
  :: FunPtr (Ptr C'GParamSpec -> IO (Ptr C'GParamSpec))

{-# LINE 57 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "g_param_spec_internal" c'g_param_spec_internal
  :: C'GType -> Ptr C'gchar -> Ptr C'gchar -> Ptr C'gchar -> C'GParamFlags -> IO C'gpointer
foreign import ccall "&g_param_spec_internal" p'g_param_spec_internal
  :: FunPtr (C'GType -> Ptr C'gchar -> Ptr C'gchar -> Ptr C'gchar -> C'GParamFlags -> IO C'gpointer)

{-# LINE 58 "src/Bindings/GObject/GParamSpec.hsc" #-}

data C'GParamSpecTypeInfo = C'GParamSpecTypeInfo{
{-# LINE 60 "src/Bindings/GObject/GParamSpec.hsc" #-}

  c'GParamSpecTypeInfo'instance_size :: C'guint16
{-# LINE 61 "src/Bindings/GObject/GParamSpec.hsc" #-}
,
  c'GParamSpecTypeInfo'n_preallocs :: C'guint16
{-# LINE 62 "src/Bindings/GObject/GParamSpec.hsc" #-}
,
  c'GParamSpecTypeInfo'instance_init :: FunPtr (Ptr C'GParamSpec -> IO ())
{-# LINE 63 "src/Bindings/GObject/GParamSpec.hsc" #-}
,
  c'GParamSpecTypeInfo'value_type :: C'GType
{-# LINE 64 "src/Bindings/GObject/GParamSpec.hsc" #-}
,
  c'GParamSpecTypeInfo'finalize :: FunPtr (Ptr C'GParamSpec -> IO ())
{-# LINE 65 "src/Bindings/GObject/GParamSpec.hsc" #-}
,
  c'GParamSpecTypeInfo'value_set_default :: FunPtr (Ptr C'GParamSpec -> Ptr C'GValue -> IO ())
{-# LINE 66 "src/Bindings/GObject/GParamSpec.hsc" #-}
,
  c'GParamSpecTypeInfo'value_validate :: FunPtr (Ptr C'GParamSpec -> Ptr C'GValue -> IO C'gboolean)
{-# LINE 67 "src/Bindings/GObject/GParamSpec.hsc" #-}
,
  c'GParamSpecTypeInfo'values_cmp :: FunPtr (Ptr C'GParamSpec -> Ptr C'GValue -> Ptr C'GValue -> IO C'gint)
{-# LINE 68 "src/Bindings/GObject/GParamSpec.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GParamSpecTypeInfo where
  sizeOf _ = 28
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 2
    v2 <- peekByteOff p 4
    v3 <- peekByteOff p 8
    v4 <- peekByteOff p 12
    v5 <- peekByteOff p 16
    v6 <- peekByteOff p 20
    v7 <- peekByteOff p 24
    return $ C'GParamSpecTypeInfo v0 v1 v2 v3 v4 v5 v6 v7
  poke p (C'GParamSpecTypeInfo v0 v1 v2 v3 v4 v5 v6 v7) = do
    pokeByteOff p 0 v0
    pokeByteOff p 2 v1
    pokeByteOff p 4 v2
    pokeByteOff p 8 v3
    pokeByteOff p 12 v4
    pokeByteOff p 16 v5
    pokeByteOff p 20 v6
    pokeByteOff p 24 v7
    return ()

{-# LINE 69 "src/Bindings/GObject/GParamSpec.hsc" #-}

foreign import ccall "g_param_type_register_static" c'g_param_type_register_static
  :: Ptr C'gchar -> Ptr C'GParamSpecTypeInfo -> IO C'GType
foreign import ccall "&g_param_type_register_static" p'g_param_type_register_static
  :: FunPtr (Ptr C'gchar -> Ptr C'GParamSpecTypeInfo -> IO C'GType)

{-# LINE 71 "src/Bindings/GObject/GParamSpec.hsc" #-}

data C'GParamSpecPool = C'GParamSpecPool

{-# LINE 73 "src/Bindings/GObject/GParamSpec.hsc" #-}

foreign import ccall "g_param_spec_pool_insert" c'g_param_spec_pool_insert
  :: Ptr C'GParamSpecPool -> Ptr C'GParamSpec -> C'GType -> IO ()
foreign import ccall "&g_param_spec_pool_insert" p'g_param_spec_pool_insert
  :: FunPtr (Ptr C'GParamSpecPool -> Ptr C'GParamSpec -> C'GType -> IO ())

{-# LINE 75 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "g_param_spec_pool_remove" c'g_param_spec_pool_remove
  :: Ptr C'GParamSpecPool -> Ptr C'GParamSpec -> IO ()
foreign import ccall "&g_param_spec_pool_remove" p'g_param_spec_pool_remove
  :: FunPtr (Ptr C'GParamSpecPool -> Ptr C'GParamSpec -> IO ())

{-# LINE 76 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "g_param_spec_pool_lookup" c'g_param_spec_pool_lookup
  :: Ptr C'GParamSpecPool -> Ptr C'gchar -> C'GType -> C'gboolean -> IO (Ptr C'GParamSpec)
foreign import ccall "&g_param_spec_pool_lookup" p'g_param_spec_pool_lookup
  :: FunPtr (Ptr C'GParamSpecPool -> Ptr C'gchar -> C'GType -> C'gboolean -> IO (Ptr C'GParamSpec))

{-# LINE 77 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "g_param_spec_pool_list" c'g_param_spec_pool_list
  :: Ptr C'GParamSpecPool -> C'GType -> Ptr C'guint -> IO (Ptr (Ptr C'GParamSpec))
foreign import ccall "&g_param_spec_pool_list" p'g_param_spec_pool_list
  :: FunPtr (Ptr C'GParamSpecPool -> C'GType -> Ptr C'guint -> IO (Ptr (Ptr C'GParamSpec)))

{-# LINE 78 "src/Bindings/GObject/GParamSpec.hsc" #-}
foreign import ccall "g_param_spec_pool_list_owned" c'g_param_spec_pool_list_owned
  :: Ptr C'GParamSpecPool -> C'GType -> IO (Ptr C'GList)
foreign import ccall "&g_param_spec_pool_list_owned" p'g_param_spec_pool_list_owned
  :: FunPtr (Ptr C'GParamSpecPool -> C'GType -> IO (Ptr C'GList))

{-# LINE 79 "src/Bindings/GObject/GParamSpec.hsc" #-}