{-# LANGUAGE ImplicitParams, RankNTypes, TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gtk.Objects.DropTargetAsync
    ( 
    DropTargetAsync(..)                     ,
    IsDropTargetAsync                       ,
    toDropTargetAsync                       ,
 
#if defined(ENABLE_OVERLOADING)
    ResolveDropTargetAsyncMethod            ,
#endif
#if defined(ENABLE_OVERLOADING)
    DropTargetAsyncGetActionsMethodInfo     ,
#endif
    dropTargetAsyncGetActions               ,
#if defined(ENABLE_OVERLOADING)
    DropTargetAsyncGetFormatsMethodInfo     ,
#endif
    dropTargetAsyncGetFormats               ,
    dropTargetAsyncNew                      ,
#if defined(ENABLE_OVERLOADING)
    DropTargetAsyncRejectDropMethodInfo     ,
#endif
    dropTargetAsyncRejectDrop               ,
#if defined(ENABLE_OVERLOADING)
    DropTargetAsyncSetActionsMethodInfo     ,
#endif
    dropTargetAsyncSetActions               ,
#if defined(ENABLE_OVERLOADING)
    DropTargetAsyncSetFormatsMethodInfo     ,
#endif
    dropTargetAsyncSetFormats               ,
 
#if defined(ENABLE_OVERLOADING)
    DropTargetAsyncActionsPropertyInfo      ,
#endif
    constructDropTargetAsyncActions         ,
#if defined(ENABLE_OVERLOADING)
    dropTargetAsyncActions                  ,
#endif
    getDropTargetAsyncActions               ,
    setDropTargetAsyncActions               ,
#if defined(ENABLE_OVERLOADING)
    DropTargetAsyncFormatsPropertyInfo      ,
#endif
    clearDropTargetAsyncFormats             ,
    constructDropTargetAsyncFormats         ,
#if defined(ENABLE_OVERLOADING)
    dropTargetAsyncFormats                  ,
#endif
    getDropTargetAsyncFormats               ,
    setDropTargetAsyncFormats               ,
 
    DropTargetAsyncAcceptCallback           ,
#if defined(ENABLE_OVERLOADING)
    DropTargetAsyncAcceptSignalInfo         ,
#endif
    afterDropTargetAsyncAccept              ,
    onDropTargetAsyncAccept                 ,
    DropTargetAsyncDragEnterCallback        ,
#if defined(ENABLE_OVERLOADING)
    DropTargetAsyncDragEnterSignalInfo      ,
#endif
    afterDropTargetAsyncDragEnter           ,
    onDropTargetAsyncDragEnter              ,
    DropTargetAsyncDragLeaveCallback        ,
#if defined(ENABLE_OVERLOADING)
    DropTargetAsyncDragLeaveSignalInfo      ,
#endif
    afterDropTargetAsyncDragLeave           ,
    onDropTargetAsyncDragLeave              ,
    DropTargetAsyncDragMotionCallback       ,
#if defined(ENABLE_OVERLOADING)
    DropTargetAsyncDragMotionSignalInfo     ,
#endif
    afterDropTargetAsyncDragMotion          ,
    onDropTargetAsyncDragMotion             ,
    DropTargetAsyncDropCallback             ,
#if defined(ENABLE_OVERLOADING)
    DropTargetAsyncDropSignalInfo           ,
#endif
    afterDropTargetAsyncDrop                ,
    onDropTargetAsyncDrop                   ,
    ) 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.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.GObject.Objects.Object as GObject.Object
import qualified GI.Gdk.Flags as Gdk.Flags
import qualified GI.Gdk.Objects.Drop as Gdk.Drop
import qualified GI.Gdk.Structs.ContentFormats as Gdk.ContentFormats
import {-# SOURCE #-} qualified GI.Gtk.Objects.EventController as Gtk.EventController
newtype DropTargetAsync = DropTargetAsync (SP.ManagedPtr DropTargetAsync)
    deriving (DropTargetAsync -> DropTargetAsync -> Bool
(DropTargetAsync -> DropTargetAsync -> Bool)
-> (DropTargetAsync -> DropTargetAsync -> Bool)
-> Eq DropTargetAsync
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DropTargetAsync -> DropTargetAsync -> Bool
== :: DropTargetAsync -> DropTargetAsync -> Bool
$c/= :: DropTargetAsync -> DropTargetAsync -> Bool
/= :: DropTargetAsync -> DropTargetAsync -> Bool
Eq)
instance SP.ManagedPtrNewtype DropTargetAsync where
    toManagedPtr :: DropTargetAsync -> ManagedPtr DropTargetAsync
toManagedPtr (DropTargetAsync ManagedPtr DropTargetAsync
p) = ManagedPtr DropTargetAsync
p
foreign import ccall "gtk_drop_target_async_get_type"
    c_gtk_drop_target_async_get_type :: IO B.Types.GType
instance B.Types.TypedObject DropTargetAsync where
    glibType :: IO GType
glibType = IO GType
c_gtk_drop_target_async_get_type
instance B.Types.GObject DropTargetAsync
class (SP.GObject o, O.IsDescendantOf DropTargetAsync o) => IsDropTargetAsync o
instance (SP.GObject o, O.IsDescendantOf DropTargetAsync o) => IsDropTargetAsync o
instance O.HasParentTypes DropTargetAsync
type instance O.ParentTypes DropTargetAsync = '[Gtk.EventController.EventController, GObject.Object.Object]
toDropTargetAsync :: (MIO.MonadIO m, IsDropTargetAsync o) => o -> m DropTargetAsync
toDropTargetAsync :: forall (m :: * -> *) o.
(MonadIO m, IsDropTargetAsync o) =>
o -> m DropTargetAsync
toDropTargetAsync = IO DropTargetAsync -> m DropTargetAsync
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO DropTargetAsync -> m DropTargetAsync)
-> (o -> IO DropTargetAsync) -> o -> m DropTargetAsync
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr DropTargetAsync -> DropTargetAsync)
-> o -> IO DropTargetAsync
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
 ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr DropTargetAsync -> DropTargetAsync
DropTargetAsync
instance B.GValue.IsGValue (Maybe DropTargetAsync) where
    gvalueGType_ :: IO GType
gvalueGType_ = IO GType
c_gtk_drop_target_async_get_type
    gvalueSet_ :: Ptr GValue -> Maybe DropTargetAsync -> IO ()
gvalueSet_ Ptr GValue
gv Maybe DropTargetAsync
P.Nothing = Ptr GValue -> Ptr DropTargetAsync -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv (Ptr DropTargetAsync
forall a. Ptr a
FP.nullPtr :: FP.Ptr DropTargetAsync)
    gvalueSet_ Ptr GValue
gv (P.Just DropTargetAsync
obj) = DropTargetAsync -> (Ptr DropTargetAsync -> IO ()) -> IO ()
forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr DropTargetAsync
obj (Ptr GValue -> Ptr DropTargetAsync -> IO ()
forall a. GObject a => Ptr GValue -> Ptr a -> IO ()
B.GValue.set_object Ptr GValue
gv)
    gvalueGet_ :: Ptr GValue -> IO (Maybe DropTargetAsync)
gvalueGet_ Ptr GValue
gv = do
        Ptr DropTargetAsync
ptr <- Ptr GValue -> IO (Ptr DropTargetAsync)
forall a. GObject a => Ptr GValue -> IO (Ptr a)
B.GValue.get_object Ptr GValue
gv :: IO (FP.Ptr DropTargetAsync)
        if Ptr DropTargetAsync
ptr Ptr DropTargetAsync -> Ptr DropTargetAsync -> Bool
forall a. Eq a => a -> a -> Bool
/= Ptr DropTargetAsync
forall a. Ptr a
FP.nullPtr
        then DropTargetAsync -> Maybe DropTargetAsync
forall a. a -> Maybe a
P.Just (DropTargetAsync -> Maybe DropTargetAsync)
-> IO DropTargetAsync -> IO (Maybe DropTargetAsync)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (ManagedPtr DropTargetAsync -> DropTargetAsync)
-> Ptr DropTargetAsync -> IO DropTargetAsync
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
B.ManagedPtr.newObject ManagedPtr DropTargetAsync -> DropTargetAsync
DropTargetAsync Ptr DropTargetAsync
ptr
        else Maybe DropTargetAsync -> IO (Maybe DropTargetAsync)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe DropTargetAsync
