Maintainer | Toshio Ito <debug.ito@gmail.com> |
---|---|
Safe Haskell | Safe-Inferred |
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
Show KeyMaskMap Source # | |
Defined in WildBind.X11.Internal.Key Methods showsPrec :: Int -> KeyMaskMap -> ShowS # show :: KeyMaskMap -> String # showList :: [KeyMaskMap] -> ShowS # | |
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 # |
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
Show XKeyEvent Source # | |
Eq XKeyEvent Source # | |
Ord XKeyEvent Source # | |
Describable XKeyEvent Source # | |
Defined in WildBind.X11.Internal.Key Methods describe :: XKeyEvent -> ActionDescription # | |
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