{-# LANGUAGE TypeApplications #-}
#if (MIN_VERSION_haskell_gi_overloading(1,0,0) && !defined(__HADDOCK_VERSION__))
#define ENABLE_OVERLOADING
#endif
module GI.Gdk.Objects.KeyEvent
(
KeyEvent(..) ,
IsKeyEvent ,
toKeyEvent ,
#if defined(ENABLE_OVERLOADING)
ResolveKeyEventMethod ,
#endif
#if defined(ENABLE_OVERLOADING)
KeyEventGetConsumedModifiersMethodInfo ,
#endif
keyEventGetConsumedModifiers ,
#if defined(ENABLE_OVERLOADING)
KeyEventGetKeycodeMethodInfo ,
#endif
keyEventGetKeycode ,
#if defined(ENABLE_OVERLOADING)
KeyEventGetKeyvalMethodInfo ,
#endif
keyEventGetKeyval ,
#if defined(ENABLE_OVERLOADING)
KeyEventGetLayoutMethodInfo ,
#endif
keyEventGetLayout ,
#if defined(ENABLE_OVERLOADING)
KeyEventGetLevelMethodInfo ,
#endif
keyEventGetLevel ,
#if defined(ENABLE_OVERLOADING)
KeyEventGetMatchMethodInfo ,
#endif
keyEventGetMatch ,
#if defined(ENABLE_OVERLOADING)
KeyEventIsModifierMethodInfo ,
#endif
keyEventIsModifier ,
#if defined(ENABLE_OVERLOADING)
KeyEventMatchesMethodInfo ,
#endif
keyEventMatches ,
) 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.Flags as Gdk.Flags
import {-# SOURCE #-} qualified GI.Gdk.Objects.Event as Gdk.Event
newtype KeyEvent = KeyEvent (SP.ManagedPtr KeyEvent)
deriving (KeyEvent -> KeyEvent -> Bool
(KeyEvent -> KeyEvent -> Bool)
-> (KeyEvent -> KeyEvent -> Bool) -> Eq KeyEvent
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: KeyEvent -> KeyEvent -> Bool
== :: KeyEvent -> KeyEvent -> Bool
$c/= :: KeyEvent -> KeyEvent -> Bool
/= :: KeyEvent -> KeyEvent -> Bool
Eq)
instance SP.ManagedPtrNewtype KeyEvent where
toManagedPtr :: KeyEvent -> ManagedPtr KeyEvent
toManagedPtr (KeyEvent ManagedPtr KeyEvent
p) = ManagedPtr KeyEvent
p
foreign import ccall "gdk_key_event_get_type"
c_gdk_key_event_get_type :: IO B.Types.GType
instance B.Types.TypedObject KeyEvent where
glibType :: IO GType
glibType = IO GType
c_gdk_key_event_get_type
class (SP.BoxedPtr o, SP.TypedObject o, O.IsDescendantOf KeyEvent o) => IsKeyEvent o
instance (SP.BoxedPtr o, SP.TypedObject o, O.IsDescendantOf KeyEvent o) => IsKeyEvent o
instance O.HasParentTypes KeyEvent
type instance O.ParentTypes KeyEvent = '[Gdk.Event.Event]
toKeyEvent :: (MIO.MonadIO m, IsKeyEvent o) => o -> m KeyEvent
toKeyEvent :: forall (m :: * -> *) o.
(MonadIO m, IsKeyEvent o) =>
o -> m KeyEvent
toKeyEvent = IO KeyEvent -> m KeyEvent
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
MIO.liftIO (IO KeyEvent -> m KeyEvent)
-> (o -> IO KeyEvent) -> o -> m KeyEvent
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ManagedPtr KeyEvent -> KeyEvent) -> o -> IO KeyEvent
forall o o'.
(HasCallStack, ManagedPtrNewtype o, TypedObject o,
ManagedPtrNewtype o', TypedObject o') =>
(ManagedPtr o' -> o') -> o -> IO o'
B.ManagedPtr.unsafeCastTo ManagedPtr KeyEvent -> KeyEvent
KeyEvent
#if defined(ENABLE_OVERLOADING)
type family ResolveKeyEventMethod (t :: Symbol) (o :: DK.Type) :: DK.Type where
ResolveKeyEventMethod "isModifier" o = KeyEventIsModifierMethodInfo
ResolveKeyEventMethod "matches" o = KeyEventMatchesMethodInfo
ResolveKeyEventMethod "ref" o = Gdk.Event.EventRefMethodInfo
ResolveKeyEventMethod "triggersContextMenu" o = Gdk.Event.EventTriggersContextMenuMethodInfo
ResolveKeyEventMethod "unref" o = Gdk.Event.EventUnrefMethodInfo
ResolveKeyEventMethod "getAxes" o = Gdk.Event.EventGetAxesMethodInfo
ResolveKeyEventMethod "getAxis" o = Gdk.Event.EventGetAxisMethodInfo
ResolveKeyEventMethod "getConsumedModifiers" o = KeyEventGetConsumedModifiersMethodInfo
ResolveKeyEventMethod "getDevice" o = Gdk.Event.EventGetDeviceMethodInfo
ResolveKeyEventMethod "getDeviceTool" o = Gdk.Event.EventGetDeviceToolMethodInfo
ResolveKeyEventMethod "getDisplay" o = Gdk.Event.EventGetDisplayMethodInfo
ResolveKeyEventMethod "getEventSequence" o = Gdk.Event.EventGetEventSequenceMethodInfo
ResolveKeyEventMethod "getEventType" o = Gdk.Event.EventGetEventTypeMethodInfo
ResolveKeyEventMethod "getHistory" o = Gdk.Event.EventGetHistoryMethodInfo
ResolveKeyEventMethod "getKeycode" o = KeyEventGetKeycodeMethodInfo
ResolveKeyEventMethod "getKeyval" o = KeyEventGetKeyvalMethodInfo
ResolveKeyEventMethod "getLayout" o = KeyEventGetLayoutMethodInfo
ResolveKeyEventMethod "getLevel" o = KeyEventGetLevelMethodInfo
ResolveKeyEventMethod "getMatch" o = KeyEventGetMatchMethodInfo
ResolveKeyEventMethod "getModifierState" o = Gdk.Event.EventGetModifierStateMethodInfo
ResolveKeyEventMethod "getPointerEmulated" o = Gdk.Event.EventGetPointerEmulatedMethodInfo
ResolveKeyEventMethod "getPosition" o = Gdk.Event.EventGetPositionMethodInfo
ResolveKeyEventMethod "getSeat" o = Gdk.Event.EventGetSeatMethodInfo
ResolveKeyEventMethod "getSurface" o = Gdk.Event.EventGetSurfaceMethodInfo
ResolveKeyEventMethod "getTime" o = Gdk.Event.EventGetTimeMethodInfo
ResolveKeyEventMethod l o = O.MethodResolutionFailed l o
instance (info ~ ResolveKeyEventMethod t KeyEvent, O.OverloadedMethod info KeyEvent p) => OL.IsLabel t (KeyEvent -> 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 ~ ResolveKeyEventMethod t KeyEvent, O.OverloadedMethod info KeyEvent p, R.HasField t KeyEvent p) => R.HasField t KeyEvent p where
getField = O.overloadedMethod @info
#endif
instance (info ~ ResolveKeyEventMethod t KeyEvent, O.OverloadedMethodInfo info KeyEvent) => OL.IsLabel t (O.MethodProxy info KeyEvent) where
#if MIN_VERSION_base(4,10,0)
fromLabel = O.MethodProxy
#else
fromLabel _ = O.MethodProxy
#endif
#endif
instance BoxedPtr KeyEvent where
boxedPtrCopy :: KeyEvent -> IO KeyEvent
boxedPtrCopy = KeyEvent -> IO KeyEvent
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return
boxedPtrFree :: KeyEvent -> IO ()
boxedPtrFree = \KeyEvent
_x -> () -> IO ()
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return ()
foreign import ccall "gdk_key_event_get_consumed_modifiers" gdk_key_event_get_consumed_modifiers ::
Ptr KeyEvent ->
IO CUInt
keyEventGetConsumedModifiers ::
(B.CallStack.HasCallStack, MonadIO m, IsKeyEvent a) =>
a
-> m [Gdk.Flags.ModifierType]
keyEventGetConsumedModifiers :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsKeyEvent a) =>
a -> m [ModifierType]
keyEventGetConsumedModifiers a
event = IO [ModifierType] -> m [ModifierType]
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO [ModifierType] -> m [ModifierType])
-> IO [ModifierType] -> m [ModifierType]
forall a b. (a -> b) -> a -> b
$ do
Ptr KeyEvent
event' <- a -> IO (Ptr KeyEvent)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
event
CUInt
result <- Ptr KeyEvent -> IO CUInt
gdk_key_event_get_consumed_modifiers Ptr KeyEvent
event'
let result' :: [ModifierType]
result' = CUInt -> [ModifierType]
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
event
[ModifierType] -> IO [ModifierType]
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return [ModifierType]
result'
#if defined(ENABLE_OVERLOADING)
data KeyEventGetConsumedModifiersMethodInfo
instance (signature ~ (m [Gdk.Flags.ModifierType]), MonadIO m, IsKeyEvent a) => O.OverloadedMethod KeyEventGetConsumedModifiersMethodInfo a signature where
overloadedMethod = keyEventGetConsumedModifiers
instance O.OverloadedMethodInfo KeyEventGetConsumedModifiersMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Objects.KeyEvent.keyEventGetConsumedModifiers",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.7/docs/GI-Gdk-Objects-KeyEvent.html#v:keyEventGetConsumedModifiers"
})
#endif
foreign import ccall "gdk_key_event_get_keycode" gdk_key_event_get_keycode ::
Ptr KeyEvent ->
IO Word32
keyEventGetKeycode ::
(B.CallStack.HasCallStack, MonadIO m, IsKeyEvent a) =>
a
-> m Word32
keyEventGetKeycode :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsKeyEvent a) =>
a -> m Word32
keyEventGetKeycode a
event = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
Ptr KeyEvent
event' <- a -> IO (Ptr KeyEvent)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
event
Word32
result <- Ptr KeyEvent -> IO Word32
gdk_key_event_get_keycode Ptr KeyEvent
event'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
event
Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result
#if defined(ENABLE_OVERLOADING)
data KeyEventGetKeycodeMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsKeyEvent a) => O.OverloadedMethod KeyEventGetKeycodeMethodInfo a signature where
overloadedMethod = keyEventGetKeycode
instance O.OverloadedMethodInfo KeyEventGetKeycodeMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Objects.KeyEvent.keyEventGetKeycode",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.7/docs/GI-Gdk-Objects-KeyEvent.html#v:keyEventGetKeycode"
})
#endif
foreign import ccall "gdk_key_event_get_keyval" gdk_key_event_get_keyval ::
Ptr KeyEvent ->
IO Word32
keyEventGetKeyval ::
(B.CallStack.HasCallStack, MonadIO m, IsKeyEvent a) =>
a
-> m Word32
keyEventGetKeyval :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsKeyEvent a) =>
a -> m Word32
keyEventGetKeyval a
event = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
Ptr KeyEvent
event' <- a -> IO (Ptr KeyEvent)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
event
Word32
result <- Ptr KeyEvent -> IO Word32
gdk_key_event_get_keyval Ptr KeyEvent
event'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
event
Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result
#if defined(ENABLE_OVERLOADING)
data KeyEventGetKeyvalMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsKeyEvent a) => O.OverloadedMethod KeyEventGetKeyvalMethodInfo a signature where
overloadedMethod = keyEventGetKeyval
instance O.OverloadedMethodInfo KeyEventGetKeyvalMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Objects.KeyEvent.keyEventGetKeyval",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.7/docs/GI-Gdk-Objects-KeyEvent.html#v:keyEventGetKeyval"
})
#endif
foreign import ccall "gdk_key_event_get_layout" gdk_key_event_get_layout ::
Ptr KeyEvent ->
IO Word32
keyEventGetLayout ::
(B.CallStack.HasCallStack, MonadIO m, IsKeyEvent a) =>
a
-> m Word32
keyEventGetLayout :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsKeyEvent a) =>
a -> m Word32
keyEventGetLayout a
event = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
Ptr KeyEvent
event' <- a -> IO (Ptr KeyEvent)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
event
Word32
result <- Ptr KeyEvent -> IO Word32
gdk_key_event_get_layout Ptr KeyEvent
event'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
event
Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result
#if defined(ENABLE_OVERLOADING)
data KeyEventGetLayoutMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsKeyEvent a) => O.OverloadedMethod KeyEventGetLayoutMethodInfo a signature where
overloadedMethod = keyEventGetLayout
instance O.OverloadedMethodInfo KeyEventGetLayoutMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Objects.KeyEvent.keyEventGetLayout",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.7/docs/GI-Gdk-Objects-KeyEvent.html#v:keyEventGetLayout"
})
#endif
foreign import ccall "gdk_key_event_get_level" gdk_key_event_get_level ::
Ptr KeyEvent ->
IO Word32
keyEventGetLevel ::
(B.CallStack.HasCallStack, MonadIO m, IsKeyEvent a) =>
a
-> m Word32
keyEventGetLevel :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsKeyEvent a) =>
a -> m Word32
keyEventGetLevel a
event = IO Word32 -> m Word32
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Word32 -> m Word32) -> IO Word32 -> m Word32
forall a b. (a -> b) -> a -> b
$ do
Ptr KeyEvent
event' <- a -> IO (Ptr KeyEvent)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
event
Word32
result <- Ptr KeyEvent -> IO Word32
gdk_key_event_get_level Ptr KeyEvent
event'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
event
Word32 -> IO Word32
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Word32
result
#if defined(ENABLE_OVERLOADING)
data KeyEventGetLevelMethodInfo
instance (signature ~ (m Word32), MonadIO m, IsKeyEvent a) => O.OverloadedMethod KeyEventGetLevelMethodInfo a signature where
overloadedMethod = keyEventGetLevel
instance O.OverloadedMethodInfo KeyEventGetLevelMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Objects.KeyEvent.keyEventGetLevel",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.7/docs/GI-Gdk-Objects-KeyEvent.html#v:keyEventGetLevel"
})
#endif
foreign import ccall "gdk_key_event_get_match" gdk_key_event_get_match ::
Ptr KeyEvent ->
Ptr Word32 ->
Ptr CUInt ->
IO CInt
keyEventGetMatch ::
(B.CallStack.HasCallStack, MonadIO m, IsKeyEvent a) =>
a
-> m ((Bool, Word32, [Gdk.Flags.ModifierType]))
keyEventGetMatch :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsKeyEvent a) =>
a -> m (Bool, Word32, [ModifierType])
keyEventGetMatch a
event = IO (Bool, Word32, [ModifierType])
-> m (Bool, Word32, [ModifierType])
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO (Bool, Word32, [ModifierType])
-> m (Bool, Word32, [ModifierType]))
-> IO (Bool, Word32, [ModifierType])
-> m (Bool, Word32, [ModifierType])
forall a b. (a -> b) -> a -> b
$ do
Ptr KeyEvent
event' <- a -> IO (Ptr KeyEvent)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
event
Ptr Word32
keyval <- IO (Ptr Word32)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr Word32)
Ptr CUInt
modifiers <- IO (Ptr CUInt)
forall a. Storable a => IO (Ptr a)
allocMem :: IO (Ptr CUInt)
CInt
result <- Ptr KeyEvent -> Ptr Word32 -> Ptr CUInt -> IO CInt
gdk_key_event_get_match Ptr KeyEvent
event' Ptr Word32
keyval Ptr CUInt
modifiers
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
Word32
keyval' <- Ptr Word32 -> IO Word32
forall a. Storable a => Ptr a -> IO a
peek Ptr Word32
keyval
CUInt
modifiers' <- Ptr CUInt -> IO CUInt
forall a. Storable a => Ptr a -> IO a
peek Ptr CUInt
modifiers
let modifiers'' :: [ModifierType]
modifiers'' = CUInt -> [ModifierType]
forall a b. (Storable a, Integral a, Bits a, IsGFlag b) => a -> [b]
wordToGFlags CUInt
modifiers'
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
event
Ptr Word32 -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr Word32
keyval
Ptr CUInt -> IO ()
forall a. Ptr a -> IO ()
freeMem Ptr CUInt
modifiers
(Bool, Word32, [ModifierType]) -> IO (Bool, Word32, [ModifierType])
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return (Bool
result', Word32
keyval', [ModifierType]
modifiers'')
#if defined(ENABLE_OVERLOADING)
data KeyEventGetMatchMethodInfo
instance (signature ~ (m ((Bool, Word32, [Gdk.Flags.ModifierType]))), MonadIO m, IsKeyEvent a) => O.OverloadedMethod KeyEventGetMatchMethodInfo a signature where
overloadedMethod = keyEventGetMatch
instance O.OverloadedMethodInfo KeyEventGetMatchMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Objects.KeyEvent.keyEventGetMatch",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.7/docs/GI-Gdk-Objects-KeyEvent.html#v:keyEventGetMatch"
})
#endif
foreign import ccall "gdk_key_event_is_modifier" gdk_key_event_is_modifier ::
Ptr KeyEvent ->
IO CInt
keyEventIsModifier ::
(B.CallStack.HasCallStack, MonadIO m, IsKeyEvent a) =>
a
-> m Bool
keyEventIsModifier :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsKeyEvent a) =>
a -> m Bool
keyEventIsModifier a
event = IO Bool -> m Bool
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO Bool -> m Bool) -> IO Bool -> m Bool
forall a b. (a -> b) -> a -> b
$ do
Ptr KeyEvent
event' <- a -> IO (Ptr KeyEvent)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
event
CInt
result <- Ptr KeyEvent -> IO CInt
gdk_key_event_is_modifier Ptr KeyEvent
event'
let result' :: Bool
result' = (CInt -> CInt -> Bool
forall a. Eq a => a -> a -> Bool
/= CInt
0) CInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
event
Bool -> IO Bool
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return Bool
result'
#if defined(ENABLE_OVERLOADING)
data KeyEventIsModifierMethodInfo
instance (signature ~ (m Bool), MonadIO m, IsKeyEvent a) => O.OverloadedMethod KeyEventIsModifierMethodInfo a signature where
overloadedMethod = keyEventIsModifier
instance O.OverloadedMethodInfo KeyEventIsModifierMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Objects.KeyEvent.keyEventIsModifier",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.7/docs/GI-Gdk-Objects-KeyEvent.html#v:keyEventIsModifier"
})
#endif
foreign import ccall "gdk_key_event_matches" gdk_key_event_matches ::
Ptr KeyEvent ->
Word32 ->
CUInt ->
IO CUInt
keyEventMatches ::
(B.CallStack.HasCallStack, MonadIO m, IsKeyEvent a) =>
a
-> Word32
-> [Gdk.Flags.ModifierType]
-> m Gdk.Enums.KeyMatch
keyEventMatches :: forall (m :: * -> *) a.
(HasCallStack, MonadIO m, IsKeyEvent a) =>
a -> Word32 -> [ModifierType] -> m KeyMatch
keyEventMatches a
event Word32
keyval [ModifierType]
modifiers = IO KeyMatch -> m KeyMatch
forall a. IO a -> m a
forall (m :: * -> *) a. MonadIO m => IO a -> m a
liftIO (IO KeyMatch -> m KeyMatch) -> IO KeyMatch -> m KeyMatch
forall a b. (a -> b) -> a -> b
$ do
Ptr KeyEvent
event' <- a -> IO (Ptr KeyEvent)
forall a b. (HasCallStack, ManagedPtrNewtype a) => a -> IO (Ptr b)
unsafeManagedPtrCastPtr a
event
let modifiers' :: CUInt
modifiers' = [ModifierType] -> CUInt
forall b a. (Num b, IsGFlag a) => [a] -> b
gflagsToWord [ModifierType]
modifiers
CUInt
result <- Ptr KeyEvent -> Word32 -> CUInt -> IO CUInt
gdk_key_event_matches Ptr KeyEvent
event' Word32
keyval CUInt
modifiers'
let result' :: KeyMatch
result' = (Int -> KeyMatch
forall a. Enum a => Int -> a
toEnum (Int -> KeyMatch) -> (CUInt -> Int) -> CUInt -> KeyMatch
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CUInt -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral) CUInt
result
a -> IO ()
forall a. ManagedPtrNewtype a => a -> IO ()
touchManagedPtr a
event
KeyMatch -> IO KeyMatch
forall a. a -> IO a
forall (m :: * -> *) a. Monad m => a -> m a
return KeyMatch
result'
#if defined(ENABLE_OVERLOADING)
data KeyEventMatchesMethodInfo
instance (signature ~ (Word32 -> [Gdk.Flags.ModifierType] -> m Gdk.Enums.KeyMatch), MonadIO m, IsKeyEvent a) => O.OverloadedMethod KeyEventMatchesMethodInfo a signature where
overloadedMethod = keyEventMatches
instance O.OverloadedMethodInfo KeyEventMatchesMethodInfo a where
overloadedMethodInfo = P.Just (O.ResolvedSymbolInfo {
O.resolvedSymbolName = "GI.Gdk.Objects.KeyEvent.keyEventMatches",
O.resolvedSymbolURL = "https://hackage.haskell.org/package/gi-gdk-4.0.7/docs/GI-Gdk-Objects-KeyEvent.html#v:keyEventMatches"
})
#endif