ScummVM API documentation
keys.h
1/* ScummVM - Graphic Adventure Engine
2 *
3 * ScummVM is the legal property of its developers, whose names
4 * are too numerous to list here. Please refer to the COPYRIGHT
5 * file distributed with this source distribution.
6 *
7 * This program is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 *
20 */
21
22#ifndef MADS_CORE_KEYS_H
23#define MADS_CORE_KEYS_H
24
25#include "common/keyboard.h"
26#include "mads/core/general.h"
27
28namespace MADS {
29
30/* keystroke defines */
31
32#define left_key Common::KEYCODE_LEFT
33#define right_key Common::KEYCODE_RIGHT
34#define up_key Common::KEYCODE_UP
35#define down_key Common::KEYCODE_DOWN
36
37#define ins_key Common::KEYCODE_INSERT
38#define del_key Common::KEYCODE_DELETE
39#define delete_key Common::KEYCODE_DELETE
40
41#define home_key Common::KEYCODE_HOME
42#define end_key Common::KEYCODE_END
43
44#define pgup_key Common::KEYCODE_PAGEUP
45#define pgdn_key Common::KEYCODE_PAGEDOWN
46
47#define enter_key Common::KEYCODE_RETURN
48#define esc_key Common::KEYCODE_ESCAPE
49#define bksp_key Common::KEYCODE_BACKSPACE
50#define ctrl_del_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_DELETE)
51#define tab_key Common::KEYCODE_TAB
52#define backtab_key ((Common::KBD_SHIFT << 16) | Common::KEYCODE_TAB)
53
54#define space_key Common::KEYCODE_SPACE
55
56#define A_key 'A'
57#define B_key 'B'
58#define C_key 'C'
59#define D_key 'D'
60#define E_key 'E'
61#define F_key 'F'
62#define G_key 'G'
63#define H_key 'H'
64#define I_key 'I'
65#define J_key 'J'
66#define K_key 'K'
67#define L_key 'L'
68#define M_key 'M'
69#define N_key 'N'
70#define O_key 'O'
71#define P_key 'P'
72#define Q_key 'Q'
73#define R_key 'R'
74#define S_key 'S'
75#define T_key 'T'
76#define U_key 'U'
77#define V_key 'V'
78#define W_key 'W'
79#define X_key 'X'
80#define Y_key 'Y'
81#define Z_key 'Z'
82
83#define a_key 'a'
84#define b_key 'b'
85#define g_key 'g'
86#define i_key 'i'
87#define j_key 'j'
88#define m_key 'm'
89#define z_key 'z'
90
91#define alt_a_key ((Common::KBD_ALT << 16) | Common::KEYCODE_a)
92#define alt_b_key ((Common::KBD_ALT << 16) | Common::KEYCODE_b)
93#define alt_c_key ((Common::KBD_ALT << 16) | Common::KEYCODE_c)
94#define alt_d_key ((Common::KBD_ALT << 16) | Common::KEYCODE_d)
95#define alt_e_key ((Common::KBD_ALT << 16) | Common::KEYCODE_e)
96#define alt_f_key ((Common::KBD_ALT << 16) | Common::KEYCODE_f)
97#define alt_g_key ((Common::KBD_ALT << 16) | Common::KEYCODE_g)
98#define alt_h_key ((Common::KBD_ALT << 16) | Common::KEYCODE_h)
99#define alt_i_key ((Common::KBD_ALT << 16) | Common::KEYCODE_i)
100#define alt_j_key ((Common::KBD_ALT << 16) | Common::KEYCODE_j)
101#define alt_k_key ((Common::KBD_ALT << 16) | Common::KEYCODE_k)
102#define alt_l_key ((Common::KBD_ALT << 16) | Common::KEYCODE_l)
103#define alt_m_key ((Common::KBD_ALT << 16) | Common::KEYCODE_m)
104#define alt_n_key ((Common::KBD_ALT << 16) | Common::KEYCODE_n)
105#define alt_o_key ((Common::KBD_ALT << 16) | Common::KEYCODE_o)
106#define alt_p_key ((Common::KBD_ALT << 16) | Common::KEYCODE_p)
107#define alt_q_key ((Common::KBD_ALT << 16) | Common::KEYCODE_q)
108#define alt_r_key ((Common::KBD_ALT << 16) | Common::KEYCODE_r)
109#define alt_s_key ((Common::KBD_ALT << 16) | Common::KEYCODE_s)
110#define alt_t_key ((Common::KBD_ALT << 16) | Common::KEYCODE_t)
111#define alt_u_key ((Common::KBD_ALT << 16) | Common::KEYCODE_u)
112#define alt_v_key ((Common::KBD_ALT << 16) | Common::KEYCODE_v)
113#define alt_w_key ((Common::KBD_ALT << 16) | Common::KEYCODE_w)
114#define alt_x_key ((Common::KBD_ALT << 16) | Common::KEYCODE_x)
115#define alt_y_key ((Common::KBD_ALT << 16) | Common::KEYCODE_y)
116#define alt_z_key ((Common::KBD_ALT << 16) | Common::KEYCODE_z)
117
118#define f1_key Common::KEYCODE_F1
119#define f2_key Common::KEYCODE_F2
120#define f3_key Common::KEYCODE_F3
121#define f4_key Common::KEYCODE_F4
122#define f5_key Common::KEYCODE_F5
123#define f6_key Common::KEYCODE_F6
124#define f7_key Common::KEYCODE_F7
125#define f8_key Common::KEYCODE_F8
126#define f9_key Common::KEYCODE_F9
127#define f10_key Common::KEYCODE_F10
128
129#define shift_f1_key ((Common::KBD_SHIFT << 16) | Common::KEYCODE_F1)
130#define shift_f2_key ((Common::KBD_SHIFT << 16) | Common::KEYCODE_F2)
131#define shift_f3_key ((Common::KBD_SHIFT << 16) | Common::KEYCODE_F3)
132#define shift_f4_key ((Common::KBD_SHIFT << 16) | Common::KEYCODE_F4)
133#define shift_f5_key ((Common::KBD_SHIFT << 16) | Common::KEYCODE_F5)
134#define shift_f6_key ((Common::KBD_SHIFT << 16) | Common::KEYCODE_F6)
135#define shift_f7_key ((Common::KBD_SHIFT << 16) | Common::KEYCODE_F7)
136#define shift_f8_key ((Common::KBD_SHIFT << 16) | Common::KEYCODE_F8)
137#define shift_f9_key ((Common::KBD_SHIFT << 16) | Common::KEYCODE_F9)
138#define shift_f10_key ((Common::KBD_SHIFT << 16) | Common::KEYCODE_F10)
139
140#define ctrl_f1_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_F1)
141#define ctrl_f2_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_F2)
142#define ctrl_f3_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_F3)
143#define ctrl_f4_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_F4)
144#define ctrl_f5_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_F5)
145#define ctrl_f6_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_F6)
146#define ctrl_f7_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_F7)
147#define ctrl_f8_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_F8)
148#define ctrl_f9_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_F9)
149#define ctrl_f10_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_F10)
150
151#define alt_f1_key ((Common::KBD_ALT << 16) | Common::KEYCODE_F1)
152#define alt_f2_key ((Common::KBD_ALT << 16) | Common::KEYCODE_F2)
153#define alt_f3_key ((Common::KBD_ALT << 16) | Common::KEYCODE_F3)
154#define alt_f4_key ((Common::KBD_ALT << 16) | Common::KEYCODE_F4)
155#define alt_f5_key ((Common::KBD_ALT << 16) | Common::KEYCODE_F5)
156#define alt_f6_key ((Common::KBD_ALT << 16) | Common::KEYCODE_F6)
157#define alt_f7_key ((Common::KBD_ALT << 16) | Common::KEYCODE_F7)
158#define alt_f8_key ((Common::KBD_ALT << 16) | Common::KEYCODE_F8)
159#define alt_f9_key ((Common::KBD_ALT << 16) | Common::KEYCODE_F9)
160#define alt_f10_key ((Common::KBD_ALT << 16) | Common::KEYCODE_F10)
161
162#define ctrl_a_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_a)
163#define ctrl_b_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_b)
164#define ctrl_c_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_c)
165#define ctrl_d_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_d)
166#define ctrl_e_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_e)
167#define ctrl_f_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_f)
168#define ctrl_g_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_g)
169#define ctrl_h_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_h)
170#define ctrl_i_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_i)
171#define ctrl_j_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_j)
172#define ctrl_k_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_k)
173#define ctrl_l_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_l)
174#define ctrl_m_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_m)
175#define ctrl_n_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_n)
176#define ctrl_o_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_o)
177#define ctrl_p_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_p)
178#define ctrl_q_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_q)
179#define ctrl_r_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_r)
180#define ctrl_s_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_s)
181#define ctrl_t_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_t)
182#define ctrl_u_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_u)
183#define ctrl_v_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_v)
184#define ctrl_w_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_w)
185#define ctrl_x_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_x)
186#define ctrl_y_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_y)
187#define ctrl_z_key ((Common::KBD_CTRL << 16) | Common::KEYCODE_z)
188
189#define KEYS_MAX_BUF_CHARS 32
190
191struct KeyBuffer {
192 int buf[KEYS_MAX_BUF_CHARS];
193 int len;
194};
195
196typedef KeyBuffer *KeyPtr;
197
198extern word keys_special_button;
199
200
201extern int keys_any();
202extern int keys_get();
203
207extern void keys_flush();
208
212extern void keys_flush_buffer(KeyPtr key_buf);
213
217extern void keys_fill_buffer(KeyPtr key_buf);
218
222extern int keys_read_buffer(KeyPtr key_buf);
223
228extern int keys_append_buffer(KeyPtr key_buf, int newchar);
229
236extern int keys_insert_buffer(KeyPtr key_buf, int newchar, int before);
237
241extern void keys_stuff_buffer(KeyPtr key_buf, int *newstuff);
242
252extern int keys_fix_alt(int target);
253
254extern void keys_install();
255extern void keys_remove();
256extern int keys_check_install();
257extern void keys_enable();
258extern void keys_disable();
259
260extern void init_keys();
261
262} // namespace MADS
263
264#endif
Definition: keys.h:191