finch/libgnt/gntkeys.h

branch
soc.2013.gobjectification.plugins
changeset 37138
a5f26022c3a5
parent 37094
84873ce721dc
parent 35879
f4a2868ba612
child 37139
5eb4f6b78114
equal deleted inserted replaced
37137:27cf01a05bdf 37138:a5f26022c3a5
27 * @section_id: libgnt-gntkeys 27 * @section_id: libgnt-gntkeys
28 * @short_description: <filename>gntkeys.h</filename> 28 * @short_description: <filename>gntkeys.h</filename>
29 * @title: Keys API 29 * @title: Keys API
30 */ 30 */
31 31
32 #include <curses.h>
33 #include <term.h> 32 #include <term.h>
34 33
35 /* 34 /*
36 * terminfo/termcap doesn't provide all the information that I want to use, eg. 35 * terminfo/termcap doesn't provide all the information that I want to use, eg.
37 * ctrl-up, ctrl-down etc. So I am going to hard-code some of the information 36 * ctrl-up, ctrl-down etc. So I am going to hard-code some of the information
41 extern char *gnt_key_cdown; 40 extern char *gnt_key_cdown;
42 extern char *gnt_key_cleft; 41 extern char *gnt_key_cleft;
43 extern char *gnt_key_cright; 42 extern char *gnt_key_cright;
44 43
45 #define SAFE(x) ((cur_term && (x)) ? (x) : "") 44 #define SAFE(x) ((cur_term && (x)) ? (x) : "")
45
46 /* This is needed so that g-ir-scanner does not take GNT_KEY_CTRL_* as
47 constants -- because if it does, the .gir contains the following invalid XML
48 characters, and parsing explodes */
49 #define CONST(x) x
50
51 #ifdef _WIN32
52
53 /* XXX: \xe1 is a hacky alias for \x00 key code */
54
55 #define GNT_KEY_POPUP CONST("") /* not supported? */
56
57 #define GNT_KEY_UP CONST("\xe0\x48")
58 #define GNT_KEY_DOWN CONST("\xe0\x50")
59 #define GNT_KEY_LEFT CONST("\xe0\x4B")
60 #define GNT_KEY_RIGHT CONST("\xe0\x4D")
61
62 #define GNT_KEY_CTRL_UP CONST("\xe0\x8d")
63 #define GNT_KEY_CTRL_DOWN CONST("\xe0\x91")
64 #define GNT_KEY_CTRL_LEFT CONST("\xe0\x73")
65 #define GNT_KEY_CTRL_RIGHT CONST("\xe0\x74")
66
67 #define GNT_KEY_PGUP CONST("\xe0\x49")
68 #define GNT_KEY_PGDOWN CONST("\xe0\x51")
69 #define GNT_KEY_HOME CONST("\xe0\x47")
70 #define GNT_KEY_END CONST("\xe0\x4f")
71
72 #define GNT_KEY_ENTER CONST("\x0d")
73
74 #define GNT_KEY_BACKSPACE CONST("\x08")
75 #define GNT_KEY_DEL CONST("\xe0\x53")
76 #define GNT_KEY_INS CONST("\xe0\x52")
77 #define GNT_KEY_BACK_TAB CONST("\xe1\x94")
78
79 #define GNT_KEY_F1 CONST("\xe1\x3b")
80 #define GNT_KEY_F2 CONST("\xe1\x3c")
81 #define GNT_KEY_F3 CONST("\xe1\x3d")
82 #define GNT_KEY_F4 CONST("\xe1\x3e")
83 #define GNT_KEY_F5 CONST("\xe1\x3f")
84 #define GNT_KEY_F6 CONST("\xe1\x40")
85 #define GNT_KEY_F7 CONST("\xe1\x41")
86 #define GNT_KEY_F8 CONST("\xe1\x42")
87 #define GNT_KEY_F9 CONST("\xe1\x43")
88 #define GNT_KEY_F10 CONST("\xe1\x44")
89 #define GNT_KEY_F11 CONST("\xe0\x85")
90 #define GNT_KEY_F12 CONST("\xe0\x86")
91
92 #else
46 93
47 #define GNT_KEY_POPUP SAFE(key_f16) /* Apparently */ 94 #define GNT_KEY_POPUP SAFE(key_f16) /* Apparently */
48 95
49 /* Arrow keys */ 96 /* Arrow keys */
50 #define GNT_KEY_LEFT SAFE(key_left) 97 #define GNT_KEY_LEFT SAFE(key_left)
67 #define GNT_KEY_BACKSPACE SAFE(key_backspace) 114 #define GNT_KEY_BACKSPACE SAFE(key_backspace)
68 #define GNT_KEY_DEL SAFE(key_dc) 115 #define GNT_KEY_DEL SAFE(key_dc)
69 #define GNT_KEY_INS SAFE(key_ic) 116 #define GNT_KEY_INS SAFE(key_ic)
70 #define GNT_KEY_BACK_TAB ((cur_term && back_tab) ? back_tab : SAFE(key_btab)) 117 #define GNT_KEY_BACK_TAB ((cur_term && back_tab) ? back_tab : SAFE(key_btab))
71 118
72 /* This is needed so that g-ir-scanner does not take GNT_KEY_CTRL_* as 119 #define GNT_KEY_F1 SAFE(key_f1)
73 constants -- because if it does, the .gir contains the following invalid XML 120 #define GNT_KEY_F2 SAFE(key_f2)
74 characters, and parsing explodes */ 121 #define GNT_KEY_F3 SAFE(key_f3)
75 #define CONST(x) x 122 #define GNT_KEY_F4 SAFE(key_f4)
123 #define GNT_KEY_F5 SAFE(key_f5)
124 #define GNT_KEY_F6 SAFE(key_f6)
125 #define GNT_KEY_F7 SAFE(key_f7)
126 #define GNT_KEY_F8 SAFE(key_f8)
127 #define GNT_KEY_F9 SAFE(key_f9)
128 #define GNT_KEY_F10 SAFE(key_f10)
129 #define GNT_KEY_F11 SAFE(key_f11)
130 #define GNT_KEY_F12 SAFE(key_f12)
131
132 #endif
76 133
77 #define GNT_KEY_CTRL_A CONST("\001") 134 #define GNT_KEY_CTRL_A CONST("\001")
78 #define GNT_KEY_CTRL_B CONST("\002") 135 #define GNT_KEY_CTRL_B CONST("\002")
79 #define GNT_KEY_CTRL_D CONST("\004") 136 #define GNT_KEY_CTRL_D CONST("\004")
80 #define GNT_KEY_CTRL_E CONST("\005") 137 #define GNT_KEY_CTRL_E CONST("\005")

mercurial