{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gdk.Structs.EventAny
(
EventAny(..) ,
newZeroEventAny ,
#if defined(ENABLE_OVERLOADING)
ResolveEventAnyMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
eventAny_sendEvent ,
#endif
getEventAnySendEvent ,
setEventAnySendEvent ,
#if defined(ENABLE_OVERLOADING)
eventAny_type ,
#endif
getEventAnyType ,
setEventAnyType ,
clearEventAnyWindow ,
#if defined(ENABLE_OVERLOADING)
eventAny_window ,
#endif
getEventAnyWindow ,
setEventAnyWindow ,
) 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 {-# SOURCE #-} qualified GI.Gdk.Enums as Gdk.Enums
import {-# SOURCE #-} qualified GI.Gdk.Objects.Window as Gdk.Window
newtype EventAny = EventAny (SP.ManagedPtr EventAny)
deriving (EventAny -> EventAny -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EventAny -> EventAny -> Bool
$c/= :: EventAny -> EventAny -> Bool
== :: EventAny -> EventAny -> Bool
$c== :: EventAny -> EventAny -> Bool
Eq)
instance SP.ManagedPtrNewtype EventAny where
toManagedPtr :: EventAny -> ManagedPtr EventAny
toManagedPtr (EventAny ManagedPtr EventAny
p) = ManagedPtr EventAny
p
instance BoxedPtr EventAny where
boxedPtrCopy :: EventAny -> IO EventAny
boxedPtrCopy = \EventAny
p -> forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
B.ManagedPtr.withManagedPtr EventAny
p (forall a. (HasCallStack, CallocPtr a) => Int -> Ptr a -> IO (Ptr a)
copyBytes Int
12 forall (m :: * -> *) a b c.
Monad m =>
(a -> m b) -> (b -> m c) -> a -> m c
>=> forall a.
(HasCallStack, BoxedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
B.ManagedPtr.wrapPtr ManagedPtr EventAny -> EventAny
EventAny)
boxedPtrFree :: EventAny -> IO ()
boxedPtrFree = \EventAny
x -> forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
SP.withManagedPtr EventAny
x forall a. Ptr a -> IO ()
SP.freeMem
instance CallocPtr EventAny where
boxedPtrCalloc :: IO (Ptr EventAny)
boxedPtrCalloc = forall a. Int -> IO (Ptr a)
callocBytes Int
12
newZeroEventAny :: MonadIO m => m EventAny
newZeroEventAny :: forall (m :: * -> *). MonadIO m => m EventAny
newZeroEventAny = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a. CallocPtr a => IO (Ptr a)
boxedPtrCalloc forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= forall a.
(HasCallStack, BoxedPtr a) =>
(ManagedPtr a -> a) -> Ptr a -> IO a
wrapPtr ManagedPtr EventAny -> EventAny
EventAny
instance tag ~ 'AttrSet => Constructible EventAny tag where
new :: forall (m :: * -> *).
MonadIO m =>
(ManagedPtr EventAny -> EventAny)
-> [AttrOp EventAny tag] -> m EventAny
new ManagedPtr EventAny -> EventAny
_ [AttrOp EventAny tag]
attrs = do
EventAny
o <- forall (m :: * -> *). MonadIO m => m EventAny
newZeroEventAny
forall o (m :: * -> *).
MonadIO m =>
o -> [AttrOp o 'AttrSet] -> m ()
GI.Attributes.set EventAny
o [AttrOp EventAny tag]
attrs
forall (m :: * -> *) a. Monad m => a -> m a
return EventAny
o
getEventAnyType :: MonadIO m => EventAny -> m Gdk.Enums.EventType
getEventAnyType :: forall (m :: * -> *). MonadIO m => EventAny -> m EventType
getEventAnyType EventAny
s = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr EventAny
s forall a b. (a -> b) -> a -> b
$ \Ptr EventAny
ptr -> do
CInt
val <- forall a. Storable a => Ptr a -> IO a
peek (Ptr EventAny
ptr forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) :: IO CInt
let val' :: EventType
val' = (forall a. Enum a => Int -> a
toEnum forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (Integral a, Num b) => a -> b
fromIntegral) CInt
val
forall (m :: * -> *) a. Monad m => a -> m a
return EventType
val'
setEventAnyType :: MonadIO m => EventAny -> Gdk.Enums.EventType -> m ()
setEventAnyType :: forall (m :: * -> *). MonadIO m => EventAny -> EventType -> m ()
setEventAnyType EventAny
s EventType
val = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr EventAny
s forall a b. (a -> b) -> a -> b
$ \Ptr EventAny
ptr -> do
let val' :: CInt
val' = (forall a b. (Integral a, Num b) => a -> b
fromIntegral forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Enum a => a -> Int
fromEnum) EventType
val
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr EventAny
ptr forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
0) (CInt
val' :: CInt)
#if defined(ENABLE_OVERLOADING)
data EventAnyTypeFieldInfo
instance AttrInfo EventAnyTypeFieldInfo where
type AttrBaseTypeConstraint EventAnyTypeFieldInfo = (~) EventAny
type AttrAllowedOps EventAnyTypeFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventAnyTypeFieldInfo = (~) Gdk.Enums.EventType
type AttrTransferTypeConstraint EventAnyTypeFieldInfo = (~)Gdk.Enums.EventType
type AttrTransferType EventAnyTypeFieldInfo = Gdk.Enums.EventType
type AttrGetType EventAnyTypeFieldInfo = Gdk.Enums.EventType
type AttrLabel EventAnyTypeFieldInfo = "type"
type AttrOrigin EventAnyTypeFieldInfo = EventAny
attrGet = getEventAnyType
attrSet = setEventAnyType
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Structs.EventAny.type"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-3.0.26/docs/GI-Gdk-Structs-EventAny.html#g:attr:type"
})
eventAny_type :: AttrLabelProxy "type"
eventAny_type = AttrLabelProxy
#endif
getEventAnyWindow :: MonadIO m => EventAny -> m (Maybe Gdk.Window.Window)
getEventAnyWindow :: forall (m :: * -> *). MonadIO m => EventAny -> m (Maybe Window)
getEventAnyWindow EventAny
s = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr EventAny
s forall a b. (a -> b) -> a -> b
$ \Ptr EventAny
ptr -> do
Ptr Window
val <- forall a. Storable a => Ptr a -> IO a
peek (Ptr EventAny
ptr forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4) :: IO (Ptr Gdk.Window.Window)
Maybe Window
result <- forall a b. Ptr a -> (Ptr a -> IO b) -> IO (Maybe b)
SP.convertIfNonNull Ptr Window
val forall a b. (a -> b) -> a -> b
$ \Ptr Window
val' -> do
Window
val'' <- (forall a b.
(HasCallStack, GObject a, GObject b) =>
(ManagedPtr a -> a) -> Ptr b -> IO a
newObject ManagedPtr Window -> Window
Gdk.Window.Window) Ptr Window
val'
forall (m :: * -> *) a. Monad m => a -> m a
return Window
val''
forall (m :: * -> *) a. Monad m => a -> m a
return Maybe Window
result
setEventAnyWindow :: MonadIO m => EventAny -> Ptr Gdk.Window.Window -> m ()
setEventAnyWindow :: forall (m :: * -> *). MonadIO m => EventAny -> Ptr Window -> m ()
setEventAnyWindow EventAny
s Ptr Window
val = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr EventAny
s forall a b. (a -> b) -> a -> b
$ \Ptr EventAny
ptr -> do
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr EventAny
ptr forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4) (Ptr Window
val :: Ptr Gdk.Window.Window)
clearEventAnyWindow :: MonadIO m => EventAny -> m ()
clearEventAnyWindow :: forall (m :: * -> *). MonadIO m => EventAny -> m ()
clearEventAnyWindow EventAny
s = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr EventAny
s forall a b. (a -> b) -> a -> b
$ \Ptr EventAny
ptr -> do
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr EventAny
ptr forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
4) (forall a. Ptr a
FP.nullPtr :: Ptr Gdk.Window.Window)
#if defined(ENABLE_OVERLOADING)
data EventAnyWindowFieldInfo
instance AttrInfo EventAnyWindowFieldInfo where
type AttrBaseTypeConstraint EventAnyWindowFieldInfo = (~) EventAny
type AttrAllowedOps EventAnyWindowFieldInfo = '[ 'AttrSet, 'AttrGet, 'AttrClear]
type AttrSetTypeConstraint EventAnyWindowFieldInfo = (~) (Ptr Gdk.Window.Window)
type AttrTransferTypeConstraint EventAnyWindowFieldInfo = (~)(Ptr Gdk.Window.Window)
type AttrTransferType EventAnyWindowFieldInfo = (Ptr Gdk.Window.Window)
type AttrGetType EventAnyWindowFieldInfo = Maybe Gdk.Window.Window
type AttrLabel EventAnyWindowFieldInfo = "window"
type AttrOrigin EventAnyWindowFieldInfo = EventAny
attrGet = getEventAnyWindow
attrSet = setEventAnyWindow
attrConstruct = undefined
attrClear = clearEventAnyWindow
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Structs.EventAny.window"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-3.0.26/docs/GI-Gdk-Structs-EventAny.html#g:attr:window"
})
eventAny_window :: AttrLabelProxy "window"
eventAny_window = AttrLabelProxy
#endif
getEventAnySendEvent :: MonadIO m => EventAny -> m Int8
getEventAnySendEvent :: forall (m :: * -> *). MonadIO m => EventAny -> m Int8
getEventAnySendEvent EventAny
s = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr EventAny
s forall a b. (a -> b) -> a -> b
$ \Ptr EventAny
ptr -> do
Int8
val <- forall a. Storable a => Ptr a -> IO a
peek (Ptr EventAny
ptr forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8) :: IO Int8
forall (m :: * -> *) a. Monad m => a -> m a
return Int8
val
setEventAnySendEvent :: MonadIO m => EventAny -> Int8 -> m ()
setEventAnySendEvent :: forall (m :: * -> *). MonadIO m => EventAny -> Int8 -> m ()
setEventAnySendEvent EventAny
s Int8
val = forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO forall a b. (a -> b) -> a -> b
$ forall a c.
(HasCallStack, ManagedPtrNewtype a) =>
a -> (Ptr a -> IO c) -> IO c
withManagedPtr EventAny
s forall a b. (a -> b) -> a -> b
$ \Ptr EventAny
ptr -> do
forall a. Storable a => Ptr a -> a -> IO ()
poke (Ptr EventAny
ptr forall a b. Ptr a -> Int -> Ptr b
`plusPtr` Int
8) (Int8
val :: Int8)
#if defined(ENABLE_OVERLOADING)
data EventAnySendEventFieldInfo
instance AttrInfo EventAnySendEventFieldInfo where
type AttrBaseTypeConstraint EventAnySendEventFieldInfo = (~) EventAny
type AttrAllowedOps EventAnySendEventFieldInfo = '[ 'AttrSet, 'AttrGet]
type AttrSetTypeConstraint EventAnySendEventFieldInfo = (~) Int8
type AttrTransferTypeConstraint EventAnySendEventFieldInfo = (~)Int8
type AttrTransferType EventAnySendEventFieldInfo = Int8
type AttrGetType EventAnySendEventFieldInfo = Int8
type AttrLabel EventAnySendEventFieldInfo = "send_event"
type AttrOrigin EventAnySendEventFieldInfo = EventAny
attrGet = getEventAnySendEvent
attrSet = setEventAnySendEvent
attrConstruct = undefined
attrClear = undefined
attrTransfer _ v = do
return v
dbgAttrInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Structs.EventAny.sendEvent"
, O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-3.0.26/docs/GI-Gdk-Structs-EventAny.html#g:attr:sendEvent"
})
eventAny_sendEvent :: AttrLabelProxy "sendEvent"
eventAny_sendEvent = AttrLabelProxy
#endif
#if defined(ENABLE_OVERLOADING)
instance O.HasAttributeList EventAny
type instance O.AttributeList EventAny = EventAnyAttributeList
type EventAnyAttributeList = ('[ '("type", EventAnyTypeFieldInfo), '("window", EventAnyWindowFieldInfo), '("sendEvent", EventAnySendEventFieldInfo)] :: [(Symbol, DK.Type)])
#endif
#if defined(ENABLE_OVERLOADING)
type family ResolveEventAnyMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveEventAnyMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveEventAnyMethod t EventAny, O.OverloadedMethod info EventAny p) => OL.IsLabel t (EventAny -> 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 ~ ResolveEventAnyMethod t EventAny, O.OverloadedMethod info EventAny p, R.HasField t EventAny p) => R.HasField t EventAny p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveEventAnyMethod t EventAny, O.OverloadedMethodInfo info EventAny) => OL.IsLabel t (O.MethodProxy info EventAny) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif