]> gitweb.factorcode.org Git - factor.git/blob - basis/ui/backend/x11/keys/keys.factor
Switch to https urls
[factor.git] / basis / ui / backend / x11 / keys / keys.factor
1 ! Copyright (C) 2016 Björn Lindqvist
2 ! See https://factorcode.org/license.txt for BSD license.
3 USING: accessors assocs kernel literals ui.gestures x11.X
4 x11.keysymdef ;
5 IN: ui.backend.x11.keys
6
7 CONSTANT: modifiers
8     {
9         ${ S+ ShiftMask }
10         ${ C+ ControlMask }
11         ${ A+ Mod1Mask }
12         ${ M+ Mod4Mask }
13     }
14
15 CONSTANT: codes
16     H{
17         { $ XK_BackSpace "BACKSPACE" }
18         { $ XK_Tab "TAB" }
19         { $ XK_ISO_Left_Tab "TAB" }
20         { $ XK_Return "RET" }
21         { $ XK_KP_Enter "ENTER" }
22         { $ XK_Escape "ESC" }
23         { $ XK_Delete "DELETE" }
24         { $ XK_KP_Delete "DELETE" }
25         { $ XK_Insert "INSERT" }
26         { $ XK_KP_Insert "INSERT" }
27         { $ XK_Home "HOME" }
28         { $ XK_KP_Home "HOME" }
29         { $ XK_Left "LEFT" }
30         { $ XK_KP_Left "LEFT" }
31         { $ XK_Up "UP" }
32         { $ XK_KP_Up "UP" }
33         { $ XK_Right "RIGHT" }
34         { $ XK_KP_Right "RIGHT" }
35         { $ XK_Down "DOWN" }
36         { $ XK_KP_Down "DOWN" }
37         { $ XK_Page_Up "PAGE_UP" }
38         { $ XK_KP_Page_Up "PAGE_UP" }
39         { $ XK_Page_Down "PAGE_DOWN" }
40         { $ XK_KP_Page_Down "PAGE_DOWN" }
41         { $ XK_End "END" }
42         { $ XK_KP_End "END" }
43         { $ XK_Begin "BEGIN" }
44         { $ XK_KP_Begin "BEGIN" }
45         { $ XK_F1 "F1" }
46         { $ XK_F2 "F2" }
47         { $ XK_F3 "F3" }
48         { $ XK_F4 "F4" }
49         { $ XK_F5 "F5" }
50         { $ XK_F6 "F6" }
51         { $ XK_F7 "F7" }
52         { $ XK_F8 "F8" }
53         { $ XK_F9 "F9" }
54         { $ XK_F10 "F10" }
55         { $ XK_F11 "F11" }
56         { $ XK_F12 "F12" }
57
58         { $ XK_Shift_L f }
59         { $ XK_Shift_R f }
60         { $ XK_Control_L f }
61         { $ XK_Control_R f }
62         { $ XK_Caps_Lock f }
63         { $ XK_Shift_Lock f }
64
65         { $ XK_Meta_L f }
66         { $ XK_Meta_R f }
67         { $ XK_Alt_L f }
68         { $ XK_Alt_R f }
69         { $ XK_Super_L f }
70         { $ XK_Super_R f }
71         { $ XK_Hyper_L f }
72         { $ XK_Hyper_R f }
73     }
74
75 : code>sym ( code -- name/code/f action? )
76     dup codes at* [ nip dup t and ] when ;
77
78 : event-modifiers ( event -- seq )
79     state>> modifiers modifier ;