#define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \
&& !defined(__HADDOCK_VERSION__))
module GI.Ggit.Objects.Object
(
Object(..) ,
IsObject ,
toObject ,
noObject ,
#if ENABLE_OVERLOADING
ObjectGetIdMethodInfo ,
#endif
objectGetId ,
#if ENABLE_OVERLOADING
ObjectGetOwnerMethodInfo ,
#endif
objectGetOwner ,
) 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 qualified GI.GObject.Objects.Object as GObject.Object
import {-# SOURCE #-} qualified GI.Ggit.Objects.Native as Ggit.Native
import {-# SOURCE #-} qualified GI.Ggit.Objects.ObjectFactoryBase as Ggit.ObjectFactoryBase
import {-# SOURCE #-} qualified GI.Ggit.Objects.Repository as Ggit.Repository
import {-# SOURCE #-} qualified GI.Ggit.Structs.OId as Ggit.OId
newtype Object = Object (ManagedPtr Object)
foreign import ccall "ggit_object_get_type"
c_ggit_object_get_type :: IO GType
instance GObject Object where
gobjectType = c_ggit_object_get_type
class (GObject o, O.IsDescendantOf Object o) => IsObject o
instance (GObject o, O.IsDescendantOf Object o) => IsObject o
instance O.HasParentTypes Object
type instance O.ParentTypes Object = '[Ggit.Native.Native, Ggit.ObjectFactoryBase.ObjectFactoryBase, GObject.Object.Object]
toObject :: (MonadIO m, IsObject o) => o -> m Object
toObject = liftIO . unsafeCastTo Object
noObject :: Maybe Object
noObject = Nothing
#if ENABLE_OVERLOADING
type family ResolveObjectMethod (t :: Symbol) (o :: *) :: * where
ResolveObjectMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveObjectMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveObjectMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveObjectMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveObjectMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveObjectMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveObjectMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveObjectMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveObjectMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveObjectMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveObjectMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveObjectMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveObjectMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveObjectMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveObjectMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveObjectMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveObjectMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveObjectMethod "getId" o = ObjectGetIdMethodInfo
ResolveObjectMethod "getOwner" o = ObjectGetOwnerMethodInfo
ResolveObjectMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveObjectMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveObjectMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveObjectMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveObjectMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveObjectMethod t Object, O.MethodInfo info Object p) => OL.IsLabel t (Object -> 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 Object
type instance O.AttributeList Object = ObjectAttributeList
type ObjectAttributeList = ('[ '("native", Ggit.Native.NativeNativePropertyInfo)] :: [(Symbol, *)])
#endif
#if ENABLE_OVERLOADING
#endif
#if ENABLE_OVERLOADING
type instance O.SignalList Object = ObjectSignalList
type ObjectSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "ggit_object_get_id" ggit_object_get_id ::
Ptr Object ->
IO (Ptr Ggit.OId.OId)
objectGetId ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> m (Maybe Ggit.OId.OId)
objectGetId object = liftIO $ do
object' <- unsafeManagedPtrCastPtr object
result <- ggit_object_get_id object'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapBoxed Ggit.OId.OId) result'
return result''
touchManagedPtr object
return maybeResult
#if ENABLE_OVERLOADING
data ObjectGetIdMethodInfo
instance (signature ~ (m (Maybe Ggit.OId.OId)), MonadIO m, IsObject a) => O.MethodInfo ObjectGetIdMethodInfo a signature where
overloadedMethod _ = objectGetId
#endif
foreign import ccall "ggit_object_get_owner" ggit_object_get_owner ::
Ptr Object ->
IO (Ptr Ggit.Repository.Repository)
objectGetOwner ::
(B.CallStack.HasCallStack, MonadIO m, IsObject a) =>
a
-> m (Maybe Ggit.Repository.Repository)
objectGetOwner object = liftIO $ do
object' <- unsafeManagedPtrCastPtr object
result <- ggit_object_get_owner object'
maybeResult <- convertIfNonNull result $ \result' -> do
result'' <- (wrapObject Ggit.Repository.Repository) result'
return result''
touchManagedPtr object
return maybeResult
#if ENABLE_OVERLOADING
data ObjectGetOwnerMethodInfo
instance (signature ~ (m (Maybe Ggit.Repository.Repository)), MonadIO m, IsObject a) => O.MethodInfo ObjectGetOwnerMethodInfo a signature where
overloadedMethod _ = objectGetOwner
#endif