{- | Copyright : Will Thompson, Iñaki García Etxebarria and Jonas Platte License : LGPL-2.1 Maintainer : Iñaki García Etxebarria (inaki@blueleaf.cc) /No description available in the introspection data./ -} #define ENABLE_OVERLOADING (MIN_VERSION_haskell_gi_overloading(1,0,0) \ && !defined(__HADDOCK_VERSION__)) module GI.GdkX11.Objects.X11Keymap ( -- * Exported types X11Keymap(..) , IsX11Keymap , toX11Keymap , noX11Keymap , -- * Methods -- ** getGroupForState #method:getGroupForState# #if ENABLE_OVERLOADING X11KeymapGetGroupForStateMethodInfo , #endif x11KeymapGetGroupForState , -- ** keyIsModifier #method:keyIsModifier# #if ENABLE_OVERLOADING X11KeymapKeyIsModifierMethodInfo , #endif x11KeymapKeyIsModifier , ) 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.Objects.Keymap as Gdk.Keymap -- | Memory-managed wrapper type. newtype X11Keymap = X11Keymap (ManagedPtr X11Keymap) foreign import ccall "gdk_x11_keymap_get_type" c_gdk_x11_keymap_get_type :: IO GType instance GObject X11Keymap where gobjectType = c_gdk_x11_keymap_get_type -- | Type class for types which can be safely cast to `X11Keymap`, for instance with `toX11Keymap`. class (GObject o, O.IsDescendantOf X11Keymap o) => IsX11Keymap o instance (GObject o, O.IsDescendantOf X11Keymap o) => IsX11Keymap o instance O.HasParentTypes X11Keymap type instance O.ParentTypes X11Keymap = '[Gdk.Keymap.Keymap, GObject.Object.Object] -- | Cast to `X11Keymap`, for types for which this is known to be safe. For general casts, use `Data.GI.Base.ManagedPtr.castTo`. toX11Keymap :: (MonadIO m, IsX11Keymap o) => o -> m X11Keymap toX11Keymap = liftIO . unsafeCastTo X11Keymap -- | A convenience alias for `Nothing` :: `Maybe` `X11Keymap`. noX11Keymap :: Maybe X11Keymap noX11Keymap = Nothing #if ENABLE_OVERLOADING type family ResolveX11KeymapMethod (t :: Symbol) (o :: *) :: * where ResolveX11KeymapMethod "addVirtualModifiers" o = Gdk.Keymap.KeymapAddVirtualModifiersMethodInfo ResolveX11KeymapMethod "bindProperty" o = GObject.Object.ObjectBindPropertyMethodInfo ResolveX11KeymapMethod "bindPropertyFull" o = GObject.Object.ObjectBindPropertyFullMethodInfo ResolveX11KeymapMethod "forceFloating" o = GObject.Object.ObjectForceFloatingMethodInfo ResolveX11KeymapMethod "freezeNotify" o = GObject.Object.ObjectFreezeNotifyMethodInfo ResolveX11KeymapMethod "getv" o = GObject.Object.ObjectGetvMethodInfo ResolveX11KeymapMethod "haveBidiLayouts" o = Gdk.Keymap.KeymapHaveBidiLayoutsMethodInfo ResolveX11KeymapMethod "isFloating" o = GObject.Object.ObjectIsFloatingMethodInfo ResolveX11KeymapMethod "keyIsModifier" o = X11KeymapKeyIsModifierMethodInfo ResolveX11KeymapMethod "lookupKey" o = Gdk.Keymap.KeymapLookupKeyMethodInfo ResolveX11KeymapMethod "mapVirtualModifiers" o = Gdk.Keymap.KeymapMapVirtualModifiersMethodInfo ResolveX11KeymapMethod "notify" o = GObject.Object.ObjectNotifyMethodInfo ResolveX11KeymapMethod "notifyByPspec" o = GObject.Object.ObjectNotifyByPspecMethodInfo ResolveX11KeymapMethod "ref" o = GObject.Object.ObjectRefMethodInfo ResolveX11KeymapMethod "refSink" o = GObject.Object.ObjectRefSinkMethodInfo ResolveX11KeymapMethod "runDispose" o = GObject.Object.ObjectRunDisposeMethodInfo ResolveX11KeymapMethod "stealData" o = GObject.Object.ObjectStealDataMethodInfo ResolveX11KeymapMethod "stealQdata" o = GObject.Object.ObjectStealQdataMethodInfo ResolveX11KeymapMethod "thawNotify" o = GObject.Object.ObjectThawNotifyMethodInfo ResolveX11KeymapMethod "translateKeyboardState" o = Gdk.Keymap.KeymapTranslateKeyboardStateMethodInfo ResolveX11KeymapMethod "unref" o = GObject.Object.ObjectUnrefMethodInfo ResolveX11KeymapMethod "watchClosure" o = GObject.Object.ObjectWatchClosureMethodInfo ResolveX11KeymapMethod "getCapsLockState" o = Gdk.Keymap.KeymapGetCapsLockStateMethodInfo ResolveX11KeymapMethod "getData" o = GObject.Object.ObjectGetDataMethodInfo ResolveX11KeymapMethod "getDirection" o = Gdk.Keymap.KeymapGetDirectionMethodInfo ResolveX11KeymapMethod "getEntriesForKeycode" o = Gdk.Keymap.KeymapGetEntriesForKeycodeMethodInfo ResolveX11KeymapMethod "getEntriesForKeyval" o = Gdk.Keymap.KeymapGetEntriesForKeyvalMethodInfo ResolveX11KeymapMethod "getGroupForState" o = X11KeymapGetGroupForStateMethodInfo ResolveX11KeymapMethod "getModifierMask" o = Gdk.Keymap.KeymapGetModifierMaskMethodInfo ResolveX11KeymapMethod "getModifierState" o = Gdk.Keymap.KeymapGetModifierStateMethodInfo ResolveX11KeymapMethod "getNumLockState" o = Gdk.Keymap.KeymapGetNumLockStateMethodInfo ResolveX11KeymapMethod "getProperty" o = GObject.Object.ObjectGetPropertyMethodInfo ResolveX11KeymapMethod "getQdata" o = GObject.Object.ObjectGetQdataMethodInfo ResolveX11KeymapMethod "getScrollLockState" o = Gdk.Keymap.KeymapGetScrollLockStateMethodInfo ResolveX11KeymapMethod "setData" o = GObject.Object.ObjectSetDataMethodInfo ResolveX11KeymapMethod "setProperty" o = GObject.Object.ObjectSetPropertyMethodInfo ResolveX11KeymapMethod l o = O.MethodResolutionFailed l o instance (info ~ ResolveX11KeymapMethod t X11Keymap, O.MethodInfo info X11Keymap p) => OL.IsLabel t (X11Keymap -> 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 #if ENABLE_OVERLOADING instance O.HasAttributeList X11Keymap type instance O.AttributeList X11Keymap = X11KeymapAttributeList type X11KeymapAttributeList = ('[ ] :: [(Symbol, *)]) #endif #if ENABLE_OVERLOADING #endif #if ENABLE_OVERLOADING type instance O.SignalList X11Keymap = X11KeymapSignalList type X11KeymapSignalList = ('[ '("directionChanged", Gdk.Keymap.KeymapDirectionChangedSignalInfo), '("keysChanged", Gdk.Keymap.KeymapKeysChangedSignalInfo), '("notify", GObject.Object.ObjectNotifySignalInfo), '("stateChanged", Gdk.Keymap.KeymapStateChangedSignalInfo)] :: [(Symbol, *)]) #endif -- method X11Keymap::get_group_for_state -- method type : OrdinaryMethod -- Args : [Arg {argCName = "keymap", argType = TInterface (Name {namespace = "GdkX11", name = "X11Keymap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkX11Keymap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "state", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "raw state returned from X", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}] -- Lengths : [] -- returnType : Just (TBasicType TInt) -- throws : False -- Skip return : False foreign import ccall "gdk_x11_keymap_get_group_for_state" gdk_x11_keymap_get_group_for_state :: Ptr X11Keymap -> -- keymap : TInterface (Name {namespace = "GdkX11", name = "X11Keymap"}) Word32 -> -- state : TBasicType TUInt IO Int32 {- | Extracts the group from the state field sent in an X Key event. This is only needed for code processing raw X events, since 'GI.Gdk.Structs.EventKey.EventKey' directly includes an is_modifier field. /Since: 3.6/ -} x11KeymapGetGroupForState :: (B.CallStack.HasCallStack, MonadIO m, IsX11Keymap a) => a {- ^ /@keymap@/: a 'GI.GdkX11.Objects.X11Keymap.X11Keymap' -} -> Word32 {- ^ /@state@/: raw state returned from X -} -> m Int32 {- ^ __Returns:__ the index of the active keyboard group for the event -} x11KeymapGetGroupForState keymap state = liftIO $ do keymap' <- unsafeManagedPtrCastPtr keymap result <- gdk_x11_keymap_get_group_for_state keymap' state touchManagedPtr keymap return result #if ENABLE_OVERLOADING data X11KeymapGetGroupForStateMethodInfo instance (signature ~ (Word32 -> m Int32), MonadIO m, IsX11Keymap a) => O.MethodInfo X11KeymapGetGroupForStateMethodInfo a signature where overloadedMethod _ = x11KeymapGetGroupForState #endif -- method X11Keymap::key_is_modifier -- method type : OrdinaryMethod -- Args : [Arg {argCName = "keymap", argType = TInterface (Name {namespace = "GdkX11", name = "X11Keymap"}), direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "a #GdkX11Keymap", sinceVersion = Nothing}, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keycode", argType = TBasicType TUInt, direction = DirectionIn, mayBeNull = False, argDoc = Documentation {rawDocText = Just "the hardware keycode from a key event", 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 "gdk_x11_keymap_key_is_modifier" gdk_x11_keymap_key_is_modifier :: Ptr X11Keymap -> -- keymap : TInterface (Name {namespace = "GdkX11", name = "X11Keymap"}) Word32 -> -- keycode : TBasicType TUInt IO CInt {- | Determines whether a particular key code represents a key that is a modifier. That is, it’s a key that normally just affects the keyboard state and the behavior of other keys rather than producing a direct effect itself. This is only needed for code processing raw X events, since 'GI.Gdk.Structs.EventKey.EventKey' directly includes an is_modifier field. /Since: 3.6/ -} x11KeymapKeyIsModifier :: (B.CallStack.HasCallStack, MonadIO m, IsX11Keymap a) => a {- ^ /@keymap@/: a 'GI.GdkX11.Objects.X11Keymap.X11Keymap' -} -> Word32 {- ^ /@keycode@/: the hardware keycode from a key event -} -> m Bool {- ^ __Returns:__ 'True' if the hardware keycode is a modifier key -} x11KeymapKeyIsModifier keymap keycode = liftIO $ do keymap' <- unsafeManagedPtrCastPtr keymap result <- gdk_x11_keymap_key_is_modifier keymap' keycode let result' = (/= 0) result touchManagedPtr keymap return result' #if ENABLE_OVERLOADING data X11KeymapKeyIsModifierMethodInfo instance (signature ~ (Word32 -> m Bool), MonadIO m, IsX11Keymap a) => O.MethodInfo X11KeymapKeyIsModifierMethodInfo a signature where overloadedMethod _ = x11KeymapKeyIsModifier #endif