aboutsummaryrefslogtreecommitdiff
path: root/sys/teken/teken.h
diff options
context:
space:
mode:
authorEd Schouten <ed@FreeBSD.org>2009-11-11 08:20:19 +0000
committerEd Schouten <ed@FreeBSD.org>2009-11-11 08:20:19 +0000
commit3a8a07eaddc5c0e54a22f0e7bba7d6d412fd7e80 (patch)
tree0727d54b551a5437ffd2abdee66ef48b4016605c /sys/teken/teken.h
parent0475bba7f5d9ff73cc59c9a734e88f31eb0ec11a (diff)
downloadsrc-3a8a07eaddc5c0e54a22f0e7bba7d6d412fd7e80.tar.gz
src-3a8a07eaddc5c0e54a22f0e7bba7d6d412fd7e80.zip
Allow Syscons terminal emulators to provide function key strings.
xterm and cons25 have some incompatibilities when it comes to escape sequences for special keys, such as F1 to F12, home, end, etc. Add a new te_fkeystr() that can be used to override the strings. scterm-sck won't do anything with this, but scterm-teken will use teken_get_sequences() to obtain the proper sequence.
Notes
Notes: svn path=/head/; revision=199171
Diffstat (limited to 'sys/teken/teken.h')
-rw-r--r--sys/teken/teken.h40
1 files changed, 33 insertions, 7 deletions
diff --git a/sys/teken/teken.h b/sys/teken/teken.h
index 22b57452c06c..e129d471d4cf 100644
--- a/sys/teken/teken.h
+++ b/sys/teken/teken.h
@@ -89,15 +89,14 @@ typedef void tf_fill_t(void *, const teken_rect_t *, teken_char_t,
typedef void tf_copy_t(void *, const teken_rect_t *, const teken_pos_t *);
typedef void tf_param_t(void *, int, unsigned int);
#define TP_SHOWCURSOR 0
-#define TP_CURSORKEYS 1
-#define TP_KEYPADAPP 2
-#define TP_AUTOREPEAT 3
-#define TP_SWITCHVT 4
-#define TP_132COLS 5
-#define TP_SETBELLPD 6
+#define TP_KEYPADAPP 1
+#define TP_AUTOREPEAT 2
+#define TP_SWITCHVT 3
+#define TP_132COLS 4
+#define TP_SETBELLPD 5
#define TP_SETBELLPD_PITCH(pd) ((pd) >> 16)
#define TP_SETBELLPD_DURATION(pd) ((pd) & 0xffff)
-#define TP_MOUSE 7
+#define TP_MOUSE 6
typedef void tf_respond_t(void *, const void *, size_t);
typedef struct {
@@ -168,6 +167,33 @@ void teken_set_curattr(teken_t *, const teken_attr_t *);
void teken_set_defattr(teken_t *, const teken_attr_t *);
void teken_set_winsize(teken_t *, const teken_pos_t *);
+/* Key input escape sequences. */
+#define TKEY_UP 0x00
+#define TKEY_DOWN 0x01
+#define TKEY_LEFT 0x02
+#define TKEY_RIGHT 0x03
+
+#define TKEY_INSERT 0x04
+#define TKEY_DELETE 0x05
+#define TKEY_HOME 0x06
+#define TKEY_END 0x07
+#define TKEY_PAGE_UP 0x08
+#define TKEY_PAGE_DOWN 0x09
+
+#define TKEY_F1 0x0a
+#define TKEY_F2 0x0b
+#define TKEY_F3 0x0c
+#define TKEY_F4 0x0d
+#define TKEY_F5 0x0e
+#define TKEY_F6 0x0f
+#define TKEY_F7 0x10
+#define TKEY_F8 0x11
+#define TKEY_F9 0x12
+#define TKEY_F10 0x13
+#define TKEY_F11 0x14
+#define TKEY_F12 0x15
+const char *teken_get_sequence(teken_t *, unsigned int);
+
/* Legacy features. */
void teken_set_8bit(teken_t *);
void teken_set_cons25(teken_t *);