forall a. Maybe a
P.Nothing
        
    
#if defined(ENABLE_OVERLOADING)
type family ResolveDropTargetAsyncMethod (t :: Symbol) (o :: *) :: * where
    ResolveDropTargetAsyncMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo
    ResolveDropTargetAsyncMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo
    ResolveDropTargetAsyncMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo
    ResolveDropTargetAsyncMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo
    ResolveDropTargetAsyncMethod "getv" o = GObject.Object.ObjectGetvMethodInfo
    ResolveDropTargetAsyncMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo
    ResolveDropTargetAsyncMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo
    ResolveDropTargetAsyncMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo
    ResolveDropTargetAsyncMethod "ref" o = GObject.Object.ObjectRefMethodInfo
    ResolveDropTargetAsyncMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo
    ResolveDropTargetAsyncMethod "rejectDrop" o = DropTargetAsyncRejectDropMethodInfo
    ResolveDropTargetAsyncMethod "reset" o = Gtk.EventController.EventControllerResetMethodInfo
    ResolveDropTargetAsyncMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo
    ResolveDropTargetAsyncMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo
    ResolveDropTargetAsyncMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo
    ResolveDropTargetAsyncMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo
    ResolveDropTargetAsyncMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo
    ResolveDropTargetAsyncMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo
    ResolveDropTargetAsyncMethod "getActions" o = DropTargetAsyncGetActionsMethodInfo
    ResolveDropTargetAsyncMethod "getCurrentEvent" o = Gtk.EventController.EventControllerGetCurrentEventMethodInfo
    ResolveDropTargetAsyncMethod "getCurrentEventDevice" o = Gtk.EventController.EventControllerGetCurrentEventDeviceMethodInfo
    ResolveDropTargetAsyncMethod "getCurrentEventState" o = Gtk.EventController.EventControllerGetCurrentEventStateMethodInfo
    ResolveDropTargetAsyncMethod "getCurrentEventTime" o = Gtk.EventController.EventControllerGetCurrentEventTimeMethodInfo
    ResolveDropTargetAsyncMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo
    ResolveDropTargetAsyncMethod "getFormats" o = DropTargetAsyncGetFormatsMethodInfo
    ResolveDropTargetAsyncMethod "getName" o = Gtk.EventController.EventControllerGetNameMethodInfo
    ResolveDropTargetAsyncMethod "getPropagationLimit" o = Gtk.EventController.EventControllerGetPropagationLimitMethodInfo
    ResolveDropTargetAsyncMethod "getPropagationPhase" o = Gtk.EventController.EventControllerGetPropagationPhaseMethodInfo
    ResolveDropTargetAsyncMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo
    ResolveDropTargetAsyncMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo
    ResolveDropTargetAsyncMethod "getWidget" o = Gtk.EventController.EventControllerGetWidgetMethodInfo
    ResolveDropTargetAsyncMethod "setActions" o = DropTargetAsyncSetActionsMethodInfo
    ResolveDropTargetAsyncMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo
    ResolveDropTargetAsyncMethod "setDataFull" o = GObject.Object.ObjectSetDataFullMethodInfo
    ResolveDropTargetAsyncMethod "setFormats" o = DropTargetAsyncSetFormatsMethodInfo
    ResolveDropTargetAsyncMethod "setName" o = Gtk.EventController.EventControllerSetNameMethodInfo
    ResolveDropTargetAsyncMethod "setPropagationLimit" o = Gtk.EventController.EventControllerSetPropagationLimitMethodInfo
    ResolveDropTargetAsyncMethod "setPropagationPhase" o = Gtk.EventController.EventControllerSetPropagationPhaseMethodInfo
    ResolveDropTargetAsyncMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo
    ResolveDropTargetAsyncMethod "setStaticName" o = Gtk.EventController.EventControllerSetStaticNameMethodInfo
    ResolveDropTargetAsyncMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveDropTargetAsyncMethod t DropTargetAsync, O.OverloadedMethod info DropTargetAsync p) => OL.IsLabel t (DropTargetAsync -> 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 ~ ResolveDropTargetAsyncMethod t DropTargetAsync, O.OverloadedMethod info DropTargetAsync p, R.HasField t DropTargetAsync p) => R.HasField t DropTargetAsync p where
    getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveDropTargetAsyncMethod t DropTargetAsync, O.OverloadedMethodInfo info DropTargetAsync) => OL.IsLabel t (O.MethodProxy info DropTargetAsync) where
#if MIN_VERSION_base(4,10,0)
    fromLabel = O.MethodProxy
#else
    fromLabel _ = O.MethodProxy
#endif
#endif
type DropTargetAsyncAcceptCallback =
    Gdk.Drop.Drop
    
    -> IO Bool
    
type C_DropTargetAsyncAcceptCallback =
    Ptr DropTargetAsync ->                  
    Ptr Gdk.Drop.Drop ->
    Ptr () ->                               
    IO CInt
foreign import ccall "wrapper"
    mk_DropTargetAsyncAcceptCallback :: C_DropTargetAsyncAcceptCallback -> IO (FunPtr C_DropTargetAsyncAcceptCallback)
wrap_DropTargetAsyncAcceptCallback :: 
    GObject a => (a -> DropTargetAsyncAcceptCallback) ->
    C_DropTargetAsyncAcceptCallback
wrap_DropTargetAsyncAcceptCallback :: forall a.
GObject a =>
(a -> DropTargetAsyncAcceptCallback)
-> C_DropTargetAsyncAcceptCallback
wrap_DropTargetAsyncAcceptCallback a -> DropTargetAsyncAcceptCallback
gi'cb Ptr DropTargetAsync
gi'selfPtr Ptr Drop
drop Ptr ()
_ = do
    Drop
drop' <- ((ManagedPtr Drop -> Drop) -> Ptr Drop -> IO Drop
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Drop -> Drop
Gdk.Drop.Drop) Ptr Drop
drop
    Bool
result <- Ptr DropTargetAsync -> (DropTargetAsync -> IO Bool) -> IO Bool
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr DropTargetAsync
gi'selfPtr ((DropTargetAsync -> IO Bool) -> IO Bool)
-> (DropTargetAsync -> IO Bool) -> IO Bool
forall a b. (a -> b) -> a -> b
$ \DropTargetAsync
gi'self -> a -> DropTargetAsyncAcceptCallback
gi'cb (DropTargetAsync -> a
forall a b. Coercible a b => a -> b
Coerce.coerce DropTargetAsync
gi'self)  Drop
drop'
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'
onDropTargetAsyncAccept :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncAcceptCallback) -> m SignalHandlerId
onDropTargetAsyncAccept :: forall a (m :: * -> *).
(IsDropTargetAsync a, MonadIO m) =>
a
-> ((?self::a) => DropTargetAsyncAcceptCallback)
-> m SignalHandlerId
onDropTargetAsyncAccept a
obj (?self::a) => DropTargetAsyncAcceptCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> DropTargetAsyncAcceptCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => DropTargetAsyncAcceptCallback
DropTargetAsyncAcceptCallback
cb
    let wrapped' :: C_DropTargetAsyncAcceptCallback
wrapped' = (a -> DropTargetAsyncAcceptCallback)
-> C_DropTargetAsyncAcceptCallback
forall a.
GObject a =>
(a -> DropTargetAsyncAcceptCallback)
-> C_DropTargetAsyncAcceptCallback
wrap_DropTargetAsyncAcceptCallback a -> DropTargetAsyncAcceptCallback
wrapped
    FunPtr C_DropTargetAsyncAcceptCallback
wrapped'' <- C_DropTargetAsyncAcceptCallback
-> IO (FunPtr C_DropTargetAsyncAcceptCallback)
mk_DropTargetAsyncAcceptCallback C_DropTargetAsyncAcceptCallback
wrapped'
    a
