summaryrefslogtreecommitdiffstats
path: root/src/tk
diff options
context:
space:
mode:
authorP. 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)
commit1402cf4dd9ee0450ed11fce7ca01c15da31aa8dd (patch)
treea68cdad9808e477a6d7c1f059a52a6f238913e9c /src/tk
parentd6fdd303045ed9e0439005039e3c61f51d065931 (diff)
downloadmazefight-1402cf4dd9ee0450ed11fce7ca01c15da31aa8dd.zip
mazefight-1402cf4dd9ee0450ed11fce7ca01c15da31aa8dd.tar.gz
mazefight-1402cf4dd9ee0450ed11fce7ca01c15da31aa8dd.tar.bz2
tk: Implement text cursor movement
Diffstat (limited to 'src/tk')
-rw-r--r--src/tk/text.c21
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: