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

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

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

-- | <http://library.gnome.org/devel/gobject/stable/gobject-The-Base-Object-Type.html>

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

data C'GObjectClass = C'GObjectClass
data C'GObject = C'GObject
foreign import ccall "inline_G_TYPE_OBJECT" c'G_TYPE_OBJECT
  :: C'GType
foreign import ccall "inline_G_OBJECT" c'G_OBJECT
  :: Ptr a -> Ptr C'GObject
foreign import ccall "inline_G_IS_OBJECT" c'G_IS_OBJECT
  :: Ptr a -> C'gboolean
foreign import ccall "inline_G_OBJECT_CLASS" c'G_OBJECT_CLASS
  :: Ptr a -> Ptr C'GObjectClass
foreign import ccall "inline_G_IS_OBJECT_CLASS" c'G_IS_OBJECT_CLASS
  :: Ptr a -> C'gboolean
foreign import ccall "inline_G_OBJECT_GET_CLASS" c'G_OBJECT_GET_CLASS
  :: Ptr a -> Ptr C'GObjectClass

{-# LINE 14 "src/Bindings/GObject/BaseObjectType.hsc" #-}

data C'GObjectConstructParam = C'GObjectConstructParam{
{-# LINE 16 "src/Bindings/GObject/BaseObjectType.hsc" #-}

  c'GObjectConstructParam'pspec :: Ptr C'GParamSpec
{-# LINE 17 "src/Bindings/GObject/BaseObjectType.hsc" #-}
,
  c'GObjectConstructParam'value :: Ptr C'GValue
{-# LINE 18 "src/Bindings/GObject/BaseObjectType.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GObjectConstructParam where
  sizeOf _ = 8
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    return $ C'GObjectConstructParam v0 v1
  poke p (C'GObjectConstructParam v0 v1) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    return ()

{-# LINE 19 "src/Bindings/GObject/BaseObjectType.hsc" #-}

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

{-# LINE 21 "src/Bindings/GObject/BaseObjectType.hsc" #-}
type C'GObjectSetPropertyFunc = FunPtr (Ptr C'GObject -> C'guint -> Ptr C'GValue -> Ptr C'GParamSpec -> IO ())
foreign import ccall "wrapper" mk'GObjectSetPropertyFunc
  :: (Ptr C'GObject -> C'guint -> Ptr C'GValue -> Ptr C'GParamSpec -> IO ()) -> IO C'GObjectSetPropertyFunc
foreign import ccall "dynamic" mK'GObjectSetPropertyFunc
  :: C'GObjectSetPropertyFunc -> (Ptr C'GObject -> C'guint -> Ptr C'GValue -> Ptr C'GParamSpec -> IO ())

{-# LINE 22 "src/Bindings/GObject/BaseObjectType.hsc" #-}
type C'GObjectFinalizeFunc = FunPtr (Ptr C'GObject -> IO ())
foreign import ccall "wrapper" mk'GObjectFinalizeFunc
  :: (Ptr C'GObject -> IO ()) -> IO C'GObjectFinalizeFunc
foreign import ccall "dynamic" mK'GObjectFinalizeFunc
  :: C'GObjectFinalizeFunc -> (Ptr C'GObject -> IO ())

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

foreign import ccall "inline_G_TYPE_IS_OBJECT" c'G_TYPE_IS_OBJECT
  :: C'GType -> C'gboolean

{-# LINE 25 "src/Bindings/GObject/BaseObjectType.hsc" #-}
foreign import ccall "inline_G_OBJECT_TYPE" c'G_OBJECT_TYPE
  :: Ptr a -> C'GType

{-# LINE 26 "src/Bindings/GObject/BaseObjectType.hsc" #-}
foreign import ccall "inline_G_OBJECT_TYPE_NAME" c'G_OBJECT_TYPE_NAME
  :: Ptr a -> IO (Ptr C'gchar)

{-# LINE 27 "src/Bindings/GObject/BaseObjectType.hsc" #-}
foreign import ccall "inline_G_OBJECT_CLASS_TYPE" c'G_OBJECT_CLASS_TYPE
  :: Ptr a -> IO C'GType

{-# LINE 28 "src/Bindings/GObject/BaseObjectType.hsc" #-}
foreign import ccall "inline_G_OBJECT_CLASS_NAME" c'G_OBJECT_CLASS_NAME
  :: Ptr a -> IO (Ptr C'gchar)

{-# LINE 29 "src/Bindings/GObject/BaseObjectType.hsc" #-}

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

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

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

{-# LINE 33 "src/Bindings/GObject/BaseObjectType.hsc" #-}
foreign import ccall "g_object_class_override_property" c'g_object_class_override_property
  :: Ptr C'GObjectClass -> C'guint -> Ptr C'gchar -> IO ()
foreign import ccall "&g_object_class_override_property" p'g_object_class_override_property
  :: FunPtr (Ptr C'GObjectClass -> C'guint -> Ptr C'gchar -> IO ())

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

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

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

{-# LINE 37 "src/Bindings/GObject/BaseObjectType.hsc" #-}
foreign import ccall "g_object_newv" c'g_object_newv
  :: C'GType -> C'guint -> Ptr C'GParameter -> IO C'gpointer
foreign import ccall "&g_object_newv" p'g_object_newv
  :: FunPtr (C'GType -> C'guint -> Ptr C'GParameter -> IO C'gpointer)

{-# LINE 38 "src/Bindings/GObject/BaseObjectType.hsc" #-}

data C'GParameter = C'GParameter{
{-# LINE 40 "src/Bindings/GObject/BaseObjectType.hsc" #-}

  c'GParameter'name :: Ptr C'gchar
{-# LINE 41 "src/Bindings/GObject/BaseObjectType.hsc" #-}
,
  c'GParameter'value :: C'GValue
{-# LINE 42 "src/Bindings/GObject/BaseObjectType.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GParameter where
  sizeOf _ = 24
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    return $ C'GParameter v0 v1
  poke p (C'GParameter v0 v1) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    return ()

{-# LINE 43 "src/Bindings/GObject/BaseObjectType.hsc" #-}

foreign import ccall "g_object_ref" c'g_object_ref
  :: C'gpointer -> IO C'gpointer
foreign import ccall "&g_object_ref" p'g_object_ref
  :: FunPtr (C'gpointer -> IO C'gpointer)

{-# LINE 45 "src/Bindings/GObject/BaseObjectType.hsc" #-}
foreign import ccall "g_object_unref" c'g_object_unref
  :: C'gpointer -> IO ()
foreign import ccall "&g_object_unref" p'g_object_unref
  :: FunPtr (C'gpointer -> IO ())

{-# LINE 46 "src/Bindings/GObject/BaseObjectType.hsc" #-}
foreign import ccall "g_object_ref_sink" c'g_object_ref_sink
  :: C'gpointer -> IO C'gpointer
foreign import ccall "&g_object_ref_sink" p'g_object_ref_sink
  :: FunPtr (C'gpointer -> IO C'gpointer)

{-# LINE 47 "src/Bindings/GObject/BaseObjectType.hsc" #-}

data C'GInitiallyUnowned = C'GInitiallyUnowned{
{-# LINE 49 "src/Bindings/GObject/BaseObjectType.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GInitiallyUnowned where
  sizeOf _ = 12
  alignment = sizeOf
  peek p = do
    return $ C'GInitiallyUnowned
  poke p (C'GInitiallyUnowned) = do
    return ()

{-# LINE 50 "src/Bindings/GObject/BaseObjectType.hsc" #-}

data C'GInitiallyUnownedClass = C'GInitiallyUnownedClass{
{-# LINE 52 "src/Bindings/GObject/BaseObjectType.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GInitiallyUnownedClass where
  sizeOf _ = 68
  alignment = sizeOf
  peek p = do
    return $ C'GInitiallyUnownedClass
  poke p (C'GInitiallyUnownedClass) = do
    return ()

{-# LINE 53 "src/Bindings/GObject/BaseObjectType.hsc" #-}

foreign import ccall "inline_G_TYPE_INITIALLY_UNOWNED" c'G_TYPE_INITIALLY_UNOWNED
  :: IO C'GType

{-# LINE 55 "src/Bindings/GObject/BaseObjectType.hsc" #-}

foreign import ccall "g_object_is_floating" c'g_object_is_floating
  :: C'gpointer -> IO C'gboolean
foreign import ccall "&g_object_is_floating" p'g_object_is_floating
  :: FunPtr (C'gpointer -> IO C'gboolean)

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

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

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

{-# LINE 60 "src/Bindings/GObject/BaseObjectType.hsc" #-}

foreign import ccall "g_object_weak_ref" c'g_object_weak_ref
  :: Ptr C'GObject -> C'GWeakNotify -> C'gpointer -> IO ()
foreign import ccall "&g_object_weak_ref" p'g_object_weak_ref
  :: FunPtr (Ptr C'GObject -> C'GWeakNotify -> C'gpointer -> IO ())

{-# LINE 62 "src/Bindings/GObject/BaseObjectType.hsc" #-}
foreign import ccall "g_object_weak_unref" c'g_object_weak_unref
  :: Ptr C'GObject -> C'GWeakNotify -> C'gpointer -> IO ()
foreign import ccall "&g_object_weak_unref" p'g_object_weak_unref
  :: FunPtr (Ptr C'GObject -> C'GWeakNotify -> C'gpointer -> IO ())

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

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

{-# LINE 65 "src/Bindings/GObject/BaseObjectType.hsc" #-}

type C'GToggleNotify = FunPtr (C'gpointer -> Ptr C'GObject -> C'gboolean -> IO ())
foreign import ccall "wrapper" mk'GToggleNotify
  :: (C'gpointer -> Ptr C'GObject -> C'gboolean -> IO ()) -> IO C'GToggleNotify
foreign import ccall "dynamic" mK'GToggleNotify
  :: C'GToggleNotify -> (C'gpointer -> Ptr C'GObject -> C'gboolean -> IO ())

{-# LINE 67 "src/Bindings/GObject/BaseObjectType.hsc" #-}

foreign import ccall "g_object_add_toggle_ref" c'g_object_add_toggle_ref
  :: Ptr C'GObject -> C'GToggleNotify -> C'gpointer -> IO ()
foreign import ccall "&g_object_add_toggle_ref" p'g_object_add_toggle_ref
  :: FunPtr (Ptr C'GObject -> C'GToggleNotify -> C'gpointer -> IO ())

{-# LINE 69 "src/Bindings/GObject/BaseObjectType.hsc" #-}
foreign import ccall "g_object_remove_toggle_ref" c'g_object_remove_toggle_ref
  :: Ptr C'GObject -> C'GToggleNotify -> C'gpointer -> IO ()
foreign import ccall "&g_object_remove_toggle_ref" p'g_object_remove_toggle_ref
  :: FunPtr (Ptr C'GObject -> C'GToggleNotify -> C'gpointer -> IO ())

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

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

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

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

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

{-# LINE 75 "src/Bindings/GObject/BaseObjectType.hsc" #-}
foreign import ccall "g_object_set_data_full" c'g_object_set_data_full
  :: Ptr C'GObject -> Ptr C'gchar -> C'gpointer -> C'GDestroyNotify -> IO ()
foreign import ccall "&g_object_set_data_full" p'g_object_set_data_full
  :: FunPtr (Ptr C'GObject -> Ptr C'gchar -> C'gpointer -> C'GDestroyNotify -> IO ())

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

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

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

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

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

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

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

{-# LINE 83 "src/Bindings/GObject/BaseObjectType.hsc" #-}
foreign import ccall "g_object_watch_closure" c'g_object_watch_closure
  :: Ptr C'GObject -> Ptr C'GClosure -> IO ()
foreign import ccall "&g_object_watch_closure" p'g_object_watch_closure
  :: FunPtr (Ptr C'GObject -> Ptr C'GClosure -> IO ())

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

{-# LINE 85 "src/Bindings/GObject/BaseObjectType.hsc" #-}

foreign import ccall "inline_G_OBJECT_WARN_INVALID_PROPERTY_ID" c'G_OBJECT_WARN_INVALID_PROPERTY_ID
  :: Ptr C'GObject -> C'guint -> Ptr C'GParamSpec -> IO ()

{-# LINE 87 "src/Bindings/GObject/BaseObjectType.hsc" #-}