-> Text
-> FunPtr C_DropTargetAsyncAcceptCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"accept" FunPtr C_DropTargetAsyncAcceptCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterDropTargetAsyncAccept :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncAcceptCallback) -> m SignalHandlerId
afterDropTargetAsyncAccept :: forall a (m :: * -> *).
(IsDropTargetAsync a, MonadIO m) =>
a
-> ((?self::a) => DropTargetAsyncAcceptCallback)
-> m SignalHandlerId
afterDropTargetAsyncAccept a
obj (?self::a) => DropTargetAsyncAcceptCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> DropTargetAsyncAcceptCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => DropTargetAsyncAcceptCallback
DropTargetAsyncAcceptCallback
cb
    let wrapped' :: C_DropTargetAsyncAcceptCallback
wrapped' = (a -> DropTargetAsyncAcceptCallback)
-> C_DropTargetAsyncAcceptCallback
forall a.
GObject a =>
(a -> DropTargetAsyncAcceptCallback)
-> C_DropTargetAsyncAcceptCallback
wrap_DropTargetAsyncAcceptCallback a -> DropTargetAsyncAcceptCallback
wrapped
    FunPtr C_DropTargetAsyncAcceptCallback
wrapped'' <- C_DropTargetAsyncAcceptCallback
-> IO (FunPtr C_DropTargetAsyncAcceptCallback)
mk_DropTargetAsyncAcceptCallback C_DropTargetAsyncAcceptCallback
wrapped'
    a
-> Text
-> FunPtr C_DropTargetAsyncAcceptCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"accept" FunPtr C_DropTargetAsyncAcceptCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data DropTargetAsyncAcceptSignalInfo
instance SignalInfo DropTargetAsyncAcceptSignalInfo where
    type HaskellCallbackType DropTargetAsyncAcceptSignalInfo = DropTargetAsyncAcceptCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_DropTargetAsyncAcceptCallback cb
        cb'' <- mk_DropTargetAsyncAcceptCallback cb'
        connectSignalFunPtr obj "accept" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.DropTargetAsync::accept"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-DropTargetAsync.html#g:signal:accept"})
#endif
type DropTargetAsyncDragEnterCallback =
    Gdk.Drop.Drop
    
    -> Double
    
    -> Double
    
    -> IO [Gdk.Flags.DragAction]
    
type C_DropTargetAsyncDragEnterCallback =
    Ptr DropTargetAsync ->                  
    Ptr Gdk.Drop.Drop ->
    CDouble ->
    CDouble ->
    Ptr () ->                               
    IO CUInt
foreign import ccall "wrapper"
    mk_DropTargetAsyncDragEnterCallback :: C_DropTargetAsyncDragEnterCallback -> IO (FunPtr C_DropTargetAsyncDragEnterCallback)
wrap_DropTargetAsyncDragEnterCallback :: 
    GObject a => (a -> DropTargetAsyncDragEnterCallback) ->
    C_DropTargetAsyncDragEnterCallback
wrap_DropTargetAsyncDragEnterCallback :: forall a.
GObject a =>
(a -> DropTargetAsyncDragEnterCallback)
-> C_DropTargetAsyncDragEnterCallback
wrap_DropTargetAsyncDragEnterCallback a -> DropTargetAsyncDragEnterCallback
gi'cb Ptr DropTargetAsync
gi'selfPtr Ptr Drop
drop CDouble
x CDouble
y Ptr ()
_ = do
    Drop
drop' <- ((ManagedPtr Drop -> Drop) -> Ptr Drop -> IO Drop
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Drop -> Drop
Gdk.Drop.Drop) Ptr Drop
drop
    let x' :: Double
x' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
x
    let y' :: Double
y' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
y
    [DragAction]
result <- Ptr DropTargetAsync
-> (DropTargetAsync -> IO [DragAction]) -> IO [DragAction]
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr DropTargetAsync
gi'selfPtr ((DropTargetAsync -> IO [DragAction]) -> IO [DragAction])
-> (DropTargetAsync -> IO [DragAction]) -> IO [DragAction]
forall a b. (a -> b) -> a -> b
$ \DropTargetAsync
gi'self -> a -> DropTargetAsyncDragEnterCallback
gi'cb (DropTargetAsync -> a
forall a b. Coercible a b => a -> b
Coerce.coerce DropTargetAsync
gi'self)  Drop
drop' Double
x' Double
y'
    let result' :: CUInt
result' = [DragAction] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [DragAction]
result
    CUInt -> IO CUInt
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CUInt
result'
onDropTargetAsyncDragEnter :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDragEnterCallback) -> m SignalHandlerId
onDropTargetAsyncDragEnter :: forall a (m :: * -> *).
(IsDropTargetAsync a, MonadIO m) =>
a
-> ((?self::a) => DropTargetAsyncDragEnterCallback)
-> m SignalHandlerId
onDropTargetAsyncDragEnter a
obj (?self::a) => DropTargetAsyncDragEnterCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> DropTargetAsyncDragEnterCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => DropTargetAsyncDragEnterCallback
DropTargetAsyncDragEnterCallback
cb
    let wrapped' :: C_DropTargetAsyncDragEnterCallback
wrapped' = (a -> DropTargetAsyncDragEnterCallback)
-> C_DropTargetAsyncDragEnterCallback
forall a.
GObject a =>
(a -> DropTargetAsyncDragEnterCallback)
-> C_DropTargetAsyncDragEnterCallback
wrap_DropTargetAsyncDragEnterCallback a -> DropTargetAsyncDragEnterCallback
wrapped
    FunPtr C_DropTargetAsyncDragEnterCallback
wrapped'' <- C_DropTargetAsyncDragEnterCallback
-> IO (FunPtr C_DropTargetAsyncDragEnterCallback)
mk_DropTargetAsyncDragEnterCallback C_DropTargetAsyncDragEnterCallback
wrapped'
    a
-> Text
-> FunPtr C_DropTargetAsyncDragEnterCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"drag-enter" FunPtr C_DropTargetAsyncDragEnterCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterDropTargetAsyncDragEnter :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDragEnterCallback) -> m SignalHandlerId
afterDropTargetAsyncDragEnter :: forall a (m :: * -> *).
(IsDropTargetAsync a, MonadIO m) =>
a
-> ((?self::a) => DropTargetAsyncDragEnterCallback)
-> m SignalHandlerId
afterDropTargetAsyncDragEnter a
obj (?self::a) => DropTargetAsyncDragEnterCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> DropTargetAsyncDragEnterCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => DropTargetAsyncDragEnterCallback
DropTargetAsyncDragEnterCallback
cb
    let wrapped' :: C_DropTargetAsyncDragEnterCallback
wrapped' = (a -> DropTargetAsyncDragEnterCallback)
-> C_DropTargetAsyncDragEnterCallback
forall a.
GObject a =>
(a -> DropTargetAsyncDragEnterCallback)
-> C_DropTargetAsyncDragEnterCallback
wrap_DropTargetAsyncDragEnterCallback a -> DropTargetAsyncDragEnterCallback
wrapped
    FunPtr C_DropTargetAsyncDragEnterCallback
wrapped'' <- C_DropTargetAsyncDragEnterCallback
-> IO (FunPtr C_DropTargetAsyncDragEnterCallback)
mk_DropTargetAsyncDragEnterCallback C_DropTargetAsyncDragEnterCallback
wrapped'
    a
-> Text
-> FunPtr C_DropTargetAsyncDragEnterCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"drag-enter" FunPtr C_DropTargetAsyncDragEnterCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data DropTargetAsyncDragEnterSignalInfo
instance SignalInfo DropTargetAsyncDragEnterSignalInfo where
    type HaskellCallbackType DropTargetAsyncDragEnterSignalInfo = DropTargetAsyncDragEnterCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_DropTargetAsyncDragEnterCallback cb
        cb'' <- mk_DropTargetAsyncDragEnterCallback cb'
        connectSignalFunPtr obj "drag-enter" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.DropTargetAsync::drag-enter"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-DropTargetAsync.html#g:signal:dragEnter"})
#endif
type DropTargetAsyncDragLeaveCallback =
    Gdk.Drop.Drop
    
    -> IO ()
type C_DropTargetAsyncDragLeaveCallback =
    Ptr DropTargetAsync ->                  
    Ptr Gdk.Drop.Drop ->
    Ptr () ->                               
    IO ()
