1 /* vifm
2  * Copyright (C) 2016 xaizek.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
17  */
18 
19 #ifndef VIFM__MODES__WK_H__
20 #define VIFM__MODES__WK_H__
21 
22 /* This file provides convenience definitions of keys.
23  *
24  * Abbreviations:
25  *  - WK  -- Wide Key
26  *  - WC  -- Wide Character
27  *  - NC  -- Narrow Character
28  *  - _C_ -- Control key
29  * */
30 
31 /* Ctrl+<x>. */
32 #define WK_C_a      L"\x01"
33 #define WK_C_b      L"\x02"
34 #define WK_C_c      L"\x03"
35 #define WK_C_d      L"\x04"
36 #define WK_C_e      L"\x05"
37 #define WK_C_f      L"\x06"
38 #define WK_C_g      L"\x07"
39 #define WK_C_h      L"\x08"
40 #define WK_C_i      L"\x09"
41 #define WK_C_j      L"\x0a"
42 #define WK_C_k      L"\x0b"
43 #define WK_C_l      L"\x0c"
44 #define WK_C_m      L"\x0d"
45 #define WK_C_n      L"\x0e"
46 #define WK_C_o      L"\x0f"
47 #define WK_C_p      L"\x10"
48 #define WK_C_q      L"\x11"
49 #define WK_C_r      L"\x12"
50 #define WK_C_s      L"\x13"
51 #define WK_C_t      L"\x14"
52 #define WK_C_u      L"\x15"
53 #define WK_C_v      L"\x16"
54 #define WK_C_w      L"\x17"
55 #define WK_C_x      L"\x18"
56 #define WK_C_y      L"\x19"
57 #define WK_C_z      L"\x1a"
58 #define WK_C_RB     L"\x1d"
59 #define WK_C_USCORE L"\x1f"
60 
61 /* Non-letter characters and convenience defines. */
62 #define WK_ALT     WK_ESC
63 #define WK_CR      WK_C_m
64 #define WK_BAR     L"|"
65 #define WK_CARET   L"^"
66 #define WK_COLON   L":"
67 #define WK_COMMA   L","
68 #define WK_DELETE  L"\x7f"
69 #define WK_DOLLAR  L"$"
70 #define WK_DOT     L"."
71 #define WK_EM      L"!"
72 #define WK_EQUALS  L"="
73 #define WK_ESC     L"\x1b"
74 #define WK_GT      L">"
75 #define WK_LB      L"["
76 #define WK_RB      L"]"
77 #define WK_LCB     L"{"
78 #define WK_LP      L"("
79 #define WK_LT      L"<"
80 #define WK_MINUS   L"-"
81 #define WK_PERCENT L"%"
82 #define WK_PLUS    L"+"
83 #define WK_QM      L"?"
84 #define WK_QUOTE   L"'"
85 #define WK_RCB     L"}"
86 #define WK_RP      L")"
87 #define WK_SCOLON  L";"
88 #define WK_SLASH   L"/"
89 #define WK_SPACE   L" "
90 #define WK_USCORE  L"_"
91 #define WK_ZERO    L"0"
92 
93 /* Upper-case letters. */
94 #define WK_A L"A"
95 #define WK_B L"B"
96 #define WK_C L"C"
97 #define WK_D L"D"
98 #define WK_E L"E"
99 #define WK_F L"F"
100 #define WK_G L"G"
101 #define WK_H L"H"
102 #define WK_I L"I"
103 #define WK_J L"J"
104 #define WK_K L"K"
105 #define WK_L L"L"
106 #define WK_M L"M"
107 #define WK_N L"N"
108 #define WK_O L"O"
109 #define WK_P L"P"
110 #define WK_Q L"Q"
111 #define WK_R L"R"
112 #define WK_S L"S"
113 #define WK_T L"T"
114 #define WK_U L"U"
115 #define WK_V L"V"
116 #define WK_W L"W"
117 #define WK_X L"X"
118 #define WK_Y L"Y"
119 #define WK_Z L"Z"
120 
121 /* Lower-case letters. */
122 #define WK_a L"a"
123 #define WK_b L"b"
124 #define WK_c L"c"
125 #define WK_d L"d"
126 #define WK_e L"e"
127 #define WK_f L"f"
128 #define WK_g L"g"
129 #define WK_h L"h"
130 #define WK_i L"i"
131 #define WK_j L"j"
132 #define WK_k L"k"
133 #define WK_l L"l"
134 #define WK_m L"m"
135 #define WK_n L"n"
136 #define WK_o L"o"
137 #define WK_p L"p"
138 #define WK_q L"q"
139 #define WK_r L"r"
140 #define WK_s L"s"
141 #define WK_t L"t"
142 #define WK_u L"u"
143 #define WK_v L"v"
144 #define WK_w L"w"
145 #define WK_x L"x"
146 #define WK_y L"y"
147 #define WK_z L"z"
148 
149 /* Character form for use in aggregate initializers of wide strings or direct
150  * comparisons. */
151 #define WC_C_m L'\x0d'
152 #define WC_C_w L'\x17'
153 #define WC_C_z L'\x1a'
154 #define WC_CR  WC_C_m
155 #define WC_z   L'z'
156 #define NC_C_c '\x03'
157 #define NC_C_w '\x17'
158 #define NC_ESC '\x1b'
159 
160 /* Custom keys. */
161 #define WC_C_SPACE ((wchar_t)((wint_t)0xe000 + 0))
162 
163 #endif /* VIFM__MODES__WK_H__ */
164 
165 /* vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : */
166 /* vim: set cinoptions+=t0 : */
167