From 4c150aab138f5733d29ad4548d66764fe19ffc44 Mon Sep 17 00:00:00 2001 From: cflip Date: Thu, 12 Jan 2023 12:19:08 -0700 Subject: Make the editor modal and refactor keyboard events This makes the editor behave more like vi, with a seperate insert mode. This also refactors the keyboard input code to pass the SDL_Keysym structure to input.c and to use the SDL_TEXTINPUT event for editing text. SDL's text input event already fixes typing capital letters with shift, and should make it possible to enter text using an IME, however most unicode characters aren't properly rendered. --- input.h | 18 ++---------------- 1 file changed, 2 insertions(+), 16 deletions(-) (limited to 'input.h') diff --git a/input.h b/input.h index 33f349f..85dbdde 100644 --- a/input.h +++ b/input.h @@ -2,22 +2,8 @@ #define _INPUT_H #include "editor.h" +#include -enum editor_key { - BACKSPACE = 127, - ARROW_LEFT = 1000, - ARROW_RIGHT, - ARROW_UP, - ARROW_DOWN, - DELETE_KEY, - HOME_KEY, - END_KEY, - PAGE_UP, - PAGE_DOWN -}; - -#define CTRL_KEY(k) ((k) & 0x1f) - -void editor_process_keypress(struct editor_state *editor, int keycode); +void editor_process_keypress(struct editor_state *editor, SDL_Keysym *keysym); #endif -- cgit v1.2.3