foreign import ccall "wrapper"
    mk_DropTargetAsyncDragLeaveCallback :: C_DropTargetAsyncDragLeaveCallback -> IO (FunPtr C_DropTargetAsyncDragLeaveCallback)
wrap_DropTargetAsyncDragLeaveCallback :: 
    GObject a => (a -> DropTargetAsyncDragLeaveCallback) ->
    C_DropTargetAsyncDragLeaveCallback
wrap_DropTargetAsyncDragLeaveCallback :: forall a.
GObject a =>
(a -> DropTargetAsyncDragLeaveCallback)
-> C_DropTargetAsyncDragLeaveCallback
wrap_DropTargetAsyncDragLeaveCallback a -> DropTargetAsyncDragLeaveCallback
gi'cb Ptr DropTargetAsync
gi'selfPtr Ptr Drop
drop Ptr ()
_ = do
    Drop
drop' <- ((ManagedPtr Drop -> Drop) -> Ptr Drop -> IO Drop
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Drop -> Drop
Gdk.Drop.Drop) Ptr Drop
drop
    Ptr DropTargetAsync -> (DropTargetAsync -> IO ()) -> IO ()
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr DropTargetAsync
gi'selfPtr ((DropTargetAsync -> IO ()) -> IO ())
-> (DropTargetAsync -> IO ()) -> IO ()
forall a b. (a -> b) -> a -> b
$ \DropTargetAsync
gi'self -> a -> DropTargetAsyncDragLeaveCallback
gi'cb (DropTargetAsync -> a
forall a b. Coercible a b => a -> b
Coerce.coerce DropTargetAsync
gi'self)  Drop
drop'
onDropTargetAsyncDragLeave :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDragLeaveCallback) -> m SignalHandlerId
onDropTargetAsyncDragLeave :: forall a (m :: * -> *).
(IsDropTargetAsync a, MonadIO m) =>
a
-> ((?self::a) => DropTargetAsyncDragLeaveCallback)
-> m SignalHandlerId
onDropTargetAsyncDragLeave a
obj (?self::a) => DropTargetAsyncDragLeaveCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> DropTargetAsyncDragLeaveCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => DropTargetAsyncDragLeaveCallback
DropTargetAsyncDragLeaveCallback
cb
    let wrapped' :: C_DropTargetAsyncDragLeaveCallback
wrapped' = (a -> DropTargetAsyncDragLeaveCallback)
-> C_DropTargetAsyncDragLeaveCallback
forall a.
GObject a =>
(a -> DropTargetAsyncDragLeaveCallback)
-> C_DropTargetAsyncDragLeaveCallback
wrap_DropTargetAsyncDragLeaveCallback a -> DropTargetAsyncDragLeaveCallback
wrapped
    FunPtr C_DropTargetAsyncDragLeaveCallback
wrapped'' <- C_DropTargetAsyncDragLeaveCallback
-> IO (FunPtr C_DropTargetAsyncDragLeaveCallback)
mk_DropTargetAsyncDragLeaveCallback C_DropTargetAsyncDragLeaveCallback
wrapped'
    a
-> Text
-> FunPtr C_DropTargetAsyncDragLeaveCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"drag-leave" FunPtr C_DropTargetAsyncDragLeaveCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterDropTargetAsyncDragLeave :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDragLeaveCallback) -> m SignalHandlerId
afterDropTargetAsyncDragLeave :: forall a (m :: * -> *).
(IsDropTargetAsync a, MonadIO m) =>
a
-> ((?self::a) => DropTargetAsyncDragLeaveCallback)
-> m SignalHandlerId
afterDropTargetAsyncDragLeave a
obj (?self::a) => DropTargetAsyncDragLeaveCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> DropTargetAsyncDragLeaveCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => DropTargetAsyncDragLeaveCallback
DropTargetAsyncDragLeaveCallback
cb
    let wrapped' :: C_DropTargetAsyncDragLeaveCallback
wrapped' = (a -> DropTargetAsyncDragLeaveCallback)
-> C_DropTargetAsyncDragLeaveCallback
forall a.
GObject a =>
(a -> DropTargetAsyncDragLeaveCallback)
-> C_DropTargetAsyncDragLeaveCallback
wrap_DropTargetAsyncDragLeaveCallback a -> DropTargetAsyncDragLeaveCallback
wrapped
    FunPtr C_DropTargetAsyncDragLeaveCallback
wrapped'' <- C_DropTargetAsyncDragLeaveCallback
-> IO (FunPtr C_DropTargetAsyncDragLeaveCallback)
mk_DropTargetAsyncDragLeaveCallback C_DropTargetAsyncDragLeaveCallback
wrapped'
    a
-> Text
-> FunPtr C_DropTargetAsyncDragLeaveCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"drag-leave" FunPtr C_DropTargetAsyncDragLeaveCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data DropTargetAsyncDragLeaveSignalInfo
instance SignalInfo DropTargetAsyncDragLeaveSignalInfo where
    type HaskellCallbackType DropTargetAsyncDragLeaveSignalInfo = DropTargetAsyncDragLeaveCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_DropTargetAsyncDragLeaveCallback cb
        cb'' <- mk_DropTargetAsyncDragLeaveCallback cb'
        connectSignalFunPtr obj "drag-leave" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.DropTargetAsync::drag-leave"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-DropTargetAsync.html#g:signal:dragLeave"})
#endif
type DropTargetAsyncDragMotionCallback =
    Gdk.Drop.Drop
    
    -> Double
    
    -> Double
    
    -> IO [Gdk.Flags.DragAction]
    
type C_DropTargetAsyncDragMotionCallback =
    Ptr DropTargetAsync ->                  
    Ptr Gdk.Drop.Drop ->
    CDouble ->
    CDouble ->
    Ptr () ->                               
    IO CUInt
foreign import ccall "wrapper"
    mk_DropTargetAsyncDragMotionCallback :: C_DropTargetAsyncDragMotionCallback -> IO (FunPtr C_DropTargetAsyncDragMotionCallback)
wrap_DropTargetAsyncDragMotionCallback :: 
    GObject a => (a -> DropTargetAsyncDragMotionCallback) ->
    C_DropTargetAsyncDragMotionCallback
wrap_DropTargetAsyncDragMotionCallback :: forall a.
GObject a =>
(a -> DropTargetAsyncDragEnterCallback)
-> C_DropTargetAsyncDragEnterCallback
wrap_DropTargetAsyncDragMotionCallback a -> DropTargetAsyncDragEnterCallback
gi'cb Ptr DropTargetAsync
gi'selfPtr Ptr Drop
drop CDouble
x CDouble
y Ptr ()
_ = do
    Drop
drop' <- ((ManagedPtr Drop -> Drop) -> Ptr Drop -> IO Drop
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Drop -> Drop
Gdk.Drop.Drop) Ptr Drop
drop
    let x' :: Double
x' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
x
    let y' :: Double
y' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
y
    [DragAction]
result <- Ptr DropTargetAsync
-> (DropTargetAsync -> IO [DragAction]) -> IO [DragAction]
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr DropTargetAsync
gi'selfPtr ((DropTargetAsync -> IO [DragAction]) -> IO [DragAction])
-> (DropTargetAsync -> IO [DragAction]) -> IO [DragAction]
forall a b. (a -> b) -> a -> b
$ \DropTargetAsync
gi'self -> a -> DropTargetAsyncDragEnterCallback
gi'cb (DropTargetAsync -> a
forall a b. Coercible a b => a -> b
Coerce.coerce DropTargetAsync
gi'self)  Drop
drop' Double
x' Double
y'
    let result' :: CUInt
result' = [DragAction] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [DragAction]
result
    CUInt -> IO CUInt
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CUInt
result'
onDropTargetAsyncDragMotion :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDragMotionCallback) -> m SignalHandlerId
onDropTargetAsyncDragMotion :: forall a (m :: * -> *).
(IsDropTargetAsync a, MonadIO m) =>
a
-> ((?self::a) => DropTargetAsyncDragEnterCallback)
-> m SignalHandlerId
onDropTargetAsyncDragMotion a
obj (?self::a) => DropTargetAsyncDragEnterCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> DropTargetAsyncDragEnterCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => DropTargetAsyncDragEnterCallback
DropTargetAsyncDragEnterCallback
cb
    let wrapped' :: C_DropTargetAsyncDragEnterCallback
