summaryrefslogtreecommitdiff
path: root/src/keyboard.c
diff options
context:
space:
mode:
authorAlbert Cervin <albert@acervin.com>2022-12-06 12:58:51 +0100
committerAlbert Cervin <albert@acervin.com>2022-12-06 12:58:51 +0100
commit66d50bd7b04922a91fbe3e4d49c68070ec1a7b14 (patch)
tree87600e117f4262555bcc875b09e050536cbee492 /src/keyboard.c
parent78410b18e5d4d117b714eb9f34c689920c32a985 (diff)
downloaddged-66d50bd7b04922a91fbe3e4d49c68070ec1a7b14.tar.gz
dged-66d50bd7b04922a91fbe3e4d49c68070ec1a7b14.tar.xz
dged-66d50bd7b04922a91fbe3e4d49c68070ec1a7b14.zip
Add minibuffer
Diffstat (limited to 'src/keyboard.c')
-rw-r--r--src/keyboard.c22
1 files changed, 18 insertions, 4 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index 012ec5a..aaeccd2 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -1,6 +1,8 @@
#include "keyboard.h"
#include "reactor.h"
+#include "stdio.h"
+#include <ctype.h>
#include <errno.h>
#include <string.h>
#include <unistd.h>
@@ -41,8 +43,8 @@ void parse_keys(uint8_t *bytes, uint32_t nbytes, struct key *out_keys,
*out_nkeys = nkps;
}
-struct keyboard_update keyboard_begin_frame(struct keyboard *kbd,
- struct reactor *reactor) {
+struct keyboard_update keyboard_update(struct keyboard *kbd,
+ struct reactor *reactor) {
struct keyboard_update upd =
(struct keyboard_update){.keys = {0}, .nkeys = 0};
@@ -67,8 +69,20 @@ struct keyboard_update keyboard_begin_frame(struct keyboard *kbd,
return upd;
}
-void keyboard_end_frame(struct keyboard *kbd) {}
-
bool key_equal(struct key *key, uint8_t mod, uint8_t c) {
return key->c == c && key->mod == mod;
}
+
+void key_name(struct key *key, char *buf, size_t capacity) {
+ const char *mod = "";
+ switch (key->mod) {
+ case Ctrl:
+ mod = "c-";
+ break;
+ case Meta:
+ mod = "m-";
+ break;
+ }
+
+ snprintf(buf, capacity, "%s%c", mod, tolower((char)key->c));
+}