aboutsummaryrefslogtreecommitdiff
path: root/termkey.h
diff options
context:
space:
mode:
authorPaul LeoNerd Evans <leonerd@leonerd.org.uk>2008-11-16 12:28:38 +0000
committerPaul LeoNerd Evans <leonerd@leonerd.org.uk>2008-11-16 12:28:38 +0000
commitc2dd9675d6af30ab5129519325bac68491087cc1 (patch)
tree4a594fd1d97d74c24f3dc519116ca5d69b921195 /termkey.h
parent4a108d491670b0da98cfdbafbc87dd69f1b3acc2 (diff)
downloadtermo-c2dd9675d6af30ab5129519325bac68491087cc1.tar.gz
termo-c2dd9675d6af30ab5129519325bac68491087cc1.tar.xz
termo-c2dd9675d6af30ab5129519325bac68491087cc1.zip
Store major and minor version number in Makefile; substitute #defines in termkey.h at build time
Diffstat (limited to 'termkey.h')
-rw-r--r--termkey.h162
1 files changed, 0 insertions, 162 deletions
diff --git a/termkey.h b/termkey.h
deleted file mode 100644
index 4227518..0000000
--- a/termkey.h
+++ /dev/null
@@ -1,162 +0,0 @@
-#ifndef GUARD_TERMKEY_H_
-#define GUARD_TERMKEY_H_
-
-#include <stdint.h>
-#include <stdlib.h>
-
-typedef enum {
- 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,
-
- // et cetera ad nauseum
-} termkey_sym;
-
-typedef enum {
- TERMKEY_TYPE_UNICODE,
- TERMKEY_TYPE_FUNCTION,
- TERMKEY_TYPE_KEYSYM
-} termkey_type;
-
-typedef enum {
- TERMKEY_RES_NONE,
- TERMKEY_RES_KEY,
- TERMKEY_RES_EOF,
- TERMKEY_RES_AGAIN,
-} termkey_result;
-
-enum {
- TERMKEY_KEYMOD_SHIFT = 1 << 0,
- TERMKEY_KEYMOD_ALT = 1 << 1,
- TERMKEY_KEYMOD_CTRL = 1 << 2,
-};
-
-typedef int termkey_keysym;
-
-typedef struct {
- termkey_type type;
- union {
- long codepoint; // TERMKEY_TYPE_UNICODE
- int number; // TERMKEY_TYPE_FUNCTION
- termkey_keysym sym; // TERMKEY_TYPE_KEYSYM
- } code;
- int modifiers;
-
- /* Any Unicode character can be UTF-8 encoded in no more than 6 bytes, plus
- * terminating NUL */
- char utf8[7];
-} termkey_key;
-
-typedef struct termkey termkey_t;
-
-enum {
- TERMKEY_FLAG_NOINTERPRET = 1 << 0, // Do not interpret C0//G1 codes if possible
- TERMKEY_FLAG_CONVERTKP = 1 << 1, // Convert KP codes to regular keypresses
- TERMKEY_FLAG_RAW = 1 << 2, // Input is raw bytes, not UTF-8
- TERMKEY_FLAG_UTF8 = 1 << 3, // Input is definitely UTF-8
- TERMKEY_FLAG_NOTERMIOS = 1 << 4, // Do not make initial termios calls on construction
-};
-
-termkey_t *termkey_new(int fd, int flags);
-void termkey_free(termkey_t *tk);
-void termkey_destroy(termkey_t *tk);
-
-int termkey_get_flags(termkey_t *tk);
-void termkey_set_flags(termkey_t *tk, int newflags);
-
-void termkey_set_waittime(termkey_t *tk, int msec);
-int termkey_get_waittime(termkey_t *tk);
-
-termkey_result termkey_getkey(termkey_t *tk, termkey_key *key);
-termkey_result termkey_getkey_force(termkey_t *tk, termkey_key *key);
-termkey_result termkey_waitkey(termkey_t *tk, termkey_key *key);
-
-void termkey_pushinput(termkey_t *tk, unsigned char *input, size_t inputlen);
-
-termkey_result termkey_advisereadable(termkey_t *tk);
-
-termkey_keysym termkey_register_keyname(termkey_t *tk, termkey_keysym sym, const char *name);
-const char *termkey_get_keyname(termkey_t *tk, termkey_keysym sym);
-
-typedef enum {
- TERMKEY_FORMAT_LONGMOD = 1 << 0, // Shift-... instead of S-...
- TERMKEY_FORMAT_CARETCTRL = 1 << 1, // ^X instead of C-X
- TERMKEY_FORMAT_ALTISMETA = 1 << 2, // Meta- or M- instead of Alt- or A-
- TERMKEY_FORMAT_WRAPBRACKET = 1 << 3, // Wrap special keys in brackets like <Escape>
-} termkey_format;
-
-// Some useful combinations
-
-#define TERMKEY_FORMAT_VIM (TERMKEY_FORMAT_ALTISMETA|TERMKEY_FORMAT_WRAPBRACKET)
-
-size_t termkey_snprint_key(termkey_t *tk, char *buffer, size_t len, termkey_key *key, termkey_format format);
-
-#endif