wrapped' = (a -> DropTargetAsyncDragEnterCallback)
-> C_DropTargetAsyncDragEnterCallback
forall a.
GObject a =>
(a -> DropTargetAsyncDragEnterCallback)
-> C_DropTargetAsyncDragEnterCallback
wrap_DropTargetAsyncDragMotionCallback a -> DropTargetAsyncDragEnterCallback
wrapped
    FunPtr C_DropTargetAsyncDragEnterCallback
wrapped'' <- C_DropTargetAsyncDragEnterCallback
-> IO (FunPtr C_DropTargetAsyncDragEnterCallback)
mk_DropTargetAsyncDragMotionCallback C_DropTargetAsyncDragEnterCallback
wrapped'
    a
-> Text
-> FunPtr C_DropTargetAsyncDragEnterCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"drag-motion" FunPtr C_DropTargetAsyncDragEnterCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterDropTargetAsyncDragMotion :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDragMotionCallback) -> m SignalHandlerId
afterDropTargetAsyncDragMotion :: forall a (m :: * -> *).
(IsDropTargetAsync a, MonadIO m) =>
a
-> ((?self::a) => DropTargetAsyncDragEnterCallback)
-> m SignalHandlerId
afterDropTargetAsyncDragMotion a
obj (?self::a) => DropTargetAsyncDragEnterCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> DropTargetAsyncDragEnterCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => DropTargetAsyncDragEnterCallback
DropTargetAsyncDragEnterCallback
cb
    let wrapped' :: C_DropTargetAsyncDragEnterCallback
wrapped' = (a -> DropTargetAsyncDragEnterCallback)
-> C_DropTargetAsyncDragEnterCallback
forall a.
GObject a =>
(a -> DropTargetAsyncDragEnterCallback)
-> C_DropTargetAsyncDragEnterCallback
wrap_DropTargetAsyncDragMotionCallback a -> DropTargetAsyncDragEnterCallback
wrapped
    FunPtr C_DropTargetAsyncDragEnterCallback
wrapped'' <- C_DropTargetAsyncDragEnterCallback
-> IO (FunPtr C_DropTargetAsyncDragEnterCallback)
mk_DropTargetAsyncDragMotionCallback C_DropTargetAsyncDragEnterCallback
wrapped'
    a
-> Text
-> FunPtr C_DropTargetAsyncDragEnterCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"drag-motion" FunPtr C_DropTargetAsyncDragEnterCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data DropTargetAsyncDragMotionSignalInfo
instance SignalInfo DropTargetAsyncDragMotionSignalInfo where
    type HaskellCallbackType DropTargetAsyncDragMotionSignalInfo = DropTargetAsyncDragMotionCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_DropTargetAsyncDragMotionCallback cb
        cb'' <- mk_DropTargetAsyncDragMotionCallback cb'
        connectSignalFunPtr obj "drag-motion" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.DropTargetAsync::drag-motion"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-DropTargetAsync.html#g:signal:dragMotion"})
#endif
type DropTargetAsyncDropCallback =
    Gdk.Drop.Drop
    
    -> Double
    
    -> Double
    
    -> IO Bool
    
type C_DropTargetAsyncDropCallback =
    Ptr DropTargetAsync ->                  
    Ptr Gdk.Drop.Drop ->
    CDouble ->
    CDouble ->
    Ptr () ->                               
    IO CInt
foreign import ccall "wrapper"
    mk_DropTargetAsyncDropCallback :: C_DropTargetAsyncDropCallback -> IO (FunPtr C_DropTargetAsyncDropCallback)
wrap_DropTargetAsyncDropCallback :: 
    GObject a => (a -> DropTargetAsyncDropCallback) ->
    C_DropTargetAsyncDropCallback
wrap_DropTargetAsyncDropCallback :: forall a.
GObject a =>
(a -> DropTargetAsyncDropCallback) -> C_DropTargetAsyncDropCallback
wrap_DropTargetAsyncDropCallback a -> DropTargetAsyncDropCallback
gi'cb Ptr DropTargetAsync
gi'selfPtr Ptr Drop
drop CDouble
x CDouble
y Ptr ()
_ = do
    Drop
drop' <- ((ManagedPtr Drop -> Drop) -> Ptr Drop -> IO Drop
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Drop -> Drop
Gdk.Drop.Drop) Ptr Drop
drop
    let x' :: Double
x' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
x
    let y' :: Double
y' = CDouble -> Double
forall a b. (Real a, Fractional b) => a -> b
realToFrac CDouble
y
    Bool
result <- Ptr DropTargetAsync -> (DropTargetAsync -> IO Bool) -> IO Bool
forall a b.
(HasCallStack, ManagedPtrNewtype a) =>
Ptr a -> (a -> IO b) -> IO b
B.ManagedPtr.withTransient Ptr DropTargetAsync
gi'selfPtr ((DropTargetAsync -> IO Bool) -> IO Bool)
-> (DropTargetAsync -> IO Bool) -> IO Bool
forall a b. (a -> b) -> a -> b
$ \DropTargetAsync
gi'self -> a -> DropTargetAsyncDropCallback
gi'cb (DropTargetAsync -> a
forall a b. Coercible a b => a -> b
Coerce.coerce DropTargetAsync
gi'self)  Drop
drop' Double
x' Double
y'
    let result' :: CInt
result' = (Int -> CInt
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> CInt) -> (Bool -> Int) -> Bool -> CInt
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> Int
forall a. Enum a => a -> Int
fromEnum) Bool
result
    CInt -> IO CInt
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return CInt
result'
onDropTargetAsyncDrop :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDropCallback) -> m SignalHandlerId
onDropTargetAsyncDrop :: forall a (m :: * -> *).
(IsDropTargetAsync a, MonadIO m) =>
a
-> ((?self::a) => DropTargetAsyncDropCallback) -> m SignalHandlerId
onDropTargetAsyncDrop a
obj (?self::a) => DropTargetAsyncDropCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> DropTargetAsyncDropCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => DropTargetAsyncDropCallback
DropTargetAsyncDropCallback
cb
    let wrapped' :: C_DropTargetAsyncDropCallback
wrapped' = (a -> DropTargetAsyncDropCallback) -> C_DropTargetAsyncDropCallback
forall a.
GObject a =>
(a -> DropTargetAsyncDropCallback) -> C_DropTargetAsyncDropCallback
wrap_DropTargetAsyncDropCallback a -> DropTargetAsyncDropCallback
wrapped
    FunPtr C_DropTargetAsyncDropCallback
wrapped'' <- C_DropTargetAsyncDropCallback
-> IO (FunPtr C_DropTargetAsyncDropCallback)
mk_DropTargetAsyncDropCallback C_DropTargetAsyncDropCallback
wrapped'
    a
-> Text
-> FunPtr C_DropTargetAsyncDropCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"drop" FunPtr C_DropTargetAsyncDropCallback
wrapped'' SignalConnectMode
SignalConnectBefore Maybe Text
forall a. Maybe a
Nothing
afterDropTargetAsyncDrop :: (IsDropTargetAsync a, MonadIO m) => a -> ((?self :: a) => DropTargetAsyncDropCallback) -> m SignalHandlerId
afterDropTargetAsyncDrop :: forall a (m :: * -> *).
(IsDropTargetAsync a, MonadIO m) =>
a
-> ((?self::a) => DropTargetAsyncDropCallback) -> m SignalHandlerId
afterDropTargetAsyncDrop a
obj (?self::a) => DropTargetAsyncDropCallback
cb = IO SignalHandlerId -> m SignalHandlerId
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO SignalHandlerId -> m SignalHandlerId)
-> IO SignalHandlerId -> m SignalHandlerId
forall a b. (a -> b) -> a -> b
$ do
    let wrapped :: a -> DropTargetAsyncDropCallback
wrapped a
self = let ?self = a
?self::a
self in (?self::a) => DropTargetAsyncDropCallback
DropTargetAsyncDropCallback
cb
    let wrapped' :: C_DropTargetAsyncDropCallback
