diff options
author | P. J. McDermott <pj@pehjota.net> | 2021-08-06 17:24:29 (EDT) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2021-08-06 17:24:29 (EDT) |
commit | 1402cf4dd9ee0450ed11fce7ca01c15da31aa8dd (patch) | |
tree | a68cdad9808e477a6d7c1f059a52a6f238913e9c /src | |
parent | d6fdd303045ed9e0439005039e3c61f51d065931 (diff) | |
download | mazefight-1402cf4dd9ee0450ed11fce7ca01c15da31aa8dd.zip mazefight-1402cf4dd9ee0450ed11fce7ca01c15da31aa8dd.tar.gz mazefight-1402cf4dd9ee0450ed11fce7ca01c15da31aa8dd.tar.bz2 |
tk: Implement text cursor movement
Diffstat (limited to 'src')
-rw-r--r-- | src/tk/text.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/tk/text.c b/src/tk/text.c index 95bd03b..a495cde 100644 --- a/src/tk/text.c +++ b/src/tk/text.c @@ -30,7 +30,7 @@ struct mftk_text { char min_char; char max_char; size_t len; - size_t cur; + int cur; int y; int w; int h; @@ -52,10 +52,29 @@ static int _mftk_text_key_event(struct mftk_widget *w, SDL_Event *e) { struct mftk_text *t = (struct mftk_text *) w; + int len; switch (e->type) { case SDL_KEYDOWN: + switch (e->key.keysym.sym) { + case SDLK_LEFT: + --t->cur; + if (t->cur < 0) { + t->cur = 0; + } + break; + case SDLK_RIGHT: + ++t->cur; + len = strlen(t->val); + if (t->cur >= len) { + t->cur = len; + } + break; + default: + break; + } /* TODO */ + SDL_DestroyTexture(t->texture); t->texture = NULL; break; default: |