aboutsummaryrefslogtreecommitdiff
path: root/termkey2.h
diff options
context:
space:
mode:
Diffstat (limited to 'termkey2.h')
-rw-r--r--termkey2.h277
1 files changed, 0 insertions, 277 deletions
diff --git a/termkey2.h b/termkey2.h
deleted file mode 100644
index 0fa0635..0000000
--- a/termkey2.h
+++ /dev/null
@@ -1,277 +0,0 @@
-#ifndef TERMKEY2_H
-#define TERMKEY2_H
-
-#include <stdint.h>
-#include <stdlib.h>
-#include <limits.h>
-
-#include "termkey2-config.h"
-
-#define TERMKEY_CHECK_VERSION \
- termkey_check_version (TERMKEY_VERSION_MAJOR, TERMKEY_VERSION_MINOR)
-
-typedef enum termkey_sym termkey_sym_t;
-enum termkey_sym
-{
- TERMKEY_SYM_UNKNOWN = -1,
- TERMKEY_SYM_NONE = 0,
-
- /* Special names in C0 */
- TERMKEY_SYM_BACKSPACE,
- TERMKEY_SYM_TAB,
- TERMKEY_SYM_ENTER,
- TERMKEY_SYM_ESCAPE,
-
- /* Special names in G0 */
- TERMKEY_SYM_SPACE,
- TERMKEY_SYM_DEL,
-
- /* Special keys */
- TERMKEY_SYM_UP,
- TERMKEY_SYM_DOWN,
- TERMKEY_SYM_LEFT,
- TERMKEY_SYM_RIGHT,
- TERMKEY_SYM_BEGIN,
- TERMKEY_SYM_FIND,
- TERMKEY_SYM_INSERT,
- TERMKEY_SYM_DELETE,
- TERMKEY_SYM_SELECT,
- TERMKEY_SYM_PAGEUP,
- TERMKEY_SYM_PAGEDOWN,
- TERMKEY_SYM_HOME,
- TERMKEY_SYM_END,
-
- /* Special keys from terminfo */
- TERMKEY_SYM_CANCEL,
- TERMKEY_SYM_CLEAR,
- TERMKEY_SYM_CLOSE,
- TERMKEY_SYM_COMMAND,
- TERMKEY_SYM_COPY,
- TERMKEY_SYM_EXIT,
- TERMKEY_SYM_HELP,
- TERMKEY_SYM_MARK,
- TERMKEY_SYM_MESSAGE,
- TERMKEY_SYM_MOVE,
- TERMKEY_SYM_OPEN,
- TERMKEY_SYM_OPTIONS,
- TERMKEY_SYM_PRINT,
- TERMKEY_SYM_REDO,
- TERMKEY_SYM_REFERENCE,
- TERMKEY_SYM_REFRESH,
- TERMKEY_SYM_REPLACE,
- TERMKEY_SYM_RESTART,
- TERMKEY_SYM_RESUME,
- TERMKEY_SYM_SAVE,
- TERMKEY_SYM_SUSPEND,
- TERMKEY_SYM_UNDO,
-
- /* Numeric keypad special keys */
- TERMKEY_SYM_KP0,
- TERMKEY_SYM_KP1,
- TERMKEY_SYM_KP2,
- TERMKEY_SYM_KP3,
- TERMKEY_SYM_KP4,
- TERMKEY_SYM_KP5,
- TERMKEY_SYM_KP6,
- TERMKEY_SYM_KP7,
- TERMKEY_SYM_KP8,
- TERMKEY_SYM_KP9,
- TERMKEY_SYM_KPENTER,
- TERMKEY_SYM_KPPLUS,
- TERMKEY_SYM_KPMINUS,
- TERMKEY_SYM_KPMULT,
- TERMKEY_SYM_KPDIV,
- TERMKEY_SYM_KPCOMMA,
- TERMKEY_SYM_KPPERIOD,
- TERMKEY_SYM_KPEQUALS,
-
- TERMKEY_N_SYMS
-};
-
-typedef enum termkey_type termkey_type_t;
-enum termkey_type
-{
- TERMKEY_TYPE_KEY,
- TERMKEY_TYPE_FUNCTION,
- TERMKEY_TYPE_KEYSYM,
- TERMKEY_TYPE_MOUSE,
- TERMKEY_TYPE_POSITION,
- TERMKEY_TYPE_MODEREPORT,
- /* add other recognised types here */
-
- TERMKEY_TYPE_UNKNOWN_CSI = -1
-};
-
-typedef enum termkey_result termkey_result_t;
-enum termkey_result
-{
- TERMKEY_RES_NONE,
- TERMKEY_RES_KEY,
- TERMKEY_RES_EOF,
- TERMKEY_RES_AGAIN,
- TERMKEY_RES_ERROR
-};
-
-typedef enum termkey_mouse_event termkey_mouse_event_t;
-enum termkey_mouse_event
-{
- TERMKEY_MOUSE_UNKNOWN,
- TERMKEY_MOUSE_PRESS,
- TERMKEY_MOUSE_DRAG,
- TERMKEY_MOUSE_RELEASE
-};
-
-enum
-{
- TERMKEY_KEYMOD_SHIFT = 1 << 0,
- TERMKEY_KEYMOD_ALT = 1 << 1,
- TERMKEY_KEYMOD_CTRL = 1 << 2
-};
-
-typedef struct termkey_key termkey_key_t;
-struct termkey_key
-{
- termkey_type_t type;
- union
- {
- uint32_t codepoint; /* TERMKEY_TYPE_KEY */
- int number; /* TERMKEY_TYPE_FUNCTION */
- termkey_sym_t sym; /* TERMKEY_TYPE_KEYSYM */
-
- /* TERMKEY_TYPE_MODEREPORT */
- /* opaque, see termkey_interpret_modereport() */
- struct { char initial; int mode, value; } mode;
-
- /* TERMKEY_TYPE_MOUSE */
- /* opaque, see termkey_interpret_mouse() */
- struct { uint16_t x, y, info; } mouse;
- } code;
-
- int modifiers;
-
- /* The raw multibyte sequence for the key */
- char multibyte[MB_LEN_MAX + 1];
-};
-
-typedef struct termkey termkey_t;
-
-enum
-{
- /* Do not interpret C0//DEL codes if possible */
- TERMKEY_FLAG_NOINTERPRET = 1 << 0,
- /* Convert KP codes to regular keypresses */
- TERMKEY_FLAG_CONVERTKP = 1 << 1,
- /* Don't try to decode the input characters */
- TERMKEY_FLAG_RAW = 1 << 2,
- /* Do not make initial termios calls on construction */
- TERMKEY_FLAG_NOTERMIOS = 1 << 4,
- /* Sets TERMKEY_CANON_SPACESYMBOL */
- TERMKEY_FLAG_SPACESYMBOL = 1 << 5,
- /* Allow Ctrl-C to be read as normal, disabling SIGINT */
- TERMKEY_FLAG_CTRLC = 1 << 6,
- /* Return ERROR on signal (EINTR) rather than retry */
- TERMKEY_FLAG_EINTR = 1 << 7
-};
-
-enum
-{
- TERMKEY_CANON_SPACESYMBOL = 1 << 0, /* Space is symbolic rather than Unicode */
- TERMKEY_CANON_DELBS = 1 << 1 /* Del is converted to Backspace */
-};
-
-void termkey_check_version (int major, int minor);
-
-termkey_t *termkey_new (int fd, const char *encoding, int flags);
-termkey_t *termkey_new_abstract (const char *term,
- const char *encoding, int flags);
-void termkey_free (termkey_t *tk);
-void termkey_destroy (termkey_t *tk);
-
-int termkey_start (termkey_t *tk);
-int termkey_stop (termkey_t *tk);
-int termkey_is_started (termkey_t *tk);
-
-int termkey_get_fd (termkey_t *tk);
-
-int termkey_get_flags (termkey_t *tk);
-void termkey_set_flags (termkey_t *tk, int newflags);
-
-int termkey_get_waittime (termkey_t *tk);
-void termkey_set_waittime (termkey_t *tk, int msec);
-
-int termkey_get_canonflags (termkey_t *tk);
-void termkey_set_canonflags (termkey_t *tk, int flags);
-
-size_t termkey_get_buffer_size (termkey_t *tk);
-int termkey_set_buffer_size (termkey_t *tk, size_t size);
-
-size_t termkey_get_buffer_remaining (termkey_t *tk);
-
-void termkey_canonicalise (termkey_t *tk, termkey_key_t *key);
-
-termkey_result_t termkey_getkey (termkey_t *tk, termkey_key_t *key);
-termkey_result_t termkey_getkey_force (termkey_t *tk, termkey_key_t *key);
-termkey_result_t termkey_waitkey (termkey_t *tk, termkey_key_t *key);
-
-termkey_result_t termkey_advisereadable (termkey_t *tk);
-
-size_t termkey_push_bytes (termkey_t *tk, const char *bytes, size_t len);
-
-termkey_sym_t termkey_register_keyname (termkey_t *tk,
- termkey_sym_t sym, const char *name);
-const char *termkey_get_keyname (termkey_t *tk, termkey_sym_t sym);
-const char *termkey_lookup_keyname (termkey_t *tk,
- const char *str, termkey_sym_t *sym);
-
-termkey_sym_t termkey_keyname2sym (termkey_t *tk, const char *keyname);
-
-termkey_result_t termkey_interpret_mouse (termkey_t *tk,
- const termkey_key_t *key, termkey_mouse_event_t *event,
- int *button, int *line, int *col);
-termkey_result_t termkey_interpret_position (termkey_t *tk,
- const termkey_key_t *key, int *line, int *col);
-termkey_result_t termkey_interpret_modereport (termkey_t *tk,
- const termkey_key_t *key, int *initial, int *mode, int *value);
-termkey_result_t termkey_interpret_csi (termkey_t *tk,
- const termkey_key_t *key, long args[], size_t *nargs, unsigned long *cmd);
-
-typedef enum termkey_format termkey_format_t;
-enum termkey_format
-{
- /* Shift-... instead of S-... */
- TERMKEY_FORMAT_LONGMOD = 1 << 0,
- /* ^X instead of C-X */
- TERMKEY_FORMAT_CARETCTRL = 1 << 1,
- /* Meta- or M- instead of Alt- or A- */
- TERMKEY_FORMAT_ALTISMETA = 1 << 2,
- /* Wrap special keys in brackets like <Escape> */
- TERMKEY_FORMAT_WRAPBRACKET = 1 << 3,
- /* M Foo instead of M-Foo */
- TERMKEY_FORMAT_SPACEMOD = 1 << 4,
- /* meta or m instead of Meta or M */
- TERMKEY_FORMAT_LOWERMOD = 1 << 5,
- /* page down instead of PageDown */
- TERMKEY_FORMAT_LOWERSPACE = 1 << 6,
- /* Include mouse position if relevant; @ col,line */
- TERMKEY_FORMAT_MOUSE_POS = 1 << 8
-};
-
-/* Some useful combinations */
-
-#define TERMKEY_FORMAT_VIM (termkey_format_t) \
- (TERMKEY_FORMAT_ALTISMETA | TERMKEY_FORMAT_WRAPBRACKET)
-#define TERMKEY_FORMAT_URWID (termkey_format_t) \
- (TERMKEY_FORMAT_LONGMOD | TERMKEY_FORMAT_ALTISMETA | \
- TERMKEY_FORMAT_LOWERMOD | TERMKEY_FORMAT_SPACEMOD | \
- TERMKEY_FORMAT_LOWERSPACE)
-
-size_t termkey_strfkey (termkey_t *tk, char *buffer, size_t len,
- termkey_key_t *key, termkey_format_t format);
-const char *termkey_strpkey (termkey_t *tk, const char *str,
- termkey_key_t *key, termkey_format_t format);
-
-int termkey_keycmp (termkey_t *tk,
- const termkey_key_t *key1, const termkey_key_t *key2);
-
-#endif // ! TERMKEY2_H
-