wrapped' = (a -> DropTargetAsyncDropCallback) -> C_DropTargetAsyncDropCallback
forall a.
GObject a =>
(a -> DropTargetAsyncDropCallback) -> C_DropTargetAsyncDropCallback
wrap_DropTargetAsyncDropCallback a -> DropTargetAsyncDropCallback
wrapped
    FunPtr C_DropTargetAsyncDropCallback
wrapped'' <- C_DropTargetAsyncDropCallback
-> IO (FunPtr C_DropTargetAsyncDropCallback)
mk_DropTargetAsyncDropCallback C_DropTargetAsyncDropCallback
wrapped'
    a
-> Text
-> FunPtr C_DropTargetAsyncDropCallback
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
forall o a.
GObject o =>
o
-> Text
-> FunPtr a
-> SignalConnectMode
-> Maybe Text
-> IO SignalHandlerId
connectSignalFunPtr a
obj Text
"drop" FunPtr C_DropTargetAsyncDropCallback
wrapped'' SignalConnectMode
SignalConnectAfter Maybe Text
forall a. Maybe a
Nothing
#if defined(ENABLE_OVERLOADING)
data DropTargetAsyncDropSignalInfo
instance SignalInfo DropTargetAsyncDropSignalInfo where
    type HaskellCallbackType DropTargetAsyncDropSignalInfo = DropTargetAsyncDropCallback
    connectSignal obj cb connectMode detail = do
        let cb' = wrap_DropTargetAsyncDropCallback cb
        cb'' <- mk_DropTargetAsyncDropCallback cb'
        connectSignalFunPtr obj "drop" cb'' connectMode detail
    dbgSignalInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.DropTargetAsync::drop"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-DropTargetAsync.html#g:signal:drop"})
#endif
   
   
   
getDropTargetAsyncActions :: (MonadIO m, IsDropTargetAsync o) => o -> m [Gdk.Flags.DragAction]
getDropTargetAsyncActions :: forall (m :: * -> *) o.
(MonadIO m, IsDropTargetAsync o) =>
o -> m [DragAction]
getDropTargetAsyncActions o
obj = IO [DragAction] -> m [DragAction]
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO [DragAction] -> m [DragAction])
-> IO [DragAction] -> m [DragAction]
forall a b. (a -> b) -> a -> b
$ o -> String -> IO [DragAction]
forall a b.
(GObject a, IsGFlag b, BoxedFlags b) =>
a -> String -> IO [b]
B.Properties.getObjectPropertyFlags o
obj String
"actions"
setDropTargetAsyncActions :: (MonadIO m, IsDropTargetAsync o) => o -> [Gdk.Flags.DragAction] -> m ()
setDropTargetAsyncActions :: forall (m :: * -> *) o.
(MonadIO m, IsDropTargetAsync o) =>
o -> [DragAction] -> m ()
setDropTargetAsyncActions o
obj [DragAction]
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> [DragAction] -> IO ()
forall a b.
(IsGFlag b, BoxedFlags b, GObject a) =>
a -> String -> [b] -> IO ()
B.Properties.setObjectPropertyFlags o
obj String
"actions" [DragAction]
val
constructDropTargetAsyncActions :: (IsDropTargetAsync o, MIO.MonadIO m) => [Gdk.Flags.DragAction] -> m (GValueConstruct o)
constructDropTargetAsyncActions :: forall o (m :: * -> *).
(IsDropTargetAsync o, MonadIO m) =>
[DragAction] -> m (GValueConstruct o)
constructDropTargetAsyncActions [DragAction]
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> [DragAction] -> IO (GValueConstruct o)
forall a o.
(IsGFlag a, BoxedFlags a) =>
String -> [a] -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyFlags String
"actions" [DragAction]
val
#if defined(ENABLE_OVERLOADING)
data DropTargetAsyncActionsPropertyInfo
instance AttrInfo DropTargetAsyncActionsPropertyInfo where
    type AttrAllowedOps DropTargetAsyncActionsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
    type AttrBaseTypeConstraint DropTargetAsyncActionsPropertyInfo = IsDropTargetAsync
    type AttrSetTypeConstraint DropTargetAsyncActionsPropertyInfo = (~) [Gdk.Flags.DragAction]
    type AttrTransferTypeConstraint DropTargetAsyncActionsPropertyInfo = (~) [Gdk.Flags.DragAction]
    type AttrTransferType DropTargetAsyncActionsPropertyInfo = [Gdk.Flags.DragAction]
    type AttrGetType DropTargetAsyncActionsPropertyInfo = [Gdk.Flags.DragAction]
    type AttrLabel DropTargetAsyncActionsPropertyInfo = "actions"
    type AttrOrigin DropTargetAsyncActionsPropertyInfo = DropTargetAsync
    attrGet = getDropTargetAsyncActions
    attrSet = setDropTargetAsyncActions
    attrTransfer _ v = do
        return v
    attrConstruct = constructDropTargetAsyncActions
    attrClear = undefined
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.DropTargetAsync.actions"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-DropTargetAsync.html#g:attr:actions"
        })
#endif
   
   
   
getDropTargetAsyncFormats :: (MonadIO m, IsDropTargetAsync o) => o -> m (Maybe Gdk.ContentFormats.ContentFormats)
getDropTargetAsyncFormats :: forall (m :: * -> *) o.
(MonadIO m, IsDropTargetAsync o) =>
o -> m (Maybe ContentFormats)
getDropTargetAsyncFormats o
obj = IO (Maybe ContentFormats) -> m (Maybe ContentFormats)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (Maybe ContentFormats) -> m (Maybe ContentFormats))
-> IO (Maybe ContentFormats) -> m (Maybe ContentFormats)
forall a b. (a -> b) -> a -> b
$ o
-> String
-> (ManagedPtr ContentFormats -> ContentFormats)
-> IO (Maybe ContentFormats)
forall a b.
(GObject a, GBoxed b) =>
a -> String -> (ManagedPtr b -> b) -> IO (Maybe b)
B.Properties.getObjectPropertyBoxed o
obj String
"formats" ManagedPtr ContentFormats -> ContentFormats
Gdk.ContentFormats.ContentFormats
setDropTargetAsyncFormats :: (MonadIO m, IsDropTargetAsync o) => o -> Gdk.ContentFormats.ContentFormats -> m ()
setDropTargetAsyncFormats :: forall (m :: * -> *) o.
(MonadIO m, IsDropTargetAsync o) =>
o -> ContentFormats -> m ()
setDropTargetAsyncFormats o
obj ContentFormats
val = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    o -> String -> Maybe ContentFormats -> IO ()
forall a b.
(GObject a, GBoxed b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyBoxed o
obj String
"formats" (ContentFormats -> Maybe ContentFormats
forall a. a -> Maybe a
Just ContentFormats
val)
constructDropTargetAsyncFormats :: (IsDropTargetAsync o, MIO.MonadIO m) => Gdk.ContentFormats.ContentFormats -> m (GValueConstruct o)
constructDropTargetAsyncFormats :: forall o (m :: * -> *).
(IsDropTargetAsync o, MonadIO m) =>
ContentFormats -> m (GValueConstruct o)
constructDropTargetAsyncFormats ContentFormats
val = IO (GValueConstruct o) -> m (GValueConstruct o)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> m (GValueConstruct o))
-> IO (GValueConstruct o) -> m (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ do
    IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a. IO a -> IO a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO (GValueConstruct o) -> IO (GValueConstruct o))
