{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Adw.Objects.CallbackAnimationTarget
(
CallbackAnimationTarget(..) ,
IsCallbackAnimationTarget ,
toCallbackAnimationTarget ,
#if defined(ENABLE_OVERLOADING)
ResolveCallbackAnimationTargetMethod ,
#endif
callbackAnimationTargetNew ,
) 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.BasicTypes as B.Types
import qualified Data.GI.Base.ManagedPtr as B.ManagedPtr
import qualified Data.GI.Base.GArray as B.GArray
import qualified Data.GI.Base.GClosure as B.GClosure
import qualified Data.GI.Base.GError as B.GError
import qualified Data.GI.Base.GHashTable as B.GHT
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.GI.Base.Signals as B.Signals
import qualified Control.Monad.IO.Class as MIO
import qualified Data.Coerce as Coerce
import qualified Data.Text as T
import qualified Data.Kind as DK
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 GHC.Records as R
import qualified GI.Adw.Callbacks as Adw.Callbacks
import {-# SOURCE #-} qualified GI.Adw.Objects.AnimationTarget as Adw.AnimationTarget
import qualified GI.GLib.Callbacks as GLib.Callbacks
import qualified GI.GObject.Objects.Object as GObject.Object
newtype CallbackAnimationTarget = CallbackAnimationTarget (SP.ManagedPtr CallbackAnimationTarget)
deriving (CallbackAnimationTarget -> CallbackAnimationTarget -> Bool
(CallbackAnimationTarget -> CallbackAnimationTarget -> Bool)
-> (CallbackAnimationTarget -> CallbackAnimationTarget -> Bool)
-> Eq CallbackAnimationTarget
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: CallbackAnimationTarget -> CallbackAnimationTarget -> Bool
== :: CallbackAnimationTarget -> CallbackAnimationTarget -> Bool
$c/= :: CallbackAnimationTarget -> CallbackAnimationTarget -> Bool
/= :: CallbackAnimationTarget -> CallbackAnimationTarget -> Bool
Eq)
instance SP.ManagedPtrNewtype CallbackAnimationTarget where
toManagedPtr :: CallbackAnimationTarget -> ManagedPtr CallbackAnimationTarget
toManagedPtr (CallbackAnimationTarget ManagedPtr CallbackAnimationTarget
p) = ManagedPtr CallbackAnimationTarget
p
foreign import ccall "adw_callback_animation_target_get_type"
c_adw_callback_animation_target_get_type :: IO B.Types.GType
instance B.Types.TypedObject CallbackAnimationTarget where
glibType :: IO GType
glibType = IO GType
c_adw_callback_animation_target_get_type
instance B.Types.GObject CallbackAnimationTarget
class (SP.GObject o, O.IsDescendantOf CallbackAnimationTarget o) => IsCallbackAnimationTarget o
instance (SP.GObject o, O.IsDescendantOf CallbackAnimationTarget o) => IsCallbackAnimationTarget o
instance O.HasParentTypes CallbackAnimationTarget
type instance O.ParentTypes CallbackAnimationTarget = '[Adw.AnimationTarget.AnimationTarget, GObject.Object.Object]
toCallbackAnimationTarget :: (MIO.MonadIO m, IsCallbackAnimationTarget o) => o -> m CallbackAnimationTarget
toCallbackAnimationTarget :: forall (m :: * -> *) o.
(MonadIO m, IsCallbackAnimationTarget o) =>
o -> m CallbackAnimationTarget
toCallbackAnimationTarget = IO CallbackAnimationTarget -> m CallbackAnimationTarget
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO CallbackAnimationTarget -> m CallbackAnimationTarget)
-> (o -> IO CallbackAnimationTarget)
-> o
-> m CallbackAnimationTarget
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr CallbackAnimationTarget -> CallbackAnimationTarget)
-> o -> IO CallbackAnimationTarget
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr CallbackAnimationTarget -> CallbackAnimationTarget
CallbackAnimationTarget
instance B.GValue.IsGValue (Maybe CallbackAnimationTarget) where
gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_adw_callback_animation_target_get_type
gvalueSet_ :: Ptr GValue -> Maybe CallbackAnimationTarget -> IO ()
gvalueSet_ Ptr GValue
gv Maybe CallbackAnimationTarget
P.Nothing = Ptr GValue -> Ptr CallbackAnimationTarget -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr CallbackAnimationTarget
forall a. Ptr a
FP.nullPtr :: FP.Ptr CallbackAnimationTarget)
gvalueSet_ Ptr GValue
gv (P.Just CallbackAnimationTarget
obj) = CallbackAnimationTarget
-> (Ptr CallbackAnimationTarget -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr CallbackAnimationTarget
obj (Ptr GValue -> Ptr CallbackAnimationTarget -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
gvalueGet_ :: Ptr GValue -> IO (Maybe CallbackAnimationTarget)
gvalueGet_ Ptr GValue
gv = do
Ptr CallbackAnimationTarget
ptr <- Ptr GValue -> IO (Ptr CallbackAnimationTarget)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr CallbackAnimationTarget)
if Ptr CallbackAnimationTarget
ptr Ptr CallbackAnimationTarget -> Ptr CallbackAnimationTarget -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr CallbackAnimationTarget
forall a. Ptr a
FP.nullPtr
then CallbackAnimationTarget -> Maybe CallbackAnimationTarget
forall a. a -> Maybe a
P.Just (CallbackAnimationTarget -> Maybe CallbackAnimationTarget)
-> IO CallbackAnimationTarget -> IO (Maybe CallbackAnimationTarget)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr CallbackAnimationTarget -> CallbackAnimationTarget)
-> Ptr CallbackAnimationTarget -> IO CallbackAnimationTarget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr CallbackAnimationTarget -> CallbackAnimationTarget
CallbackAnimationTarget Ptr CallbackAnimationTarget
ptr
else Maybe CallbackAnimationTarget -> IO (Maybe CallbackAnimationTarget)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe CallbackAnimationTarget
forall a. Maybe a
P.Nothing
#if defined(ENABLE_OVERLOADING)
type family ResolveCallbackAnimationTargetMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveCallbackAnimationTargetMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
ResolveCallbackAnimationTargetMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
ResolveCallbackAnimationTargetMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
ResolveCallbackAnimationTargetMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
ResolveCallbackAnimationTargetMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
ResolveCallbackAnimationTargetMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
ResolveCallbackAnimationTargetMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
ResolveCallbackAnimationTargetMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
ResolveCallbackAnimationTargetMethod "ref" o = GObject.Object.ObjectRefMethodInfo
ResolveCallbackAnimationTargetMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
ResolveCallbackAnimationTargetMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
ResolveCallbackAnimationTargetMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
ResolveCallbackAnimationTargetMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
ResolveCallbackAnimationTargetMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
ResolveCallbackAnimationTargetMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
ResolveCallbackAnimationTargetMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
ResolveCallbackAnimationTargetMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
ResolveCallbackAnimationTargetMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
ResolveCallbackAnimationTargetMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
ResolveCallbackAnimationTargetMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
ResolveCallbackAnimationTargetMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
ResolveCallbackAnimationTargetMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
ResolveCallbackAnimationTargetMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveCallbackAnimationTargetMethod t CallbackAnimationTarget, O.OverloadedMethod info CallbackAnimationTarget p) => OL.IsLabel t (CallbackAnimationTarget -> p) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.overloadedMethod @info
#else
fromLabel _ = O.overloadedMethod @info
#endif
#if MIN_VERSION_base(4,13,0)
instance (info ~ ResolveCallbackAnimationTargetMethod t CallbackAnimationTarget, O.OverloadedMethod info CallbackAnimationTarget p, R.HasField t CallbackAnimationTarget p) => R.HasField t CallbackAnimationTarget p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveCallbackAnimationTargetMethod t CallbackAnimationTarget, O.OverloadedMethodInfo info CallbackAnimationTarget) => OL.IsLabel t (O.MethodProxy info CallbackAnimationTarget) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList CallbackAnimationTarget
type instance O.AttributeList CallbackAnimationTarget = CallbackAnimationTargetAttributeList
type CallbackAnimationTargetAttributeList = ('[ ] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList CallbackAnimationTarget = CallbackAnimationTargetSignalList
type CallbackAnimationTargetSignalList = ('[ '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, DK.Type)])
#endif
foreign import ccall "adw_callback_animation_target_new" adw_callback_animation_target_new ::
FunPtr Adw.Callbacks.C_AnimationTargetFunc ->
Ptr () ->
FunPtr GLib.Callbacks.C_DestroyNotify ->
IO (Ptr CallbackAnimationTarget)
callbackAnimationTargetNew ::
(B.CallStack.HasCallStack, MonadIO m) =>
Adw.Callbacks.AnimationTargetFunc
-> m CallbackAnimationTarget
callbackAnimationTargetNew :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
AnimationTargetFunc -> m CallbackAnimationTarget
callbackAnimationTargetNew AnimationTargetFunc
callback = IO CallbackAnimationTarget -> m CallbackAnimationTarget
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO CallbackAnimationTarget -> m CallbackAnimationTarget)
-> IO CallbackAnimationTarget -> m CallbackAnimationTarget
forall a b. (a -> b) -> a -> b
$ do
FunPtr C_AnimationTargetFunc
callback' <- C_AnimationTargetFunc -> IO (FunPtr C_AnimationTargetFunc)
Adw.Callbacks.mk_AnimationTargetFunc (Maybe (Ptr (FunPtr C_AnimationTargetFunc))
-> AnimationTargetFunc_WithClosures -> C_AnimationTargetFunc
Adw.Callbacks.wrap_AnimationTargetFunc Maybe (Ptr (FunPtr C_AnimationTargetFunc))
forall a. Maybe a
Nothing (AnimationTargetFunc -> AnimationTargetFunc_WithClosures
Adw.Callbacks.drop_closures_AnimationTargetFunc AnimationTargetFunc
callback))
let userData :: Ptr ()
userData = FunPtr C_AnimationTargetFunc -> Ptr ()
forall a b. FunPtr a -> Ptr b
castFunPtrToPtr FunPtr C_AnimationTargetFunc
callback'
let destroy :: FunPtr (Ptr a -> IO ())
destroy = FunPtr (Ptr a -> IO ())
forall a. FunPtr (Ptr a -> IO ())
SP.safeFreeFunPtrPtr
Ptr CallbackAnimationTarget
result <- FunPtr C_AnimationTargetFunc
-> Ptr ()
-> FunPtr C_DestroyNotify
-> IO (Ptr CallbackAnimationTarget)
adw_callback_animation_target_new FunPtr C_AnimationTargetFunc
callback' Ptr ()
userData FunPtr C_DestroyNotify
forall a. FunPtr (Ptr a -> IO ())
destroy
Text -> Ptr CallbackAnimationTarget -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"callbackAnimationTargetNew" Ptr CallbackAnimationTarget
result
CallbackAnimationTarget
result' <- ((ManagedPtr CallbackAnimationTarget -> CallbackAnimationTarget)
-> Ptr CallbackAnimationTarget -> IO CallbackAnimationTarget
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr CallbackAnimationTarget -> CallbackAnimationTarget
CallbackAnimationTarget) Ptr CallbackAnimationTarget
result
CallbackAnimationTarget -> IO CallbackAnimationTarget
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CallbackAnimationTarget
result'
#if defined(ENABLE_OVERLOADING)
#endif