From 0163faffed4f50262795094df70233ab7c3cdeeb Mon Sep 17 00:00:00 2001 From: crazyBaboon Date: Sun, 3 Apr 2022 12:40:14 +0100 Subject: [PATCH] file_browser.c - Display files and folders by alphabetical order --- demo/common/file_browser.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/demo/common/file_browser.c b/demo/common/file_browser.c index ca331d6..4ae0736 100644 --- a/demo/common/file_browser.c +++ b/demo/common/file_browser.c @@ -366,6 +366,13 @@ file_browser_free(struct file_browser *browser) memset(browser, 0, sizeof(*browser)); } +int cmp_fn(const void *str1, const void *str2) +{ + const char *str1_ret = *(const char **)str1; + const char *str2_ret = *(const char **)str2; + return strcmp(str1_ret, str2_ret); +} + static int file_browser_run(struct file_browser *browser, struct nk_context *ctx) { @@ -448,6 +455,7 @@ file_browser_run(struct file_browser *browser, struct nk_context *ctx) if (nk_button_image(ctx,media->icons.directory)) index = (int)j; + qsort(browser->directories, browser->dir_count, sizeof(char *), cmp_fn); nk_label(ctx, browser->directories[j], NK_TEXT_LEFT); } else { /* draw and execute files buttons */ @@ -464,6 +472,7 @@ file_browser_run(struct file_browser *browser, struct nk_context *ctx) /* draw one column of labels */ if (j >= browser->dir_count) { size_t t = j - browser->dir_count; + qsort(browser->files, browser->file_count, sizeof(char *), cmp_fn); nk_label(ctx,browser->files[t],NK_TEXT_LEFT); } }