w32_map_wparam_to_app_key, todo, api

This commit is contained in:
krzosa
2024-12-29 10:54:28 +01:00
parent fddbbb9654
commit d7c5b72bb9
8 changed files with 121 additions and 119 deletions

View File

@@ -5,8 +5,8 @@ void meta_app(ma_arena_t *arena) {
ast_t *keys = parse_table(arena, __FILE__, CODE(
// javascript filter out
| name | js1 | js2 | jf | windows1 | windows2 |
| invalid | XXX | XXX | 1 | XXX | XXX |
| name | js1 | js2 | jf | windows1 | windows2 |
| null | XXX | XXX | 1 | XXX | XXX |
| 1 | 1 | XXX | 0 | `'1'` | XXX |
| 2 | 2 | XXX | 0 | `'2'` | XXX |
| 3 | 3 | XXX | 0 | `'3'` | XXX |
@@ -115,7 +115,7 @@ void meta_app(ma_arena_t *arena) {
i32 w2i = row_findi(keys->first, "windows2");
sb8_stmtf(c, "\n#if PLATFORM_WINDOWS");
sb8_stmtf(c, "void w32_key_dispatch(WPARAM wparam, void (*handle_key)(app_key_t)) {");
sb8_stmtf(c, "app_key_t w32_map_wparam_to_app_key(WPARAM wparam) {");
c->indent += 1;
sb8_stmtf(c, "switch(wparam) {");
c->indent += 1;
@@ -124,11 +124,10 @@ void meta_app(ma_arena_t *arena) {
s8_t w[] = {row_geti(row, w1i)->string, row_geti(row, w2i)->string};
for (i32 i = 0; i < lengthof(w); i += 1) {
if (s8_equal(w[i], s8_lit("XXX"))) continue;
sb8_stmtf(c, "case %.*s: handle_key(app_key_%.*s); break;", s8_fmtspec(w[i]), s8_fmtspec(name));
sb8_stmtf(c, "case %S: return app_key_%S; break;", w[i], name);
}
}
sb8_stmtf(c, "default: {} break;");
sb8_stmtf(c, "default: {return app_key_null;} break;");
c->indent -= 1;
sb8_stmtf(c, "}");
c->indent -= 1;
@@ -147,7 +146,7 @@ void meta_app(ma_arena_t *arena) {
} app_mouse_button_t;
typedef enum {
app_event_kind_invalid,
app_event_kind_null,
app_event_kind_update,
app_event_kind_text,
app_event_kind_key_down,