| Maintainer | Toshio Ito <debug.ito@gmail.com> |
|---|---|
| Safe Haskell | None |
| Language | Haskell2010 |
WildBind.X11.Internal.Key
Description
This is an internal module. Package users should not rely on this.
Synopsis
- class XKeyInput k where
- toKeySym :: k -> KeySym
- toModifierMasks :: KeyMaskMap -> k -> NonEmpty KeyMask
- fromKeyEvent :: KeyMaskMap -> KeyEventType -> KeySym -> KeyMask -> Maybe k
- xKeyEventToXKeyInput :: XKeyInput k => KeyMaskMap -> KeyEventType -> XKeyEventPtr -> MaybeT IO k
- data KeyEventType
- data KeyMaskMap = KeyMaskMap {}
- getKeyMaskMap :: Display -> IO KeyMaskMap
- data XKeyEvent = XKeyEvent {}
- data XMod
- class ToXKeyEvent k where
- toXKeyEvent :: k -> XKeyEvent
- addXMod :: ToXKeyEvent k => XMod -> k -> XKeyEvent
- press :: ToXKeyEvent k => k -> XKeyEvent
- release :: ToXKeyEvent k => k -> XKeyEvent
- shift :: ToXKeyEvent k => k -> XKeyEvent
- ctrl :: ToXKeyEvent k => k -> XKeyEvent
- alt :: ToXKeyEvent k => k -> XKeyEvent
- super :: ToXKeyEvent k => k -> XKeyEvent
- xGrabKey :: Display -> Window -> KeySym -> KeyMask -> IO ()
- xUngrabKey :: Display -> Window -> KeySym -> KeyMask -> IO ()
- xSendKeyEvent :: KeyMaskMap -> Display -> Window -> XKeyEvent -> IO ()
Key
class XKeyInput k where Source #
Class of data types that can be handled by X11. The data type can tell X11 to grab key with optional modifiers, and it can be extracted from a X11 Event object.
Since: 0.2.0.0
Minimal complete definition
Methods
toKeySym :: k -> KeySym Source #
Get the X11 keysym for this input.
toModifierMasks :: KeyMaskMap -> k -> NonEmpty KeyMask Source #
Get modifer masks to grab the keysym. The grab action is repeated for all modifier masks. By default, it just returns 0.
fromKeyEvent :: KeyMaskMap -> KeyEventType -> KeySym -> KeyMask -> Maybe k Source #
Create the input object from a key event type, a keysym and a modifier (got from XEvent.)
Instances
xKeyEventToXKeyInput :: XKeyInput k => KeyMaskMap -> KeyEventType -> XKeyEventPtr -> MaybeT IO k Source #
Extract the XKeyInput from the XKeyEvent.
Since: 0.2.0.0
data KeyEventType Source #
Whether the key is pressed or released.
Since: 0.2.0.0
Constructors
| KeyPress | |
| KeyRelease |
Instances
Modifiers
data KeyMaskMap Source #
KeyMask values assigned to each modifier keys/states. If
the modifier doesn't exist, the mask is 0.
Since: 0.2.0.0
Constructors
| KeyMaskMap | |
Fields
| |
Instances
| Eq KeyMaskMap Source # | |
Defined in WildBind.X11.Internal.Key | |
| Ord KeyMaskMap Source # | |
Defined in WildBind.X11.Internal.Key Methods compare :: KeyMaskMap -> KeyMaskMap -> Ordering # (<) :: KeyMaskMap -> KeyMaskMap -> Bool # (<=) :: KeyMaskMap -> KeyMaskMap -> Bool # (>) :: KeyMaskMap -> KeyMaskMap -> Bool # (>=) :: KeyMaskMap -> KeyMaskMap -> Bool # max :: KeyMaskMap -> KeyMaskMap -> KeyMaskMap # min :: KeyMaskMap -> KeyMaskMap -> KeyMaskMap # | |
| Show KeyMaskMap Source # | |
Defined in WildBind.X11.Internal.Key Methods showsPrec :: Int -> KeyMaskMap -> ShowS # show :: KeyMaskMap -> String # showList :: [KeyMaskMap] -> ShowS # | |
getKeyMaskMap :: Display -> IO KeyMaskMap Source #
Get current KeyMaskMap.
Since: 0.2.0.0
XKeyEvent
High-level X11 key event.
Since: 0.2.0.0
Constructors
| XKeyEvent | |
Fields
| |
Instances
| Eq XKeyEvent Source # | |
| Ord XKeyEvent Source # | |
| Show XKeyEvent Source # | |
| Describable XKeyEvent Source # | |
Defined in WildBind.X11.Internal.Key | |
| ToXKeyEvent XKeyEvent Source # | |
Defined in WildBind.X11.Internal.Key Methods toXKeyEvent :: XKeyEvent -> XKeyEvent Source # | |
| XKeyInput XKeyEvent Source # |
|
Defined in WildBind.X11.Internal.Key Methods toKeySym :: XKeyEvent -> KeySym Source # toModifierMasks :: KeyMaskMap -> XKeyEvent -> NonEmpty KeyMask Source # fromKeyEvent :: KeyMaskMap -> KeyEventType -> KeySym -> KeyMask -> Maybe XKeyEvent Source # | |
X11 key modifiers.
Since: 0.2.0.0
class ToXKeyEvent k where Source #
Something that can converted to XKeyEvent.
Since: 0.2.0.0
Methods
toXKeyEvent :: k -> XKeyEvent Source #
Instances
| ToXKeyEvent KeySym Source # | |
Defined in WildBind.X11.Internal.Key Methods toXKeyEvent :: KeySym -> XKeyEvent Source # | |
| ToXKeyEvent XKeyEvent Source # | |
Defined in WildBind.X11.Internal.Key Methods toXKeyEvent :: XKeyEvent -> XKeyEvent Source # | |
| (ToXKeyEvent a, ToXKeyEvent b) => ToXKeyEvent (Either a b) Source # | |
Defined in WildBind.X11.Internal.Key Methods toXKeyEvent :: Either a b -> XKeyEvent Source # | |
addXMod :: ToXKeyEvent k => XMod -> k -> XKeyEvent Source #
Add a XMod to xKeyEventMods.
Since: 0.2.0.0
press :: ToXKeyEvent k => k -> XKeyEvent Source #
Set KeyPress to xKeyEventType.
Since: 0.2.0.0
release :: ToXKeyEvent k => k -> XKeyEvent Source #
Set KeyRelease to xKeyEventType.
Since: 0.2.0.0
shift :: ToXKeyEvent k => k -> XKeyEvent Source #
Add Shift modifier to xKeyEventMods.
Since: 0.2.0.0
ctrl :: ToXKeyEvent k => k -> XKeyEvent Source #
Add Ctrl modifier to xKeyEventMods.
Since: 0.2.0.0
alt :: ToXKeyEvent k => k -> XKeyEvent Source #
Add Alt modifier to xKeyEventMods.
Since: 0.2.0.0
super :: ToXKeyEvent k => k -> XKeyEvent Source #
Add Super modifier to xKeyEventMods.
Since: 0.2.0.0
Grabs
xGrabKey :: Display -> Window -> KeySym -> KeyMask -> IO () Source #
Grab the specified key on the specified window. The key is captured from now on, so the window won't get that.
Since: 0.2.0.0
xUngrabKey :: Display -> Window -> KeySym -> KeyMask -> IO () Source #
Release the grab on the specified key.
Since: 0.2.0.0
Event generation
xSendKeyEvent :: KeyMaskMap -> Display -> Window -> XKeyEvent -> IO () Source #
Send a XKeyEvent to the window.
Since: 0.2.0.0