packages feed

gi-gobject-0.2.46.13: GI/GObject/Objects/InitiallyUnowned.hs


{- |
Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
License    : LGPL-2.1
Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-}

module GI.GObject.Objects.InitiallyUnowned
    ( 

-- * Exported types
    InitiallyUnowned(..)                    ,
    InitiallyUnownedK                       ,
    toInitiallyUnowned                      ,
    noInitiallyUnowned                      ,


    ) where

import Prelude ()
import Data.GI.Base.ShortPrelude

import qualified Data.Text as T
import qualified Data.ByteString.Char8 as B
import qualified Data.Map as Map

import GI.GObject.Types
import GI.GObject.Callbacks

newtype InitiallyUnowned = InitiallyUnowned (ForeignPtr InitiallyUnowned)
foreign import ccall "g_initially_unowned_get_type"
    c_g_initially_unowned_get_type :: IO GType

type instance ParentTypes InitiallyUnowned = InitiallyUnownedParentTypes
type InitiallyUnownedParentTypes = '[Object]

instance GObject InitiallyUnowned where
    gobjectIsInitiallyUnowned _ = True
    gobjectType _ = c_g_initially_unowned_get_type
    

class GObject o => InitiallyUnownedK o
instance (GObject o, IsDescendantOf InitiallyUnowned o) => InitiallyUnownedK o

toInitiallyUnowned :: InitiallyUnownedK o => o -> IO InitiallyUnowned
toInitiallyUnowned = unsafeCastTo InitiallyUnowned

noInitiallyUnowned :: Maybe InitiallyUnowned
noInitiallyUnowned = Nothing

type family ResolveInitiallyUnownedMethod (t :: Symbol) (o :: *) :: * where
    ResolveInitiallyUnownedMethod "bindProperty" o = ObjectBindPropertyMethodInfo
    ResolveInitiallyUnownedMethod "bindPropertyFull" o = ObjectBindPropertyFullMethodInfo
    ResolveInitiallyUnownedMethod "forceFloating" o = ObjectForceFloatingMethodInfo
    ResolveInitiallyUnownedMethod "freezeNotify" o = ObjectFreezeNotifyMethodInfo
    ResolveInitiallyUnownedMethod "isFloating" o = ObjectIsFloatingMethodInfo
    ResolveInitiallyUnownedMethod "notify" o = ObjectNotifyMethodInfo
    ResolveInitiallyUnownedMethod "notifyByPspec" o = ObjectNotifyByPspecMethodInfo
    ResolveInitiallyUnownedMethod "ref" o = ObjectRefMethodInfo
    ResolveInitiallyUnownedMethod "refSink" o = ObjectRefSinkMethodInfo
    ResolveInitiallyUnownedMethod "replaceData" o = ObjectReplaceDataMethodInfo
    ResolveInitiallyUnownedMethod "replaceQdata" o = ObjectReplaceQdataMethodInfo
    ResolveInitiallyUnownedMethod "runDispose" o = ObjectRunDisposeMethodInfo
    ResolveInitiallyUnownedMethod "stealData" o = ObjectStealDataMethodInfo
    ResolveInitiallyUnownedMethod "stealQdata" o = ObjectStealQdataMethodInfo
    ResolveInitiallyUnownedMethod "thawNotify" o = ObjectThawNotifyMethodInfo
    ResolveInitiallyUnownedMethod "unref" o = ObjectUnrefMethodInfo
    ResolveInitiallyUnownedMethod "watchClosure" o = ObjectWatchClosureMethodInfo
    ResolveInitiallyUnownedMethod "getData" o = ObjectGetDataMethodInfo
    ResolveInitiallyUnownedMethod "getProperty" o = ObjectGetPropertyMethodInfo
    ResolveInitiallyUnownedMethod "getQdata" o = ObjectGetQdataMethodInfo
    ResolveInitiallyUnownedMethod "setData" o = ObjectSetDataMethodInfo
    ResolveInitiallyUnownedMethod "setProperty" o = ObjectSetPropertyMethodInfo
    ResolveInitiallyUnownedMethod l o = MethodResolutionFailed l o

instance (info ~ ResolveInitiallyUnownedMethod t InitiallyUnowned, MethodInfo info InitiallyUnowned p) => IsLabelProxy t (InitiallyUnowned -> p) where
    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)

#if MIN_VERSION_base(4,9,0)
instance (info ~ ResolveInitiallyUnownedMethod t InitiallyUnowned, MethodInfo info InitiallyUnowned p) => IsLabel t (InitiallyUnowned -> p) where
    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
#endif

type instance AttributeList InitiallyUnowned = InitiallyUnownedAttributeList
type InitiallyUnownedAttributeList = ('[ ] :: [(Symbol, *)])

type instance SignalList InitiallyUnowned = InitiallyUnownedSignalList
type InitiallyUnownedSignalList = ('[ '("notify", ObjectNotifySignalInfo)] :: [(Symbol, *)])