{-# LINE 1 "./System/Glib/Types.chs" #-}
{-# OPTIONS_HADDOCK hide #-}
module System.Glib.Types (
GObject(..),
GObjectClass,
mkGObject,
unGObject,
toGObject,
unsafeCastGObject,
castToGObject,
objectUnref
) where
import System.Glib.FFI
{-# LINE 43 "./System/Glib/Types.chs" #-}
newtype GObject = GObject (ForeignPtr (GObject)) deriving (Eq)
mkGObject :: (ForeignPtr GObject -> GObject, FinalizerPtr a)
mkGObject = (ForeignPtr GObject -> GObject
GObject, FinalizerPtr a
forall a. FinalizerPtr a
objectUnref)
unGObject :: GObject -> ForeignPtr GObject
unGObject (GObject ForeignPtr GObject
o) = ForeignPtr GObject
o
class GObjectClass o where
toGObject :: o -> GObject
unsafeCastGObject :: GObject -> o
instance GObjectClass GObject where
toGObject :: GObject -> GObject
toGObject = GObject -> GObject
forall a. a -> a
id
unsafeCastGObject :: GObject -> GObject
unsafeCastGObject = GObject -> GObject
forall a. a -> a
id
castToGObject :: GObjectClass obj => obj -> obj
castToGObject :: forall obj. GObjectClass obj => obj -> obj
castToGObject = obj -> obj
forall a. a -> a
id
foreign import ccall unsafe "&g_object_unref"
objectUnref :: FinalizerPtr a