From aae0f1818bc2de9761f2cf6c7d2b3c28ebb20272 Mon Sep 17 00:00:00 2001 From: NishiOwO Date: Sat, 18 Oct 2025 14:37:26 +0000 Subject: [PATCH] add things git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@409 b9cfdab3-6d41-4d17-bbe4-086880011989 --- src/filechooser.c | 10 ++++++++++ src/widget/entry.c | 2 ++ 2 files changed, 12 insertions(+) diff --git a/src/filechooser.c b/src/filechooser.c index d86f43f..57f79dd 100644 --- a/src/filechooser.c +++ b/src/filechooser.c @@ -98,6 +98,13 @@ static void addr_up_activate(MwWidget handle, void* user, void* call) { free(p); } +static void addr_activate(MwWidget handle, void* user, void* call) { + (void)user; + (void)call; + + scan(handle->parent, MwGetText(handle, MwNtext)); +} + static void layout(MwWidget handle) { filechooser_t* fc = handle->opaque; int w = MwGetInteger(handle, MwNwidth); @@ -147,6 +154,7 @@ static void layout(MwWidget handle) { wh = 24; if(fc->addr == NULL) { fc->addr = MwCreateWidget(MwEntryClass, "addr", handle, wx, wy, ww, wh); + MwAddUserHandler(fc->addr, MwNactivateHandler, addr_activate, NULL); } else { MwVaApply(fc->addr, MwNx, wx, @@ -312,6 +320,8 @@ static void scan(MwWidget handle, const char* path) { MwDirectoryClose(dir); qsort(fc->entries, arrlen(fc->entries), sizeof(MwDirectoryEntry*), qsort_files); + } else { + MwMessageBox(handle, "Directory does not exist!", "Error", MwMB_ICONERROR | MwMB_BUTTONOK); } if(fc->path != NULL) free(fc->path); diff --git a/src/widget/entry.c b/src/widget/entry.c index 20162cc..62c7f09 100644 --- a/src/widget/entry.c +++ b/src/widget/entry.c @@ -100,6 +100,8 @@ static void key(MwWidget handle, int code) { } else if(code == MwLLKeyRight) { if(t->cursor == MwUTF8Length(str)) return; t->cursor++; + } else if(code == MwLLKeyEnter) { + MwDispatchUserHandler(handle, MwNactivateHandler, NULL); } else if(!(code & MwLLKeyMask)) { int incr = 0; out = malloc(strlen(str) + 5 + 1);