{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) 'GI.Gtk.Objects.EventControllerKey.EventControllerKey' is an event controller meant for situations where you need access to key events. This object was added in 3.24. -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.Gtk.Objects.EventControllerKey ( -- * Exported types EventControllerKey(..) , IsEventControllerKey , toEventControllerKey , noEventControllerKey , -- * Methods -- ** forward #method:forward# #if ENABLE_OVERLOADING EventControllerKeyForwardMethodInfo , #endif eventControllerKeyForward , -- ** getGroup #method:getGroup# #if ENABLE_OVERLOADING EventControllerKeyGetGroupMethodInfo , #endif eventControllerKeyGetGroup , -- ** getImContext #method:getImContext# #if ENABLE_OVERLOADING EventControllerKeyGetImContextMethodInfo, #endif eventControllerKeyGetImContext , -- ** new #method:new# eventControllerKeyNew , -- ** setImContext #method:setImContext# #if ENABLE_OVERLOADING EventControllerKeySetImContextMethodInfo, #endif eventControllerKeySetImContext , -- * Signals -- ** focusIn #signal:focusIn# C_EventControllerKeyFocusInCallback , EventControllerKeyFocusInCallback , #if ENABLE_OVERLOADING EventControllerKeyFocusInSignalInfo , #endif afterEventControllerKeyFocusIn , genClosure_EventControllerKeyFocusIn , mk_EventControllerKeyFocusInCallback , noEventControllerKeyFocusInCallback , onEventControllerKeyFocusIn , wrap_EventControllerKeyFocusInCallback , -- ** focusOut #signal:focusOut# C_EventControllerKeyFocusOutCallback , EventControllerKeyFocusOutCallback , #if ENABLE_OVERLOADING EventControllerKeyFocusOutSignalInfo , #endif afterEventControllerKeyFocusOut , genClosure_EventControllerKeyFocusOut , mk_EventControllerKeyFocusOutCallback , noEventControllerKeyFocusOutCallback , onEventControllerKeyFocusOut , wrap_EventControllerKeyFocusOutCallback , -- ** imUpdate #signal:imUpdate# C_EventControllerKeyImUpdateCallback , EventControllerKeyImUpdateCallback , #if ENABLE_OVERLOADING EventControllerKeyImUpdateSignalInfo , #endif afterEventControllerKeyImUpdate , genClosure_EventControllerKeyImUpdate , mk_EventControllerKeyImUpdateCallback , noEventControllerKeyImUpdateCallback , onEventControllerKeyImUpdate , wrap_EventControllerKeyImUpdateCallback , -- ** keyPressed #signal:keyPressed# C_EventControllerKeyKeyPressedCallback , EventControllerKeyKeyPressedCallback , #if ENABLE_OVERLOADING EventControllerKeyKeyPressedSignalInfo , #endif afterEventControllerKeyKeyPressed , genClosure_EventControllerKeyKeyPressed , mk_EventControllerKeyKeyPressedCallback , noEventControllerKeyKeyPressedCallback , onEventControllerKeyKeyPressed , wrap_EventControllerKeyKeyPressedCallback, -- ** keyReleased #signal:keyReleased# C_EventControllerKeyKeyReleasedCallback , EventControllerKeyKeyReleasedCallback , #if ENABLE_OVERLOADING EventControllerKeyKeyReleasedSignalInfo , #endif afterEventControllerKeyKeyReleased , genClosure_EventControllerKeyKeyReleased, mk_EventControllerKeyKeyReleasedCallback, noEventControllerKeyKeyReleasedCallback , onEventControllerKeyKeyReleased , wrap_EventControllerKeyKeyReleasedCallback, -- ** modifiers #signal:modifiers# C_EventControllerKeyModifiersCallback , EventControllerKeyModifiersCallback , #if ENABLE_OVERLOADING EventControllerKeyModifiersSignalInfo , #endif afterEventControllerKeyModifiers , genClosure_EventControllerKeyModifiers , mk_EventControllerKeyModifiersCallback , noEventControllerKeyModifiersCallback , onEventControllerKeyModifiers , wrap_EventControllerKeyModifiersCallback, ) 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.ManagedPtr as B.ManagedPtr import qualified Data.GI.Base.GClosure as B.GClosure import qualified Data.GI.Base.GError as B.GError 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.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 GI.GObject.Objects.Object as GObject.Object import qualified GI.Gdk.Flags as Gdk.Flags import {-# SOURCE #-} qualified GI.Gtk.Objects.EventController as Gtk.EventController import {-# SOURCE #-} qualified GI.Gtk.Objects.IMContext as Gtk.IMContext import {-# SOURCE #-} qualified GI.Gtk.Objects.Widget as Gtk.Widget -- | Memory-managed wrapper type. newtype EventControllerKey = EventControllerKey (ManagedPtr EventControllerKey) foreign import ccall "gtk_event_controller_key_get_type" c_gtk_event_controller_key_get_type :: IO GType instance GObject EventControllerKey where gobjectType = c_gtk_event_controller_key_get_type -- | Type class for types which can be safely cast to `EventControllerKey`, for instance with `toEventControllerKey`. class (GObject o, O.IsDescendantOf EventControllerKey o) => IsEventControllerKey o instance (GObject o, O.IsDescendantOf EventControllerKey o) => IsEventControllerKey o instance O.HasParentTypes EventControllerKey type instance O.ParentTypes EventControllerKey = '[Gtk.EventController.EventController, GObject.Object.Object] -- | Cast to `EventControllerKey`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toEventControllerKey :: (MonadIO m, IsEventControllerKey o) => o -> m EventControllerKey toEventControllerKey = liftIO . unsafeCastTo EventControllerKey -- | A convenience alias for `Nothing` :: `Maybe` `EventControllerKey`. noEventControllerKey :: Maybe EventControllerKey noEventControllerKey = Nothing #if ENABLE_OVERLOADING type family ResolveEventControllerKeyMethod (t :: Symbol) (o :: *) :: * where ResolveEventControllerKeyMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveEventControllerKeyMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveEventControllerKeyMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveEventControllerKeyMethod "forward" o = EventControllerKeyForwardMethodInfo ResolveEventControllerKeyMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveEventControllerKeyMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveEventControllerKeyMethod "handleEvent" o = Gtk.EventController.EventControllerHandleEventMethodInfo ResolveEventControllerKeyMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveEventControllerKeyMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveEventControllerKeyMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveEventControllerKeyMethod "ref" o = GObject.Object.ObjectRefMethodInfo ResolveEventControllerKeyMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveEventControllerKeyMethod "reset" o = Gtk.EventController.EventControllerResetMethodInfo ResolveEventControllerKeyMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveEventControllerKeyMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveEventControllerKeyMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveEventControllerKeyMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveEventControllerKeyMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo ResolveEventControllerKeyMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveEventControllerKeyMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveEventControllerKeyMethod "getGroup" o = EventControllerKeyGetGroupMethodInfo ResolveEventControllerKeyMethod "getImContext" o = EventControllerKeyGetImContextMethodInfo ResolveEventControllerKeyMethod "getPropagationPhase" o = Gtk.EventController.EventControllerGetPropagationPhaseMethodInfo ResolveEventControllerKeyMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveEventControllerKeyMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveEventControllerKeyMethod "getWidget" o = Gtk.EventController.EventControllerGetWidgetMethodInfo ResolveEventControllerKeyMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveEventControllerKeyMethod "setImContext" o = EventControllerKeySetImContextMethodInfo ResolveEventControllerKeyMethod "setPropagationPhase" o = Gtk.EventController.EventControllerSetPropagationPhaseMethodInfo ResolveEventControllerKeyMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveEventControllerKeyMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveEventControllerKeyMethod t EventControllerKey, O.MethodInfo info EventControllerKey p) => OL.IsLabel t (EventControllerKey -> p) where #if MIN_VERSION_base(4,10,0) fromLabel = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #else fromLabel _ = O.overloadedMethod (O.MethodProxy :: O.MethodProxy info) #endif #endif -- signal EventControllerKey::focus-in {- | /No description available in the introspection data./ -} type EventControllerKeyFocusInCallback = IO () -- | A convenience synonym for @`Nothing` :: `Maybe` `EventControllerKeyFocusInCallback`@. noEventControllerKeyFocusInCallback :: Maybe EventControllerKeyFocusInCallback noEventControllerKeyFocusInCallback = Nothing -- | Type for the callback on the (unwrapped) C side. type C_EventControllerKeyFocusInCallback = Ptr () -> -- object Ptr () -> -- user_data IO () -- | Generate a function pointer callable from C code, from a `C_EventControllerKeyFocusInCallback`. foreign import ccall "wrapper" mk_EventControllerKeyFocusInCallback :: C_EventControllerKeyFocusInCallback -> IO (FunPtr C_EventControllerKeyFocusInCallback) -- | Wrap the callback into a `GClosure`. genClosure_EventControllerKeyFocusIn :: MonadIO m => EventControllerKeyFocusInCallback -> m (GClosure C_EventControllerKeyFocusInCallback) genClosure_EventControllerKeyFocusIn cb = liftIO $ do let cb' = wrap_EventControllerKeyFocusInCallback cb mk_EventControllerKeyFocusInCallback cb' >>= B.GClosure.newGClosure -- | Wrap a `EventControllerKeyFocusInCallback` into a `C_EventControllerKeyFocusInCallback`. wrap_EventControllerKeyFocusInCallback :: EventControllerKeyFocusInCallback -> C_EventControllerKeyFocusInCallback wrap_EventControllerKeyFocusInCallback _cb _ _ = do _cb {- | Connect a signal handler for the “@focus-in@” signal, to be run before the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.on' eventControllerKey #focusIn callback @ -} onEventControllerKeyFocusIn :: (IsEventControllerKey a, MonadIO m) => a -> EventControllerKeyFocusInCallback -> m SignalHandlerId onEventControllerKeyFocusIn obj cb = liftIO $ do let cb' = wrap_EventControllerKeyFocusInCallback cb cb'' <- mk_EventControllerKeyFocusInCallback cb' connectSignalFunPtr obj "focus-in" cb'' SignalConnectBefore {- | Connect a signal handler for the “@focus-in@” signal, to be run after the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.after' eventControllerKey #focusIn callback @ -} afterEventControllerKeyFocusIn :: (IsEventControllerKey a, MonadIO m) => a -> EventControllerKeyFocusInCallback -> m SignalHandlerId afterEventControllerKeyFocusIn obj cb = liftIO $ do let cb' = wrap_EventControllerKeyFocusInCallback cb cb'' <- mk_EventControllerKeyFocusInCallback cb' connectSignalFunPtr obj "focus-in" cb'' SignalConnectAfter -- signal EventControllerKey::focus-out {- | /No description available in the introspection data./ -} type EventControllerKeyFocusOutCallback = IO () -- | A convenience synonym for @`Nothing` :: `Maybe` `EventControllerKeyFocusOutCallback`@. noEventControllerKeyFocusOutCallback :: Maybe EventControllerKeyFocusOutCallback noEventControllerKeyFocusOutCallback = Nothing -- | Type for the callback on the (unwrapped) C side. type C_EventControllerKeyFocusOutCallback = Ptr () -> -- object Ptr () -> -- user_data IO () -- | Generate a function pointer callable from C code, from a `C_EventControllerKeyFocusOutCallback`. foreign import ccall "wrapper" mk_EventControllerKeyFocusOutCallback :: C_EventControllerKeyFocusOutCallback -> IO (FunPtr C_EventControllerKeyFocusOutCallback) -- | Wrap the callback into a `GClosure`. genClosure_EventControllerKeyFocusOut :: MonadIO m => EventControllerKeyFocusOutCallback -> m (GClosure C_EventControllerKeyFocusOutCallback) genClosure_EventControllerKeyFocusOut cb = liftIO $ do let cb' = wrap_EventControllerKeyFocusOutCallback cb mk_EventControllerKeyFocusOutCallback cb' >>= B.GClosure.newGClosure -- | Wrap a `EventControllerKeyFocusOutCallback` into a `C_EventControllerKeyFocusOutCallback`. wrap_EventControllerKeyFocusOutCallback :: EventControllerKeyFocusOutCallback -> C_EventControllerKeyFocusOutCallback wrap_EventControllerKeyFocusOutCallback _cb _ _ = do _cb {- | Connect a signal handler for the “@focus-out@” signal, to be run before the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.on' eventControllerKey #focusOut callback @ -} onEventControllerKeyFocusOut :: (IsEventControllerKey a, MonadIO m) => a -> EventControllerKeyFocusOutCallback -> m SignalHandlerId onEventControllerKeyFocusOut obj cb = liftIO $ do let cb' = wrap_EventControllerKeyFocusOutCallback cb cb'' <- mk_EventControllerKeyFocusOutCallback cb' connectSignalFunPtr obj "focus-out" cb'' SignalConnectBefore {- | Connect a signal handler for the “@focus-out@” signal, to be run after the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.after' eventControllerKey #focusOut callback @ -} afterEventControllerKeyFocusOut :: (IsEventControllerKey a, MonadIO m) => a -> EventControllerKeyFocusOutCallback -> m SignalHandlerId afterEventControllerKeyFocusOut obj cb = liftIO $ do let cb' = wrap_EventControllerKeyFocusOutCallback cb cb'' <- mk_EventControllerKeyFocusOutCallback cb' connectSignalFunPtr obj "focus-out" cb'' SignalConnectAfter -- signal EventControllerKey::im-update {- | /No description available in the introspection data./ -} type EventControllerKeyImUpdateCallback = IO () -- | A convenience synonym for @`Nothing` :: `Maybe` `EventControllerKeyImUpdateCallback`@. noEventControllerKeyImUpdateCallback :: Maybe EventControllerKeyImUpdateCallback noEventControllerKeyImUpdateCallback = Nothing -- | Type for the callback on the (unwrapped) C side. type C_EventControllerKeyImUpdateCallback = Ptr () -> -- object Ptr () -> -- user_data IO () -- | Generate a function pointer callable from C code, from a `C_EventControllerKeyImUpdateCallback`. foreign import ccall "wrapper" mk_EventControllerKeyImUpdateCallback :: C_EventControllerKeyImUpdateCallback -> IO (FunPtr C_EventControllerKeyImUpdateCallback) -- | Wrap the callback into a `GClosure`. genClosure_EventControllerKeyImUpdate :: MonadIO m => EventControllerKeyImUpdateCallback -> m (GClosure C_EventControllerKeyImUpdateCallback) genClosure_EventControllerKeyImUpdate cb = liftIO $ do let cb' = wrap_EventControllerKeyImUpdateCallback cb mk_EventControllerKeyImUpdateCallback cb' >>= B.GClosure.newGClosure -- | Wrap a `EventControllerKeyImUpdateCallback` into a `C_EventControllerKeyImUpdateCallback`. wrap_EventControllerKeyImUpdateCallback :: EventControllerKeyImUpdateCallback -> C_EventControllerKeyImUpdateCallback wrap_EventControllerKeyImUpdateCallback _cb _ _ = do _cb {- | Connect a signal handler for the “@im-update@” signal, to be run before the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.on' eventControllerKey #imUpdate callback @ -} onEventControllerKeyImUpdate :: (IsEventControllerKey a, MonadIO m) => a -> EventControllerKeyImUpdateCallback -> m SignalHandlerId onEventControllerKeyImUpdate obj cb = liftIO $ do let cb' = wrap_EventControllerKeyImUpdateCallback cb cb'' <- mk_EventControllerKeyImUpdateCallback cb' connectSignalFunPtr obj "im-update" cb'' SignalConnectBefore {- | Connect a signal handler for the “@im-update@” signal, to be run after the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.after' eventControllerKey #imUpdate callback @ -} afterEventControllerKeyImUpdate :: (IsEventControllerKey a, MonadIO m) => a -> EventControllerKeyImUpdateCallback -> m SignalHandlerId afterEventControllerKeyImUpdate obj cb = liftIO $ do let cb' = wrap_EventControllerKeyImUpdateCallback cb cb'' <- mk_EventControllerKeyImUpdateCallback cb' connectSignalFunPtr obj "im-update" cb'' SignalConnectAfter -- signal EventControllerKey::key-pressed {- | This signal is emitted whenever a key is pressed. /Since: 3.24/ -} type EventControllerKeyKeyPressedCallback = Word32 {- ^ /@keyval@/: the pressed key. -} -> Word32 {- ^ /@keycode@/: the raw code of the pressed key. -} -> [Gdk.Flags.ModifierType] {- ^ /@state@/: the bitmask, representing the state of modifier keys and pointer buttons. See 'GI.Gdk.Flags.ModifierType'. -} -> IO Bool {- ^ __Returns:__ 'True' if the key press was handled, 'False' otherwise. -} -- | A convenience synonym for @`Nothing` :: `Maybe` `EventControllerKeyKeyPressedCallback`@. noEventControllerKeyKeyPressedCallback :: Maybe EventControllerKeyKeyPressedCallback noEventControllerKeyKeyPressedCallback = Nothing -- | Type for the callback on the (unwrapped) C side. type C_EventControllerKeyKeyPressedCallback = Ptr () -> -- object Word32 -> Word32 -> CUInt -> Ptr () -> -- user_data IO CInt -- | Generate a function pointer callable from C code, from a `C_EventControllerKeyKeyPressedCallback`. foreign import ccall "wrapper" mk_EventControllerKeyKeyPressedCallback :: C_EventControllerKeyKeyPressedCallback -> IO (FunPtr C_EventControllerKeyKeyPressedCallback) -- | Wrap the callback into a `GClosure`. genClosure_EventControllerKeyKeyPressed :: MonadIO m => EventControllerKeyKeyPressedCallback -> m (GClosure C_EventControllerKeyKeyPressedCallback) genClosure_EventControllerKeyKeyPressed cb = liftIO $ do let cb' = wrap_EventControllerKeyKeyPressedCallback cb mk_EventControllerKeyKeyPressedCallback cb' >>= B.GClosure.newGClosure -- | Wrap a `EventControllerKeyKeyPressedCallback` into a `C_EventControllerKeyKeyPressedCallback`. wrap_EventControllerKeyKeyPressedCallback :: EventControllerKeyKeyPressedCallback -> C_EventControllerKeyKeyPressedCallback wrap_EventControllerKeyKeyPressedCallback _cb _ keyval keycode state _ = do let state' = wordToGFlags state result <- _cb keyval keycode state' let result' = (fromIntegral . fromEnum) result return result' {- | Connect a signal handler for the “@key-pressed@” signal, to be run before the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.on' eventControllerKey #keyPressed callback @ -} onEventControllerKeyKeyPressed :: (IsEventControllerKey a, MonadIO m) => a -> EventControllerKeyKeyPressedCallback -> m SignalHandlerId onEventControllerKeyKeyPressed obj cb = liftIO $ do let cb' = wrap_EventControllerKeyKeyPressedCallback cb cb'' <- mk_EventControllerKeyKeyPressedCallback cb' connectSignalFunPtr obj "key-pressed" cb'' SignalConnectBefore {- | Connect a signal handler for the “@key-pressed@” signal, to be run after the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.after' eventControllerKey #keyPressed callback @ -} afterEventControllerKeyKeyPressed :: (IsEventControllerKey a, MonadIO m) => a -> EventControllerKeyKeyPressedCallback -> m SignalHandlerId afterEventControllerKeyKeyPressed obj cb = liftIO $ do let cb' = wrap_EventControllerKeyKeyPressedCallback cb cb'' <- mk_EventControllerKeyKeyPressedCallback cb' connectSignalFunPtr obj "key-pressed" cb'' SignalConnectAfter -- signal EventControllerKey::key-released {- | This signal is emitted whenever a key is released. /Since: 3.24/ -} type EventControllerKeyKeyReleasedCallback = Word32 {- ^ /@keyval@/: the released key. -} -> Word32 {- ^ /@keycode@/: the raw code of the released key. -} -> [Gdk.Flags.ModifierType] {- ^ /@state@/: the bitmask, representing the state of modifier keys and pointer buttons. See 'GI.Gdk.Flags.ModifierType'. -} -> IO () -- | A convenience synonym for @`Nothing` :: `Maybe` `EventControllerKeyKeyReleasedCallback`@. noEventControllerKeyKeyReleasedCallback :: Maybe EventControllerKeyKeyReleasedCallback noEventControllerKeyKeyReleasedCallback = Nothing -- | Type for the callback on the (unwrapped) C side. type C_EventControllerKeyKeyReleasedCallback = Ptr () -> -- object Word32 -> Word32 -> CUInt -> Ptr () -> -- user_data IO () -- | Generate a function pointer callable from C code, from a `C_EventControllerKeyKeyReleasedCallback`. foreign import ccall "wrapper" mk_EventControllerKeyKeyReleasedCallback :: C_EventControllerKeyKeyReleasedCallback -> IO (FunPtr C_EventControllerKeyKeyReleasedCallback) -- | Wrap the callback into a `GClosure`. genClosure_EventControllerKeyKeyReleased :: MonadIO m => EventControllerKeyKeyReleasedCallback -> m (GClosure C_EventControllerKeyKeyReleasedCallback) genClosure_EventControllerKeyKeyReleased cb = liftIO $ do let cb' = wrap_EventControllerKeyKeyReleasedCallback cb mk_EventControllerKeyKeyReleasedCallback cb' >>= B.GClosure.newGClosure -- | Wrap a `EventControllerKeyKeyReleasedCallback` into a `C_EventControllerKeyKeyReleasedCallback`. wrap_EventControllerKeyKeyReleasedCallback :: EventControllerKeyKeyReleasedCallback -> C_EventControllerKeyKeyReleasedCallback wrap_EventControllerKeyKeyReleasedCallback _cb _ keyval keycode state _ = do let state' = wordToGFlags state _cb keyval keycode state' {- | Connect a signal handler for the “@key-released@” signal, to be run before the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.on' eventControllerKey #keyReleased callback @ -} onEventControllerKeyKeyReleased :: (IsEventControllerKey a, MonadIO m) => a -> EventControllerKeyKeyReleasedCallback -> m SignalHandlerId onEventControllerKeyKeyReleased obj cb = liftIO $ do let cb' = wrap_EventControllerKeyKeyReleasedCallback cb cb'' <- mk_EventControllerKeyKeyReleasedCallback cb' connectSignalFunPtr obj "key-released" cb'' SignalConnectBefore {- | Connect a signal handler for the “@key-released@” signal, to be run after the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.after' eventControllerKey #keyReleased callback @ -} afterEventControllerKeyKeyReleased :: (IsEventControllerKey a, MonadIO m) => a -> EventControllerKeyKeyReleasedCallback -> m SignalHandlerId afterEventControllerKeyKeyReleased obj cb = liftIO $ do let cb' = wrap_EventControllerKeyKeyReleasedCallback cb cb'' <- mk_EventControllerKeyKeyReleasedCallback cb' connectSignalFunPtr obj "key-released" cb'' SignalConnectAfter -- signal EventControllerKey::modifiers {- | /No description available in the introspection data./ -} type EventControllerKeyModifiersCallback = [Gdk.Flags.ModifierType] -> IO Bool -- | A convenience synonym for @`Nothing` :: `Maybe` `EventControllerKeyModifiersCallback`@. noEventControllerKeyModifiersCallback :: Maybe EventControllerKeyModifiersCallback noEventControllerKeyModifiersCallback = Nothing -- | Type for the callback on the (unwrapped) C side. type C_EventControllerKeyModifiersCallback = Ptr () -> -- object CUInt -> Ptr () -> -- user_data IO CInt -- | Generate a function pointer callable from C code, from a `C_EventControllerKeyModifiersCallback`. foreign import ccall "wrapper" mk_EventControllerKeyModifiersCallback :: C_EventControllerKeyModifiersCallback -> IO (FunPtr C_EventControllerKeyModifiersCallback) -- | Wrap the callback into a `GClosure`. genClosure_EventControllerKeyModifiers :: MonadIO m => EventControllerKeyModifiersCallback -> m (GClosure C_EventControllerKeyModifiersCallback) genClosure_EventControllerKeyModifiers cb = liftIO $ do let cb' = wrap_EventControllerKeyModifiersCallback cb mk_EventControllerKeyModifiersCallback cb' >>= B.GClosure.newGClosure -- | Wrap a `EventControllerKeyModifiersCallback` into a `C_EventControllerKeyModifiersCallback`. wrap_EventControllerKeyModifiersCallback :: EventControllerKeyModifiersCallback -> C_EventControllerKeyModifiersCallback wrap_EventControllerKeyModifiersCallback _cb _ object _ = do let object' = wordToGFlags object result <- _cb object' let result' = (fromIntegral . fromEnum) result return result' {- | Connect a signal handler for the “@modifiers@” signal, to be run before the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.on' eventControllerKey #modifiers callback @ -} onEventControllerKeyModifiers :: (IsEventControllerKey a, MonadIO m) => a -> EventControllerKeyModifiersCallback -> m SignalHandlerId onEventControllerKeyModifiers obj cb = liftIO $ do let cb' = wrap_EventControllerKeyModifiersCallback cb cb'' <- mk_EventControllerKeyModifiersCallback cb' connectSignalFunPtr obj "modifiers" cb'' SignalConnectBefore {- | Connect a signal handler for the “@modifiers@” signal, to be run after the default handler. When is enabled, this is equivalent to @ 'Data.GI.Base.Signals.after' eventControllerKey #modifiers callback @ -} afterEventControllerKeyModifiers :: (IsEventControllerKey a, MonadIO m) => a -> EventControllerKeyModifiersCallback -> m SignalHandlerId afterEventControllerKeyModifiers obj cb = liftIO $ do let cb' = wrap_EventControllerKeyModifiersCallback cb cb'' <- mk_EventControllerKeyModifiersCallback cb' connectSignalFunPtr obj "modifiers" cb'' SignalConnectAfter #if ENABLE_OVERLOADING instance O.HasAttributeList EventControllerKey type instance O.AttributeList EventControllerKey = EventControllerKeyAttributeList type EventControllerKeyAttributeList = ('[ '("propagationPhase", Gtk.EventController.EventControllerPropagationPhasePropertyInfo), '("widget", Gtk.EventController.EventControllerWidgetPropertyInfo)] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING data EventControllerKeyFocusInSignalInfo instance SignalInfo EventControllerKeyFocusInSignalInfo where type HaskellCallbackType EventControllerKeyFocusInSignalInfo = EventControllerKeyFocusInCallback connectSignal _ obj cb connectMode = do let cb' = wrap_EventControllerKeyFocusInCallback cb cb'' <- mk_EventControllerKeyFocusInCallback cb' connectSignalFunPtr obj "focus-in" cb'' connectMode data EventControllerKeyFocusOutSignalInfo instance SignalInfo EventControllerKeyFocusOutSignalInfo where type HaskellCallbackType EventControllerKeyFocusOutSignalInfo = EventControllerKeyFocusOutCallback connectSignal _ obj cb connectMode = do let cb' = wrap_EventControllerKeyFocusOutCallback cb cb'' <- mk_EventControllerKeyFocusOutCallback cb' connectSignalFunPtr obj "focus-out" cb'' connectMode data EventControllerKeyImUpdateSignalInfo instance SignalInfo EventControllerKeyImUpdateSignalInfo where type HaskellCallbackType EventControllerKeyImUpdateSignalInfo = EventControllerKeyImUpdateCallback connectSignal _ obj cb connectMode = do let cb' = wrap_EventControllerKeyImUpdateCallback cb cb'' <- mk_EventControllerKeyImUpdateCallback cb' connectSignalFunPtr obj "im-update" cb'' connectMode data EventControllerKeyKeyPressedSignalInfo instance SignalInfo EventControllerKeyKeyPressedSignalInfo where type HaskellCallbackType EventControllerKeyKeyPressedSignalInfo = EventControllerKeyKeyPressedCallback connectSignal _ obj cb connectMode = do let cb' = wrap_EventControllerKeyKeyPressedCallback cb cb'' <- mk_EventControllerKeyKeyPressedCallback cb' connectSignalFunPtr obj "key-pressed" cb'' connectMode data EventControllerKeyKeyReleasedSignalInfo instance SignalInfo EventControllerKeyKeyReleasedSignalInfo where type HaskellCallbackType EventControllerKeyKeyReleasedSignalInfo = EventControllerKeyKeyReleasedCallback connectSignal _ obj cb connectMode = do let cb' = wrap_EventControllerKeyKeyReleasedCallback cb cb'' <- mk_EventControllerKeyKeyReleasedCallback cb' connectSignalFunPtr obj "key-released" cb'' connectMode data EventControllerKeyModifiersSignalInfo instance SignalInfo EventControllerKeyModifiersSignalInfo where type HaskellCallbackType EventControllerKeyModifiersSignalInfo = EventControllerKeyModifiersCallback connectSignal _ obj cb connectMode = do let cb' = wrap_EventControllerKeyModifiersCallback cb cb'' <- mk_EventControllerKeyModifiersCallback cb' connectSignalFunPtr obj "modifiers" cb'' connectMode type instance O.SignalList EventControllerKey = EventControllerKeySignalList type EventControllerKeySignalList = ('[ '("focusIn", EventControllerKeyFocusInSignalInfo), '("focusOut", EventControllerKeyFocusOutSignalInfo), '("imUpdate", EventControllerKeyImUpdateSignalInfo), '("keyPressed", EventControllerKeyKeyPressedSignalInfo), '("keyReleased", EventControllerKeyKeyReleasedSignalInfo), '("modifiers", EventControllerKeyModifiersSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo)] :: [(Symbol, *)]) #endif -- method EventControllerKey::new -- method type : Constructor -- Args : [Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gtk", name = "EventControllerKey"})) -- throws : False -- Skip return : False foreign import ccall "gtk_event_controller_key_new" gtk_event_controller_key_new :: Ptr Gtk.Widget.Widget -> -- widget : TInterface (Name {namespace = "Gtk", name = "Widget"}) IO (Ptr EventControllerKey) {- | /No description available in the introspection data./ -} eventControllerKeyNew :: (B.CallStack.HasCallStack, MonadIO m, Gtk.Widget.IsWidget a) => a -> m EventControllerKey eventControllerKeyNew widget = liftIO $ do widget' <- unsafeManagedPtrCastPtr widget result <- gtk_event_controller_key_new widget' checkUnexpectedReturnNULL "eventControllerKeyNew" result result' <- (wrapObject EventControllerKey) result touchManagedPtr widget return result' #if ENABLE_OVERLOADING #endif -- method EventControllerKey::forward -- method type : OrdinaryMethod -- Args : [Arg {argCName = "controller", argType = TInterface (Name {namespace = "Gtk", name = "EventControllerKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "widget", argType = TInterface (Name {namespace = "Gtk", name = "Widget"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TBoolean) -- throws : False -- Skip return : False foreign import ccall "gtk_event_controller_key_forward" gtk_event_controller_key_forward :: Ptr EventControllerKey -> -- controller : TInterface (Name {namespace = "Gtk", name = "EventControllerKey"}) Ptr Gtk.Widget.Widget -> -- widget : TInterface (Name {namespace = "Gtk", name = "Widget"}) IO CInt {- | /No description available in the introspection data./ -} eventControllerKeyForward :: (B.CallStack.HasCallStack, MonadIO m, IsEventControllerKey a, Gtk.Widget.IsWidget b) => a -> b -> m Bool eventControllerKeyForward controller widget = liftIO $ do controller' <- unsafeManagedPtrCastPtr controller widget' <- unsafeManagedPtrCastPtr widget result <- gtk_event_controller_key_forward controller' widget' let result' = (/= 0) result touchManagedPtr controller touchManagedPtr widget return result' #if ENABLE_OVERLOADING data EventControllerKeyForwardMethodInfo instance (signature ~ (b -> m Bool), MonadIO m, IsEventControllerKey a, Gtk.Widget.IsWidget b) => O.MethodInfo EventControllerKeyForwardMethodInfo a signature where overloadedMethod _ = eventControllerKeyForward #endif -- method EventControllerKey::get_group -- method type : OrdinaryMethod -- Args : [Arg {argCName = "controller", argType = TInterface (Name {namespace = "Gtk", name = "EventControllerKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TUInt) -- throws : False -- Skip return : False foreign import ccall "gtk_event_controller_key_get_group" gtk_event_controller_key_get_group :: Ptr EventControllerKey -> -- controller : TInterface (Name {namespace = "Gtk", name = "EventControllerKey"}) IO Word32 {- | /No description available in the introspection data./ -} eventControllerKeyGetGroup :: (B.CallStack.HasCallStack, MonadIO m, IsEventControllerKey a) => a -> m Word32 eventControllerKeyGetGroup controller = liftIO $ do controller' <- unsafeManagedPtrCastPtr controller result <- gtk_event_controller_key_get_group controller' touchManagedPtr controller return result #if ENABLE_OVERLOADING data EventControllerKeyGetGroupMethodInfo instance (signature ~ (m Word32), MonadIO m, IsEventControllerKey a) => O.MethodInfo EventControllerKeyGetGroupMethodInfo a signature where overloadedMethod _ = eventControllerKeyGetGroup #endif -- method EventControllerKey::get_im_context -- method type : OrdinaryMethod -- Args : [Arg {argCName = "controller", argType = TInterface (Name {namespace = "Gtk", name = "EventControllerKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GtkEventControllerKey", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TInterface (Name {namespace = "Gtk", name = "IMContext"})) -- throws : False -- Skip return : False foreign import ccall "gtk_event_controller_key_get_im_context" gtk_event_controller_key_get_im_context :: Ptr EventControllerKey -> -- controller : TInterface (Name {namespace = "Gtk", name = "EventControllerKey"}) IO (Ptr Gtk.IMContext.IMContext) {- | Gets the IM context of a key controller. /Since: 3.24/ -} eventControllerKeyGetImContext :: (B.CallStack.HasCallStack, MonadIO m, IsEventControllerKey a) => a {- ^ /@controller@/: a 'GI.Gtk.Objects.EventControllerKey.EventControllerKey' -} -> m Gtk.IMContext.IMContext {- ^ __Returns:__ the IM context -} eventControllerKeyGetImContext controller = liftIO $ do controller' <- unsafeManagedPtrCastPtr controller result <- gtk_event_controller_key_get_im_context controller' checkUnexpectedReturnNULL "eventControllerKeyGetImContext" result result' <- (newObject Gtk.IMContext.IMContext) result touchManagedPtr controller return result' #if ENABLE_OVERLOADING data EventControllerKeyGetImContextMethodInfo instance (signature ~ (m Gtk.IMContext.IMContext), MonadIO m, IsEventControllerKey a) => O.MethodInfo EventControllerKeyGetImContextMethodInfo a signature where overloadedMethod _ = eventControllerKeyGetImContext #endif -- method EventControllerKey::set_im_context -- method type : OrdinaryMethod -- Args : [Arg {argCName = "controller", argType = TInterface (Name {namespace = "Gtk", name = "EventControllerKey"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "im_context", argType = TInterface (Name {namespace = "Gtk", name = "IMContext"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Nothing, sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Nothing -- throws : False -- Skip return : False foreign import ccall "gtk_event_controller_key_set_im_context" gtk_event_controller_key_set_im_context :: Ptr EventControllerKey -> -- controller : TInterface (Name {namespace = "Gtk", name = "EventControllerKey"}) Ptr Gtk.IMContext.IMContext -> -- im_context : TInterface (Name {namespace = "Gtk", name = "IMContext"}) IO () {- | /No description available in the introspection data./ -} eventControllerKeySetImContext :: (B.CallStack.HasCallStack, MonadIO m, IsEventControllerKey a, Gtk.IMContext.IsIMContext b) => a -> b -> m () eventControllerKeySetImContext controller imContext = liftIO $ do controller' <- unsafeManagedPtrCastPtr controller imContext' <- unsafeManagedPtrCastPtr imContext gtk_event_controller_key_set_im_context controller' imContext' touchManagedPtr controller touchManagedPtr imContext return () #if ENABLE_OVERLOADING data EventControllerKeySetImContextMethodInfo instance (signature ~ (b -> m ()), MonadIO m, IsEventControllerKey a, Gtk.IMContext.IsIMContext b) => O.MethodInfo EventControllerKeySetImContextMethodInfo a signature where overloadedMethod _ = eventControllerKeySetImContext #endif