-> IO (GValueConstruct o) -> IO (GValueConstruct o)
forall a b. (a -> b) -> a -> b
$ String -> Maybe ContentFormats -> IO (GValueConstruct o)
forall a o. GBoxed a => String -> Maybe a -> IO (GValueConstruct o)
B.Properties.constructObjectPropertyBoxed String
"formats" (ContentFormats -> Maybe ContentFormats
forall a. a -> Maybe a
P.Just ContentFormats
val)
clearDropTargetAsyncFormats :: (MonadIO m, IsDropTargetAsync o) => o -> m ()
clearDropTargetAsyncFormats :: forall (m :: * -> *) o.
(MonadIO m, IsDropTargetAsync o) =>
o -> m ()
clearDropTargetAsyncFormats o
obj = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ o -> String -> Maybe ContentFormats -> IO ()
forall a b.
(GObject a, GBoxed b) =>
a -> String -> Maybe b -> IO ()
B.Properties.setObjectPropertyBoxed o
obj String
"formats" (Maybe ContentFormats
forall a. Maybe a
Nothing :: Maybe Gdk.ContentFormats.ContentFormats)
#if defined(ENABLE_OVERLOADING)
data DropTargetAsyncFormatsPropertyInfo
instance AttrInfo DropTargetAsyncFormatsPropertyInfo where
    type AttrAllowedOps DropTargetAsyncFormatsPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet, 'AttrClear]
    type AttrBaseTypeConstraint DropTargetAsyncFormatsPropertyInfo = IsDropTargetAsync
    type AttrSetTypeConstraint DropTargetAsyncFormatsPropertyInfo = (~) Gdk.ContentFormats.ContentFormats
    type AttrTransferTypeConstraint DropTargetAsyncFormatsPropertyInfo = (~) Gdk.ContentFormats.ContentFormats
    type AttrTransferType DropTargetAsyncFormatsPropertyInfo = Gdk.ContentFormats.ContentFormats
    type AttrGetType DropTargetAsyncFormatsPropertyInfo = (Maybe Gdk.ContentFormats.ContentFormats)
    type AttrLabel DropTargetAsyncFormatsPropertyInfo = "formats"
    type AttrOrigin DropTargetAsyncFormatsPropertyInfo = DropTargetAsync
    attrGet = getDropTargetAsyncFormats
    attrSet = setDropTargetAsyncFormats
    attrTransfer _ v = do
        return v
    attrConstruct = constructDropTargetAsyncFormats
    attrClear = clearDropTargetAsyncFormats
    dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.DropTargetAsync.formats"
        , O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-DropTargetAsync.html#g:attr:formats"
        })
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList DropTargetAsync
type instance O.AttributeList DropTargetAsync = DropTargetAsyncAttributeList
type DropTargetAsyncAttributeList = ('[ '("actions", DropTargetAsyncActionsPropertyInfo), '("formats", DropTargetAsyncFormatsPropertyInfo), '("name", Gtk.EventController.EventControllerNamePropertyInfo), '("propagationLimit", Gtk.EventController.EventControllerPropagationLimitPropertyInfo), '("propagationPhase", Gtk.EventController.EventControllerPropagationPhasePropertyInfo), '("widget", Gtk.EventController.EventControllerWidgetPropertyInfo)] :: [(Symbol, *)])
#endif
#if defined(ENABLE_OVERLOADING)
dropTargetAsyncActions :: AttrLabelProxy "actions"
dropTargetAsyncActions = AttrLabelProxy
dropTargetAsyncFormats :: AttrLabelProxy "formats"
dropTargetAsyncFormats = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
type instance O.SignalList DropTargetAsync = DropTargetAsyncSignalList
type DropTargetAsyncSignalList = ('[ '("accept", DropTargetAsyncAcceptSignalInfo), '("dragEnter", DropTargetAsyncDragEnterSignalInfo), '("dragLeave", DropTargetAsyncDragLeaveSignalInfo), '("dragMotion", DropTargetAsyncDragMotionSignalInfo), '("drop", DropTargetAsyncDropSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)])
#endif
foreign import ccall "gtk_drop_target_async_new" gtk_drop_target_async_new :: 
    Ptr Gdk.ContentFormats.ContentFormats -> 
    CUInt ->                                
    IO (Ptr DropTargetAsync)
dropTargetAsyncNew ::
    (B.CallStack.HasCallStack, MonadIO m) =>
    Maybe (Gdk.ContentFormats.ContentFormats)
    
    -> [Gdk.Flags.DragAction]
    
    -> m DropTargetAsync
    
dropTargetAsyncNew :: forall (m :: * -> *).
(HasCallStack, MonadIO m) =>
Maybe ContentFormats -> [DragAction] -> m DropTargetAsync
dropTargetAsyncNew Maybe ContentFormats
formats [DragAction]
actions = IO DropTargetAsync -> m DropTargetAsync
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO DropTargetAsync -> m DropTargetAsync)
-> IO DropTargetAsync -> m DropTargetAsync
forall a b. (a -> b) -> a -> b
$ do
    Ptr ContentFormats
maybeFormats <- case Maybe ContentFormats
formats of
        Maybe ContentFormats
Nothing -> Ptr ContentFormats -> IO (Ptr ContentFormats)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr ContentFormats
forall a. Ptr a
nullPtr
        Just ContentFormats
jFormats -> do
            Ptr ContentFormats
jFormats' <- ContentFormats -> IO (Ptr ContentFormats)
forall a. (HasCallStack, GBoxed a) => a -> IO (Ptr a)
B.ManagedPtr.disownBoxed ContentFormats
jFormats
            Ptr ContentFormats -> IO (Ptr ContentFormats)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr ContentFormats
jFormats'
    let actions' :: CUInt
actions' = [DragAction] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [DragAction]
actions
    Ptr DropTargetAsync
result <- Ptr ContentFormats -> CUInt -> IO (Ptr DropTargetAsync)
gtk_drop_target_async_new Ptr ContentFormats
maybeFormats CUInt
actions'
    Text -> Ptr DropTargetAsync -> IO ()
forall a. HasCallStack => Text -> Ptr a -> IO ()
checkUnexpectedReturnNULL Text
"dropTargetAsyncNew" Ptr DropTargetAsync
result
    DropTargetAsync
result' <- ((ManagedPtr DropTargetAsync -> DropTargetAsync)
-> Ptr DropTargetAsync -> IO DropTargetAsync
forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
wrapObject ManagedPtr DropTargetAsync -> DropTargetAsync
DropTargetAsync) Ptr DropTargetAsync
result
    Maybe ContentFormats -> (ContentFormats -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe ContentFormats
formats ContentFormats -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    DropTargetAsync -> IO DropTargetAsync
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return DropTargetAsync
result'
#if defined(ENABLE_OVERLOADING)
#endif
foreign import ccall "gtk_drop_target_async_get_actions" gtk_drop_target_async_get_actions :: 
    Ptr DropTargetAsync ->                  
    IO CUInt
dropTargetAsyncGetActions ::
    (B.CallStack.HasCallStack, MonadIO m, IsDropTargetAsync a) =>
    a
    
    -> m [Gdk.Flags.DragAction]
    
dropTargetAsyncGetActions :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDropTargetAsync a) =>
a -> m [DragAction]
dropTargetAsyncGetActions a
self = IO [DragAction] -> m [DragAction]
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [DragAction] -> m [DragAction])
-> IO [DragAction] -> m [DragAction]
forall a b. (a -> b) -> a -> b
$ do
    Ptr DropTargetAsync
self' <- a -> IO (Ptr DropTargetAsync)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    CUInt
result <- Ptr DropTargetAsync -> IO CUInt
gtk_drop_target_async_get_actions Ptr DropTargetAsync
self'
    let result' :: [DragAction]
result' = CUInt -> [DragAction]
forall a b. (Storable a, Integral a, Bits a, IsGFlag b) => a -> [b]
wordToGFlags CUInt
result
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    [DragAction] -> IO [DragAction]
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return [DragAction]
result'
#if defined(ENABLE_OVERLOADING)
data DropTargetAsyncGetActionsMethodInfo
instance (signature ~ (m [Gdk.Flags.DragAction]), MonadIO m, IsDropTargetAsync a) => O.OverloadedMethod DropTargetAsyncGetActionsMethodInfo a signature where
    overloadedMethod = dropTargetAsyncGetActions
instance O.OverloadedMethodInfo DropTargetAsyncGetActionsMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.DropTargetAsync.dropTargetAsyncGetActions",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-DropTargetAsync.html#v:dropTargetAsyncGetActions"
        })
#endif
foreign import ccall "gtk_drop_target_async_get_formats" gtk_drop_target_async_get_formats :: 
    Ptr DropTargetAsync ->                  
    IO (Ptr Gdk.ContentFormats.ContentFormats)
dropTargetAsyncGetFormats ::
    (B.CallStack.HasCallStack, MonadIO m, IsDropTargetAsync a) =>
    a
    
    -> m (Maybe Gdk.ContentFormats.ContentFormats)
    
