{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gdk.Objects.DNDEvent
(
DNDEvent(..) ,
IsDNDEvent ,
toDNDEvent ,
#if defined(ENABLE_OVERLOADING)
ResolveDNDEventMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
DNDEventGetDropMethodInfo ,
#endif
dNDEventGetDrop ,
) 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 {-# SOURCE #-} qualified GI.Gdk.Objects.Drop as Gdk.Drop
import {-# SOURCE #-} qualified GI.Gdk.Objects.Event as Gdk.Event
newtype DNDEvent = DNDEvent (SP.ManagedPtr DNDEvent)
deriving (DNDEvent -> DNDEvent -> Bool
(DNDEvent -> DNDEvent -> Bool)
-> (DNDEvent -> DNDEvent -> Bool) -> Eq DNDEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DNDEvent -> DNDEvent -> Bool
== :: DNDEvent -> DNDEvent -> Bool
$c/= :: DNDEvent -> DNDEvent -> Bool
/= :: DNDEvent -> DNDEvent -> Bool
Eq)
instance SP.ManagedPtrNewtype DNDEvent where
toManagedPtr :: DNDEvent -> ManagedPtr DNDEvent
toManagedPtr (DNDEvent ManagedPtr DNDEvent
p) = ManagedPtr DNDEvent
p
foreign import ccall "gdk_dnd_event_get_type"
c_gdk_dnd_event_get_type :: IO B.Types.GType
instance B.Types.TypedObject DNDEvent where
glibType :: IO GType
glibType = IO GType
c_gdk_dnd_event_get_type
class (SP.BoxedPtr o, SP.TypedObject o, O.IsDescendantOf DNDEvent o) => IsDNDEvent o
instance (SP.BoxedPtr o, SP.TypedObject o, O.IsDescendantOf DNDEvent o) => IsDNDEvent o
instance O.HasParentTypes DNDEvent
type instance O.ParentTypes DNDEvent = '[Gdk.Event.Event]
toDNDEvent :: (MIO.MonadIO m, IsDNDEvent o) => o -> m DNDEvent
toDNDEvent :: forall (m :: * -> *) o.
(MonadIO m, IsDNDEvent o) =>
o -> m DNDEvent
toDNDEvent = IO DNDEvent -> m DNDEvent
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO DNDEvent -> m DNDEvent)
-> (o -> IO DNDEvent) -> o -> m DNDEvent
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr DNDEvent -> DNDEvent) -> o -> IO DNDEvent
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr DNDEvent -> DNDEvent
DNDEvent
#if defined(ENABLE_OVERLOADING)
type family ResolveDNDEventMethod (t :: Symbol) (o :: *) :: * where
ResolveDNDEventMethod "ref" o = Gdk.Event.EventRefMethodInfo
ResolveDNDEventMethod "triggersContextMenu" o = Gdk.Event.EventTriggersContextMenuMethodInfo
ResolveDNDEventMethod "unref" o = Gdk.Event.EventUnrefMethodInfo
ResolveDNDEventMethod "getAxes" o = Gdk.Event.EventGetAxesMethodInfo
ResolveDNDEventMethod "getAxis" o = Gdk.Event.EventGetAxisMethodInfo
ResolveDNDEventMethod "getDevice" o = Gdk.Event.EventGetDeviceMethodInfo
ResolveDNDEventMethod "getDeviceTool" o = Gdk.Event.EventGetDeviceToolMethodInfo
ResolveDNDEventMethod "getDisplay" o = Gdk.Event.EventGetDisplayMethodInfo
ResolveDNDEventMethod "getDrop" o = DNDEventGetDropMethodInfo
ResolveDNDEventMethod "getEventSequence" o = Gdk.Event.EventGetEventSequenceMethodInfo
ResolveDNDEventMethod "getEventType" o = Gdk.Event.EventGetEventTypeMethodInfo
ResolveDNDEventMethod "getHistory" o = Gdk.Event.EventGetHistoryMethodInfo
ResolveDNDEventMethod "getModifierState" o = Gdk.Event.EventGetModifierStateMethodInfo
ResolveDNDEventMethod "getPointerEmulated" o = Gdk.Event.EventGetPointerEmulatedMethodInfo
ResolveDNDEventMethod "getPosition" o = Gdk.Event.EventGetPositionMethodInfo
ResolveDNDEventMethod "getSeat" o = Gdk.Event.EventGetSeatMethodInfo
ResolveDNDEventMethod "getSurface" o = Gdk.Event.EventGetSurfaceMethodInfo
ResolveDNDEventMethod "getTime" o = Gdk.Event.EventGetTimeMethodInfo
ResolveDNDEventMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveDNDEventMethod t DNDEvent, O.OverloadedMethod info DNDEvent p) => OL.IsLabel t (DNDEvent -> 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 ~ ResolveDNDEventMethod t DNDEvent, O.OverloadedMethod info DNDEvent p, R.HasField t DNDEvent p) => R.HasField t DNDEvent p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveDNDEventMethod t DNDEvent, O.OverloadedMethodInfo info DNDEvent) => OL.IsLabel t (O.MethodProxy info DNDEvent) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
instance BoxedPtr DNDEvent where
boxedPtrCopy :: DNDEvent -> IO DNDEvent
boxedPtrCopy = DNDEvent -> IO DNDEvent
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return
boxedPtrFree :: DNDEvent -> IO ()
boxedPtrFree = \DNDEvent
_x -> () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
foreign import ccall "gdk_dnd_event_get_drop" gdk_dnd_event_get_drop ::
Ptr DNDEvent ->
IO (Ptr Gdk.Drop.Drop)
dNDEventGetDrop ::
(B.CallStack.HasCallStack, MonadIO m, IsDNDEvent a) =>
a
-> m (Maybe Gdk.Drop.Drop)
dNDEventGetDrop :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsDNDEvent a) =>
a -> m (Maybe Drop)
dNDEventGetDrop a
event = IO (Maybe Drop) -> m (Maybe Drop)
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Maybe Drop) -> m (Maybe Drop))
-> IO (Maybe Drop) -> m (Maybe Drop)
forall a b. (a -> b) -> a -> b
$ do
Ptr DNDEvent
event' <- a -> IO (Ptr DNDEvent)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
event
Ptr Drop
result <- Ptr DNDEvent -> IO (Ptr Drop)
gdk_dnd_event_get_drop Ptr DNDEvent
event'
Maybe Drop
maybeResult <- Ptr Drop -> (Ptr Drop -> IO Drop) -> IO (Maybe Drop)
forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
convertIfNonNull Ptr Drop
result ((Ptr Drop -> IO Drop) -> IO (Maybe Drop))
-> (Ptr Drop -> IO Drop) -> IO (Maybe Drop)
forall a b. (a -> b) -> a -> b
$ \Ptr Drop
result' -> do
Drop
result'' <- ((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
result'
Drop -> IO Drop
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Drop
result''
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
event
Maybe Drop -> IO (Maybe Drop)
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Drop
maybeResult
#if defined(ENABLE_OVERLOADING)
data DNDEventGetDropMethodInfo
instance (signature ~ (m (Maybe Gdk.Drop.Drop)), MonadIO m, IsDNDEvent a) => O.OverloadedMethod DNDEventGetDropMethodInfo a signature where
overloadedMethod = dNDEventGetDrop
instance O.OverloadedMethodInfo DNDEventGetDropMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Objects.DNDEvent.dNDEventGetDrop",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.5/docs/GI-Gdk-Objects-DNDEvent.html#v:dNDEventGetDrop"
})
#endif