summary refs log tree commit diff
path: root/keyboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboard.c')
-rw-r--r--keyboard.c40
1 files changed, 15 insertions, 25 deletions
diff --git a/keyboard.c b/keyboard.c
index 00a568b..540f6c9 100644
--- a/keyboard.c
+++ b/keyboard.c
@@ -12,33 +12,30 @@
 	exit(1)
 
 void
-kbd_init(struct kbd *kb, struct layout *layouts) {
+kbd_init(struct kbd *kb) {
 	fprintf(stderr, "Initializing keyboard\n");
 
-	kb->layouts = layouts;
-
-	kb->layer_index = 0;
-
-	enum layout_id layer;
-	layer = kb->layers[kb->layer_index];
-	kb->layout = &kb->layouts[layer];
+	kb->suggs[0].label = "Hello";
+	kb->suggs[1].label = "World";
+	kb->suggs[2].label = "World";
+	kb->suggs[3].label = NULL;
 }
 
 void
-kbd_init_layout(struct layout *l, uint32_t width, uint32_t height) {
+kbd_init_suggs(struct key *suggs, uint32_t width, uint32_t height) {
 	uint32_t x = 0, y = 0;
 	uint8_t rows = 1;
 
-	l->keyheight = height / rows;
+	uint32_t keyheight = height / rows;
 
-	struct key *k = l->keys;
+	struct key *k = suggs;
 	double rowlength = kbd_get_row_length(k);
 	while (k->label != NULL) {
 		k->x = x;
 		k->y = y;
 		k->w = width / rowlength;
 		x += k->w;
-		k->h = l->keyheight;
+		k->h = keyheight;
 		k++;
 	}
 }
@@ -55,8 +52,7 @@ kbd_get_row_length(struct key *k) {
 
 struct key *
 kbd_get_key(struct kbd *kb, uint32_t x, uint32_t y) {
-	struct layout *l = kb->layout;
-	struct key *k = l->keys;
+	struct key *k = kb->suggs;
 	if (kb->debug)
 		fprintf(stderr, "get key: +%d+%d\n", x, y);
 	while (k->label != NULL) {
@@ -95,18 +91,12 @@ kbd_press_key(struct kbd *kb, struct key *k, uint32_t time) {
 	if (k->label) {
 		kb->last_press = k;
 		kbd_draw_key(kb, k, Press);
-		kbd_print_key_stdout(kb, k);
+		printf("%s", k->label);
+		fflush(stdout);
 	}
 }
 
 void
-kbd_print_key_stdout(struct kbd *kb, struct key *k) {
-	/* we generally print what is on the key LABEL and only support the normal */
-	printf("%s", k->label);
-	fflush(stdout);
-}
-
-void
 kbd_draw_key(struct kbd *kb, struct key *k, enum key_draw_type type) {
 	struct drwsurf *d = kb->surf;
 	const char *label = k->label;
@@ -131,7 +121,7 @@ kbd_draw_key(struct kbd *kb, struct key *k, enum key_draw_type type) {
 void
 kbd_draw_layout(struct kbd *kb) {
 	struct drwsurf *d = kb->surf;
-	struct key *next_key = kb->layout->keys;
+	struct key *next_key = kb->suggs;
 	if (kb->debug)
 		fprintf(stderr, "Draw layout");
 
@@ -144,13 +134,13 @@ kbd_draw_layout(struct kbd *kb) {
 }
 
 void
-kbd_resize(struct kbd *kb, struct layout *layouts) {
+kbd_resize(struct kbd *kb) {
 	struct drwsurf *d = kb->surf;
 
 	fprintf(stderr, "Resize %dx%d %d\n", kb->w, kb->h, kb->s);
 
 	drwsurf_resize(d, kb->w, kb->h, kb->s);
-	kbd_init_layout(&layouts[0], kb->w, kb->h);
+	kbd_init_suggs(kb->suggs, kb->w, kb->h);
 	kbd_draw_layout(kb);
 }