dropTargetAsyncGetFormats :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDropTargetAsync a) =>
a -> m (Maybe ContentFormats)
dropTargetAsyncGetFormats a
self = IO (Maybe ContentFormats) -> m (Maybe ContentFormats)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe ContentFormats) -> m (Maybe ContentFormats))
-> IO (Maybe ContentFormats) -> m (Maybe ContentFormats)
forall a b. (a -> b) -> a -> b
$ do
    Ptr DropTargetAsync
self' <- a -> IO (Ptr DropTargetAsync)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr ContentFormats
result <- Ptr DropTargetAsync -> IO (Ptr ContentFormats)
gtk_drop_target_async_get_formats Ptr DropTargetAsync
self'
    Maybe ContentFormats
maybeResult <- Ptr ContentFormats
-> (Ptr ContentFormats -> IO ContentFormats)
-> IO (Maybe ContentFormats)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr ContentFormats
result ((Ptr ContentFormats -> IO ContentFormats)
 -> IO (Maybe ContentFormats))
-> (Ptr ContentFormats -> IO ContentFormats)
-> IO (Maybe ContentFormats)
forall a b. (a -> b) -> a -> b
$ \Ptr ContentFormats
result' -> do
        ContentFormats
result'' <- ((ManagedPtr ContentFormats -> ContentFormats)
-> Ptr ContentFormats -> IO ContentFormats
forall a.
(HasCallStack, GBoxed a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapBoxed ManagedPtr ContentFormats -> ContentFormats
Gdk.ContentFormats.ContentFormats) Ptr ContentFormats
result'
        ContentFormats -> IO ContentFormats
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ContentFormats
result''
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Maybe ContentFormats -> IO (Maybe ContentFormats)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe ContentFormats
maybeResult
#if defined(ENABLE_OVERLOADING)
data DropTargetAsyncGetFormatsMethodInfo
instance (signature ~ (m (Maybe Gdk.ContentFormats.ContentFormats)), MonadIO m, IsDropTargetAsync a) => O.OverloadedMethod DropTargetAsyncGetFormatsMethodInfo a signature where
    overloadedMethod = dropTargetAsyncGetFormats
instance O.OverloadedMethodInfo DropTargetAsyncGetFormatsMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.DropTargetAsync.dropTargetAsyncGetFormats",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-DropTargetAsync.html#v:dropTargetAsyncGetFormats"
        })
#endif
foreign import ccall "gtk_drop_target_async_reject_drop" gtk_drop_target_async_reject_drop :: 
    Ptr DropTargetAsync ->                  
    Ptr Gdk.Drop.Drop ->                    
    IO ()
dropTargetAsyncRejectDrop ::
    (B.CallStack.HasCallStack, MonadIO m, IsDropTargetAsync a, Gdk.Drop.IsDrop b) =>
    a
    
    -> b
    
    -> m ()
dropTargetAsyncRejectDrop :: forall (m :: * -> *) a b.
(HasCallStack, MonadIO m, IsDropTargetAsync a, IsDrop b) =>
a -> b -> m ()
dropTargetAsyncRejectDrop a
self b
drop = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr DropTargetAsync
self' <- a -> IO (Ptr DropTargetAsync)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr Drop
drop' <- b -> IO (Ptr Drop)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr b
drop
    Ptr DropTargetAsync -> Ptr Drop -> IO ()
gtk_drop_target_async_reject_drop Ptr DropTargetAsync
self' Ptr Drop
drop'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    b -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr b
drop
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data DropTargetAsyncRejectDropMethodInfo
instance (signature ~ (b -> m ()), MonadIO m, IsDropTargetAsync a, Gdk.Drop.IsDrop b) => O.OverloadedMethod DropTargetAsyncRejectDropMethodInfo a signature where
    overloadedMethod = dropTargetAsyncRejectDrop
instance O.OverloadedMethodInfo DropTargetAsyncRejectDropMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.DropTargetAsync.dropTargetAsyncRejectDrop",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-DropTargetAsync.html#v:dropTargetAsyncRejectDrop"
        })
#endif
foreign import ccall "gtk_drop_target_async_set_actions" gtk_drop_target_async_set_actions :: 
    Ptr DropTargetAsync ->                  
    CUInt ->                                
    IO ()
dropTargetAsyncSetActions ::
    (B.CallStack.HasCallStack, MonadIO m, IsDropTargetAsync a) =>
    a
    
    -> [Gdk.Flags.DragAction]
    
    -> m ()
dropTargetAsyncSetActions :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDropTargetAsync a) =>
a -> [DragAction] -> m ()
dropTargetAsyncSetActions a
self [DragAction]
actions = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr DropTargetAsync
self' <- a -> IO (Ptr DropTargetAsync)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    let actions' :: CUInt
actions' = [DragAction] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [DragAction]
actions
    Ptr DropTargetAsync -> CUInt -> IO ()
gtk_drop_target_async_set_actions Ptr DropTargetAsync
self' CUInt
actions'
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data DropTargetAsyncSetActionsMethodInfo
instance (signature ~ ([Gdk.Flags.DragAction] -> m ()), MonadIO m, IsDropTargetAsync a) => O.OverloadedMethod DropTargetAsyncSetActionsMethodInfo a signature where
    overloadedMethod = dropTargetAsyncSetActions
instance O.OverloadedMethodInfo DropTargetAsyncSetActionsMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.DropTargetAsync.dropTargetAsyncSetActions",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-DropTargetAsync.html#v:dropTargetAsyncSetActions"
        })
#endif
foreign import ccall "gtk_drop_target_async_set_formats" gtk_drop_target_async_set_formats :: 
    Ptr DropTargetAsync ->                  
    Ptr Gdk.ContentFormats.ContentFormats -> 
    IO ()
dropTargetAsyncSetFormats ::
    (B.CallStack.HasCallStack, MonadIO m, IsDropTargetAsync a) =>
    a
    
    -> Maybe (Gdk.ContentFormats.ContentFormats)
    
    -> m ()
dropTargetAsyncSetFormats :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDropTargetAsync a) =>
a -> Maybe ContentFormats -> m ()
dropTargetAsyncSetFormats a
self Maybe ContentFormats
formats = IO () -> m ()
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO () -> m ()) -> IO () -> m ()
forall a b. (a -> b) -> a -> b
$ do
    Ptr DropTargetAsync
self' <- a -> IO (Ptr DropTargetAsync)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
self
    Ptr ContentFormats
maybeFormats <- case Maybe ContentFormats
formats of
        Maybe ContentFormats
Nothing -> Ptr ContentFormats -> IO (Ptr ContentFormats)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr ContentFormats
forall a. Ptr a
nullPtr
        Just ContentFormats
jFormats -> do
            Ptr ContentFormats
jFormats' <- ContentFormats -> IO (Ptr ContentFormats)
forall a. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr a)
unsafeManagedPtrGetPtr ContentFormats
jFormats
            Ptr ContentFormats -> IO (Ptr ContentFormats)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Ptr ContentFormats
jFormats'
    Ptr DropTargetAsync -> Ptr ContentFormats -> IO ()
gtk_drop_target_async_set_formats Ptr DropTargetAsync
self' Ptr ContentFormats
maybeFormats
    a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
self
    Maybe ContentFormats -> (ContentFormats -> IO ()) -> IO ()
forall (m :: * -> *) a. Monad m => Maybe a -> (a -> m ()) -> m ()
whenJust Maybe ContentFormats
formats ContentFormats -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr
    () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
#if defined(ENABLE_OVERLOADING)
data DropTargetAsyncSetFormatsMethodInfo
instance (signature ~ (Maybe (Gdk.ContentFormats.ContentFormats) -> m ()), MonadIO m, IsDropTargetAsync a) => O.OverloadedMethod DropTargetAsyncSetFormatsMethodInfo a signature where
    overloadedMethod = dropTargetAsyncSetFormats
instance O.OverloadedMethodInfo DropTargetAsyncSetFormatsMethodInfo a where
    overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
        O.resolvedSymbolName = "GI.Gtk.Objects.DropTargetAsync.dropTargetAsyncSetFormats",
        O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gtk-4.0.6/docs/GI-Gtk-Objects-DropTargetAsync.html#v:dropTargetAsyncSetFormats"
        })
#endif