{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) All the fields in the GInitiallyUnowned structure are private to the 'GI.GObject.Objects.InitiallyUnowned.InitiallyUnowned' implementation and should never be accessed directly. -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.GObject.Objects.InitiallyUnowned ( -- * Exported types InitiallyUnowned(..) , IsInitiallyUnowned , toInitiallyUnowned , noInitiallyUnowned , ) where import Data.GI.Base.ShortPrelude import qualified Data.GI.Base.ShortPrelude as SP import qualified Data.GI.Base.Overloading as O import qualified Prelude as P import qualified Data.GI.Base.Attributes as GI.Attributes import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr import qualified Data.GI.Base.GClosure as B.GClosure import qualified Data.GI.Base.GError as B.GError import qualified Data.GI.Base.GVariant as B.GVariant import qualified Data.GI.Base.GValue as B.GValue import qualified Data.GI.Base.GParamSpec as B.GParamSpec import qualified Data.GI.Base.CallStack as B.CallStack import qualified Data.GI.Base.Properties as B.Properties import qualified Data.Text as T import qualified Data.ByteString.Char8 as B import qualified Data.Map as Map import qualified Foreign.Ptr as FP import qualified GHC.OverloadedLabels as OL import {-# SOURCE #-} qualified GI.GObject.Objects.Object as GObject.Object -- | Memory-managed wrapper type. newtype InitiallyUnowned = InitiallyUnowned (ManagedPtr InitiallyUnowned) foreign import ccall "g_initially_unowned_get_type" c_g_initially_unowned_get_type :: IO GType instance GObject InitiallyUnowned where gobjectType = c_g_initially_unowned_get_type -- | Type class for types which can be safely cast to `InitiallyUnowned`, for instance with `toInitiallyUnowned`. class (GObject o, O.IsDescendantOf InitiallyUnowned o) => IsInitiallyUnowned o instance (GObject o, O.IsDescendantOf InitiallyUnowned o) => IsInitiallyUnowned o instance O.HasParentTypes InitiallyUnowned type instance O.ParentTypes InitiallyUnowned = '[GObject.Object.Object] -- | Cast to `InitiallyUnowned`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toInitiallyUnowned :: (MonadIO m, IsInitiallyUnowned o) => o -> m InitiallyUnowned toInitiallyUnowned = liftIO . unsafeCastTo InitiallyUnowned -- | A convenience alias for `Nothing` :: `Maybe` `InitiallyUnowned`. noInitiallyUnowned :: Maybe InitiallyUnowned noInitiallyUnowned = Nothing #if ENABLE_OVERLOADING type family ResolveInitiallyUnownedMethod (t :: Symbol) (o :: *) :: * where ResolveInitiallyUnownedMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveInitiallyUnownedMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveInitiallyUnownedMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveInitiallyUnownedMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveInitiallyUnownedMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveInitiallyUnownedMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveInitiallyUnownedMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveInitiallyUnownedMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveInitiallyUnownedMethod "ref" o = GObject.Object.ObjectRefMethodInfo ResolveInitiallyUnownedMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveInitiallyUnownedMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveInitiallyUnownedMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveInitiallyUnownedMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveInitiallyUnownedMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveInitiallyUnownedMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo ResolveInitiallyUnownedMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveInitiallyUnownedMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveInitiallyUnownedMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveInitiallyUnownedMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveInitiallyUnownedMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveInitiallyUnownedMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo ResolveInitiallyUnownedMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveInitiallyUnownedMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveInitiallyUnownedMethod t InitiallyUnowned, O.MethodInfo info InitiallyUnowned p) => OL.IsLabel t (InitiallyUnowned -> p) where #if MIN_VERSION_base(4,10,0) fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #else fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #endif #endif #if ENABLE_OVERLOADING instance O.HasAttributeList InitiallyUnowned type instance O.AttributeList InitiallyUnowned = InitiallyUnownedAttributeList type InitiallyUnownedAttributeList = ('[ ] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type instance O.SignalList InitiallyUnowned = InitiallyUnownedSignalList type InitiallyUnownedSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)]) #endif