libtcod
Loading...
Searching...
No Matches
console_types.h
Go to the documentation of this file.
1/* BSD 3-Clause License
2 *
3 * Copyright © 2008-2025, Jice and the libtcod contributors.
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright notice,
10 * this list of conditions and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright notice,
13 * this list of conditions and the following disclaimer in the documentation
14 * and/or other materials provided with the distribution.
15 *
16 * 3. Neither the name of the copyright holder nor the names of its
17 * contributors may be used to endorse or promote products derived from
18 * this software without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
24 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30 * POSSIBILITY OF SUCH DAMAGE.
31 */
34#pragma once
35#ifndef TCOD_CONSOLE_TYPES_H_
36#define TCOD_CONSOLE_TYPES_H_
37
38#include "color.h"
39#include "config.h"
40#include "console.h"
41
42
126typedef enum TCOD_keycode_t {
127 TCODK_NONE,
128 TCODK_ESCAPE,
129 TCODK_BACKSPACE,
130 TCODK_TAB,
131 TCODK_ENTER,
132 TCODK_SHIFT,
133 TCODK_CONTROL,
134 TCODK_ALT,
135 TCODK_PAUSE,
136 TCODK_CAPSLOCK,
137 TCODK_PAGEUP,
138 TCODK_PAGEDOWN,
139 TCODK_END,
140 TCODK_HOME,
141 TCODK_UP,
142 TCODK_LEFT,
143 TCODK_RIGHT,
144 TCODK_DOWN,
145 TCODK_PRINTSCREEN,
146 TCODK_INSERT,
147 TCODK_DELETE,
148 TCODK_LWIN,
149 TCODK_RWIN,
150 TCODK_APPS,
151 TCODK_0,
152 TCODK_1,
153 TCODK_2,
154 TCODK_3,
155 TCODK_4,
156 TCODK_5,
157 TCODK_6,
158 TCODK_7,
159 TCODK_8,
160 TCODK_9,
161 TCODK_KP0,
162 TCODK_KP1,
163 TCODK_KP2,
164 TCODK_KP3,
165 TCODK_KP4,
166 TCODK_KP5,
167 TCODK_KP6,
168 TCODK_KP7,
169 TCODK_KP8,
170 TCODK_KP9,
171 TCODK_KPADD,
172 TCODK_KPSUB,
173 TCODK_KPDIV,
174 TCODK_KPMUL,
175 TCODK_KPDEC,
176 TCODK_KPENTER,
177 TCODK_F1,
178 TCODK_F2,
179 TCODK_F3,
180 TCODK_F4,
181 TCODK_F5,
182 TCODK_F6,
183 TCODK_F7,
184 TCODK_F8,
185 TCODK_F9,
186 TCODK_F10,
187 TCODK_F11,
188 TCODK_F12,
189 TCODK_NUMLOCK,
190 TCODK_SCROLLLOCK,
191 TCODK_SPACE,
192 TCODK_CHAR,
193 TCODK_TEXT
195
196#define TCOD_KEY_TEXT_SIZE 32
197
198
206TCOD_DEPRECATED("The libtcod event API has been deprecated, switch to using SDL event types exclusively")
207typedef struct TCOD_key_t {
208
212
226 char c;
227
232 char text[TCOD_KEY_TEXT_SIZE];
233
237
240 bool lalt;
241
244 bool lctrl;
245
248 bool lmeta;
249
252 bool ralt;
253
256 bool rctrl;
257
260 bool rmeta;
261
264 bool shift;
266
267
273typedef enum TCOD_chars_t {
274 /* single walls */
275 TCOD_CHAR_HLINE TCOD_DEPRECATED_ENUM = 196,
276 TCOD_CHAR_VLINE TCOD_DEPRECATED_ENUM = 179,
277 TCOD_CHAR_NE TCOD_DEPRECATED_ENUM = 191,
278 TCOD_CHAR_NW TCOD_DEPRECATED_ENUM = 218,
279 TCOD_CHAR_SE TCOD_DEPRECATED_ENUM = 217,
280 TCOD_CHAR_SW TCOD_DEPRECATED_ENUM = 192,
281 TCOD_CHAR_TEEW TCOD_DEPRECATED_ENUM = 180,
282 TCOD_CHAR_TEEE TCOD_DEPRECATED_ENUM = 195,
283 TCOD_CHAR_TEEN TCOD_DEPRECATED_ENUM = 193,
284 TCOD_CHAR_TEES TCOD_DEPRECATED_ENUM = 194,
285 TCOD_CHAR_CROSS TCOD_DEPRECATED_ENUM = 197,
286 /* double walls */
287 TCOD_CHAR_DHLINE TCOD_DEPRECATED_ENUM = 205,
288 TCOD_CHAR_DVLINE TCOD_DEPRECATED_ENUM = 186,
289 TCOD_CHAR_DNE TCOD_DEPRECATED_ENUM = 187,
290 TCOD_CHAR_DNW TCOD_DEPRECATED_ENUM = 201,
291 TCOD_CHAR_DSE TCOD_DEPRECATED_ENUM = 188,
292 TCOD_CHAR_DSW TCOD_DEPRECATED_ENUM = 200,
293 TCOD_CHAR_DTEEW TCOD_DEPRECATED_ENUM = 185,
294 TCOD_CHAR_DTEEE TCOD_DEPRECATED_ENUM = 204,
295 TCOD_CHAR_DTEEN TCOD_DEPRECATED_ENUM = 202,
296 TCOD_CHAR_DTEES TCOD_DEPRECATED_ENUM = 203,
297 TCOD_CHAR_DCROSS TCOD_DEPRECATED_ENUM = 206,
298 /* blocks */
299 TCOD_CHAR_BLOCK1 TCOD_DEPRECATED_ENUM = 176,
300 TCOD_CHAR_BLOCK2 TCOD_DEPRECATED_ENUM = 177,
301 TCOD_CHAR_BLOCK3 TCOD_DEPRECATED_ENUM = 178,
302 /* arrows */
303 TCOD_CHAR_ARROW_N TCOD_DEPRECATED_ENUM = 24,
304 TCOD_CHAR_ARROW_S TCOD_DEPRECATED_ENUM = 25,
305 TCOD_CHAR_ARROW_E TCOD_DEPRECATED_ENUM = 26,
306 TCOD_CHAR_ARROW_W TCOD_DEPRECATED_ENUM = 27,
307 /* arrows without tail */
308 TCOD_CHAR_ARROW2_N TCOD_DEPRECATED_ENUM = 30,
309 TCOD_CHAR_ARROW2_S TCOD_DEPRECATED_ENUM = 31,
310 TCOD_CHAR_ARROW2_E TCOD_DEPRECATED_ENUM = 16,
311 TCOD_CHAR_ARROW2_W TCOD_DEPRECATED_ENUM = 17,
312 /* double arrows */
313 TCOD_CHAR_DARROW_H TCOD_DEPRECATED_ENUM = 29,
314 TCOD_CHAR_DARROW_V TCOD_DEPRECATED_ENUM = 18,
315 /* GUI stuff */
316 TCOD_CHAR_CHECKBOX_UNSET TCOD_DEPRECATED_ENUM = 224,
317 TCOD_CHAR_CHECKBOX_SET TCOD_DEPRECATED_ENUM = 225,
318 TCOD_CHAR_RADIO_UNSET TCOD_DEPRECATED_ENUM = 9,
319 TCOD_CHAR_RADIO_SET TCOD_DEPRECATED_ENUM = 10,
320 /* sub-pixel resolution kit */
321 TCOD_CHAR_SUBP_NW TCOD_DEPRECATED_ENUM = 226,
322 TCOD_CHAR_SUBP_NE TCOD_DEPRECATED_ENUM = 227,
323 TCOD_CHAR_SUBP_N TCOD_DEPRECATED_ENUM = 228,
324 TCOD_CHAR_SUBP_SE TCOD_DEPRECATED_ENUM = 229,
325 TCOD_CHAR_SUBP_DIAG TCOD_DEPRECATED_ENUM = 230,
326 TCOD_CHAR_SUBP_E TCOD_DEPRECATED_ENUM = 231,
327 TCOD_CHAR_SUBP_SW TCOD_DEPRECATED_ENUM = 232,
328 /* miscellaneous */
329 TCOD_CHAR_SMILIE TCOD_DEPRECATED_ENUM = 1,
330 TCOD_CHAR_SMILIE_INV TCOD_DEPRECATED_ENUM = 2,
331 TCOD_CHAR_HEART TCOD_DEPRECATED_ENUM = 3,
332 TCOD_CHAR_DIAMOND TCOD_DEPRECATED_ENUM = 4,
333 TCOD_CHAR_CLUB TCOD_DEPRECATED_ENUM = 5,
334 TCOD_CHAR_SPADE TCOD_DEPRECATED_ENUM = 6,
335 TCOD_CHAR_BULLET TCOD_DEPRECATED_ENUM = 7,
336 TCOD_CHAR_BULLET_INV TCOD_DEPRECATED_ENUM = 8,
337 TCOD_CHAR_MALE TCOD_DEPRECATED_ENUM = 11,
338 TCOD_CHAR_FEMALE TCOD_DEPRECATED_ENUM = 12,
339 TCOD_CHAR_NOTE TCOD_DEPRECATED_ENUM = 13,
340 TCOD_CHAR_NOTE_DOUBLE TCOD_DEPRECATED_ENUM = 14,
341 TCOD_CHAR_LIGHT TCOD_DEPRECATED_ENUM = 15,
342 TCOD_CHAR_EXCLAM_DOUBLE TCOD_DEPRECATED_ENUM = 19,
343 TCOD_CHAR_PILCROW TCOD_DEPRECATED_ENUM = 20,
344 TCOD_CHAR_SECTION TCOD_DEPRECATED_ENUM = 21,
345 TCOD_CHAR_POUND TCOD_DEPRECATED_ENUM = 156,
346 TCOD_CHAR_MULTIPLICATION TCOD_DEPRECATED_ENUM = 158,
347 TCOD_CHAR_FUNCTION TCOD_DEPRECATED_ENUM = 159,
348 TCOD_CHAR_RESERVED TCOD_DEPRECATED_ENUM = 169,
349 TCOD_CHAR_HALF TCOD_DEPRECATED_ENUM = 171,
350 TCOD_CHAR_ONE_QUARTER TCOD_DEPRECATED_ENUM = 172,
351 TCOD_CHAR_COPYRIGHT TCOD_DEPRECATED_ENUM = 184,
352 TCOD_CHAR_CENT TCOD_DEPRECATED_ENUM = 189,
353 TCOD_CHAR_YEN TCOD_DEPRECATED_ENUM = 190,
354 TCOD_CHAR_CURRENCY TCOD_DEPRECATED_ENUM = 207,
355 TCOD_CHAR_THREE_QUARTERS TCOD_DEPRECATED_ENUM = 243,
356 TCOD_CHAR_DIVISION TCOD_DEPRECATED_ENUM = 246,
357 TCOD_CHAR_GRADE TCOD_DEPRECATED_ENUM = 248,
358 TCOD_CHAR_UMLAUT TCOD_DEPRECATED_ENUM = 249,
359 TCOD_CHAR_POW1 TCOD_DEPRECATED_ENUM = 251,
360 TCOD_CHAR_POW3 TCOD_DEPRECATED_ENUM = 252,
361 TCOD_CHAR_POW2 TCOD_DEPRECATED_ENUM = 253,
362 TCOD_CHAR_BULLET_SQUARE TCOD_DEPRECATED_ENUM = 254,
363 /* diacritics */
364} TCOD_chars_t TCOD_DEPRECATED_ENUM;
365
366#if defined(_MSC_VER) && !defined(__clang__)
367#pragma deprecated(TCOD_CHAR_HLINE)
368#pragma deprecated(TCOD_CHAR_VLINE)
369#pragma deprecated(TCOD_CHAR_NE)
370#pragma deprecated(TCOD_CHAR_NW)
371#pragma deprecated(TCOD_CHAR_SE)
372#pragma deprecated(TCOD_CHAR_SW)
373#pragma deprecated(TCOD_CHAR_TEEW)
374#pragma deprecated(TCOD_CHAR_TEEE)
375#pragma deprecated(TCOD_CHAR_TEEN)
376#pragma deprecated(TCOD_CHAR_TEES)
377#pragma deprecated(TCOD_CHAR_CROSS)
378#pragma deprecated(TCOD_CHAR_DHLINE)
379#pragma deprecated(TCOD_CHAR_DVLINE)
380#pragma deprecated(TCOD_CHAR_DNE)
381#pragma deprecated(TCOD_CHAR_DNW)
382#pragma deprecated(TCOD_CHAR_DSE)
383#pragma deprecated(TCOD_CHAR_DSW)
384#pragma deprecated(TCOD_CHAR_DTEEW)
385#pragma deprecated(TCOD_CHAR_DTEEE)
386#pragma deprecated(TCOD_CHAR_DTEEN)
387#pragma deprecated(TCOD_CHAR_DTEES)
388#pragma deprecated(TCOD_CHAR_DCROSS)
389#pragma deprecated(TCOD_CHAR_BLOCK1)
390#pragma deprecated(TCOD_CHAR_BLOCK2)
391#pragma deprecated(TCOD_CHAR_BLOCK3)
392#pragma deprecated(TCOD_CHAR_ARROW_N)
393#pragma deprecated(TCOD_CHAR_ARROW_S)
394#pragma deprecated(TCOD_CHAR_ARROW_E)
395#pragma deprecated(TCOD_CHAR_ARROW_W)
396#pragma deprecated(TCOD_CHAR_ARROW2_N)
397#pragma deprecated(TCOD_CHAR_ARROW2_S)
398#pragma deprecated(TCOD_CHAR_ARROW2_E)
399#pragma deprecated(TCOD_CHAR_ARROW2_W)
400#pragma deprecated(TCOD_CHAR_DARROW_H)
401#pragma deprecated(TCOD_CHAR_DARROW_V)
402#pragma deprecated(TCOD_CHAR_CHECKBOX_UNSET)
403#pragma deprecated(TCOD_CHAR_CHECKBOX_SET)
404#pragma deprecated(TCOD_CHAR_RADIO_UNSET)
405#pragma deprecated(TCOD_CHAR_RADIO_SET)
406#pragma deprecated(TCOD_CHAR_SUBP_NW)
407#pragma deprecated(TCOD_CHAR_SUBP_NE)
408#pragma deprecated(TCOD_CHAR_SUBP_N)
409#pragma deprecated(TCOD_CHAR_SUBP_SE)
410#pragma deprecated(TCOD_CHAR_SUBP_DIAG)
411#pragma deprecated(TCOD_CHAR_SUBP_E)
412#pragma deprecated(TCOD_CHAR_SUBP_SW)
413#pragma deprecated(TCOD_CHAR_SMILIE)
414#pragma deprecated(TCOD_CHAR_SMILIE_INV)
415#pragma deprecated(TCOD_CHAR_HEART)
416#pragma deprecated(TCOD_CHAR_DIAMOND)
417#pragma deprecated(TCOD_CHAR_CLUB)
418#pragma deprecated(TCOD_CHAR_SPADE)
419#pragma deprecated(TCOD_CHAR_BULLET)
420#pragma deprecated(TCOD_CHAR_BULLET_INV)
421#pragma deprecated(TCOD_CHAR_MALE)
422#pragma deprecated(TCOD_CHAR_FEMALE)
423#pragma deprecated(TCOD_CHAR_NOTE)
424#pragma deprecated(TCOD_CHAR_NOTE_DOUBLE)
425#pragma deprecated(TCOD_CHAR_LIGHT)
426#pragma deprecated(TCOD_CHAR_EXCLAM_DOUBLE)
427#pragma deprecated(TCOD_CHAR_PILCROW)
428#pragma deprecated(TCOD_CHAR_SECTION)
429#pragma deprecated(TCOD_CHAR_POUND)
430#pragma deprecated(TCOD_CHAR_MULTIPLICATION)
431#pragma deprecated(TCOD_CHAR_FUNCTION)
432#pragma deprecated(TCOD_CHAR_RESERVED)
433#pragma deprecated(TCOD_CHAR_HALF)
434#pragma deprecated(TCOD_CHAR_ONE_QUARTER)
435#pragma deprecated(TCOD_CHAR_COPYRIGHT)
436#pragma deprecated(TCOD_CHAR_CENT)
437#pragma deprecated(TCOD_CHAR_YEN)
438#pragma deprecated(TCOD_CHAR_CURRENCY)
439#pragma deprecated(TCOD_CHAR_THREE_QUARTERS)
440#pragma deprecated(TCOD_CHAR_DIVISION)
441#pragma deprecated(TCOD_CHAR_GRADE)
442#pragma deprecated(TCOD_CHAR_UMLAUT)
443#pragma deprecated(TCOD_CHAR_POW1)
444#pragma deprecated(TCOD_CHAR_POW3)
445#pragma deprecated(TCOD_CHAR_POW2)
446#pragma deprecated(TCOD_CHAR_BULLET_SQUARE)
447#endif // _MSC_VER
448
452typedef enum {
453 TCOD_KEY_PRESSED = 1,
454 TCOD_KEY_RELEASED = 2,
456
488
570#endif // TCOD_CONSOLE_TYPES_H_
Color handling module.
Libtcod config header.
Various console functions.
TCOD_keycode_t
Libtcod specific codes representing keys on the keyboard.
Definition console_types.h:126
TCOD_key_status_t
Bitwise flags used for functions such as TCOD_console_check_for_keypress() This was replaced by the e...
Definition console_types.h:452
TCOD_font_flags_t
These font flags can be OR'd together into a bit-field and passed to TCOD_console_set_custom_font.
Definition console_types.h:460
@ TCOD_FONT_LAYOUT_TCOD
A unique layout used by some of libtcod's fonts.
Definition console_types.h:479
@ TCOD_FONT_LAYOUT_ASCII_INROW
Tiles are arranged in row-major order.
Definition console_types.h:474
@ TCOD_FONT_LAYOUT_CP437
Decode a code page 437 tileset into Unicode code-points.
Definition console_types.h:486
@ TCOD_FONT_TYPE_GREYSCALE
Converts all tiles into a monochrome gradient.
Definition console_types.h:476
@ TCOD_FONT_LAYOUT_ASCII_INCOL
Tiles are arranged in column-major order.
Definition console_types.h:467
TCOD_chars_t
Non-standard special character codes.
Definition console_types.h:273
TCOD_renderer_t
Libtcod rendering modes.
Definition console_types.h:491
@ TCOD_RENDERER_GLSL
Alias for TCOD_RENDERER_OPENGL2.
Definition console_types.h:495
@ TCOD_RENDERER_OPENGL2
A new OpenGL 2.0 core renderer.
Definition console_types.h:551
@ TCOD_RENDERER_OPENGL
An OpenGL 1.1 implementation.
Definition console_types.h:506
@ TCOD_RENDERER_SDL
A software based renderer.
Definition console_types.h:517
@ TCOD_RENDERER_SDL2
Libtcod's primary SDL renderer.
Definition console_types.h:530
@ TCOD_RENDERER_XTERM
A renderer targeting modern XTerm terminals with 24-bit color support.
Definition console_types.h:567
Libtcod key event data, as a keycode or text character.
Definition console_types.h:207
char text[TCOD_KEY_TEXT_SIZE]
The UTF-8 text of a key when vk == TCODK_TEXT.
Definition console_types.h:232
bool lctrl
True if left control was held during this event.
Definition console_types.h:244
bool rmeta
True if the right meta key was held during this event.
Definition console_types.h:260
bool ralt
True if right alt was held during this event.
Definition console_types.h:252
bool lalt
True if left alt was held during this event.
Definition console_types.h:240
bool pressed
True if is this key was pressed.
Definition console_types.h:236
bool rctrl
True if right control was held during this event.
Definition console_types.h:256
bool lmeta
True if the left meta key was held during this event.
Definition console_types.h:248
bool shift
True if shift was held during this event.
Definition console_types.h:264
char c
The printable character of a keycode if vk == TCODK_CHAR, else 0.
Definition console_types.h:226
TCOD_keycode_t vk
The TCOD_keycode_t enum of the current key.
Definition console_types.h:211