From f5bd6c08f8d761b625890e4256339ff93c770ac1 Mon Sep 17 00:00:00 2001 From: Ray Date: Fri, 18 Dec 2020 20:06:38 +0100 Subject: [PATCH] Update gui_file_dialog.h --- examples/custom_file_dialog/gui_file_dialog.h | 42 ++++++++++--------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/examples/custom_file_dialog/gui_file_dialog.h b/examples/custom_file_dialog/gui_file_dialog.h index 8b13ae6..22bb38e 100644 --- a/examples/custom_file_dialog/gui_file_dialog.h +++ b/examples/custom_file_dialog/gui_file_dialog.h @@ -248,7 +248,7 @@ void GuiFileDialog(GuiFileDialogState *state) { if (strcmp(state->fileNameText, state->dirFiles[f]) == 0) { - if (state->filesListActive != f) state->filesListScrollIndex = state->filesListActive = f; // make it active and visible only on first call + if (state->filesListActive != f) state->filesListScrollIndex = state->filesListActive = f; // Make it active and visible only on first call break; } @@ -259,7 +259,7 @@ void GuiFileDialog(GuiFileDialogState *state) DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)), 0.85f)); state->fileDialogActive = !GuiWindowBox((Rectangle){ state->position.x + 0, state->position.y + 0, winWidth, winHeight }, "#198#LuaJIT | Select File Dialog"); - if (GuiButton((Rectangle){ state->position.x + winWidth - 50, state->position.y + 35, 40, 25 }, "< .."))// || IsKeyReleased(KEY_DPAD_Y)) + if (GuiButton((Rectangle){ state->position.x + winWidth - 50, state->position.y + 35, 40, 25 }, "< ..")) // || IsKeyReleased(KEY_DPAD_Y)) { // Move dir path one level up strcpy(state->dirPathText, GetPrevDirectoryPath(state->dirPathText)); @@ -366,7 +366,7 @@ void GuiFileDialog(GuiFileDialogState *state) #ifdef PLATFORM_DESKTOP 25 #else - 25+30 + 25 + 30 #endif }, "Select");// || IsKeyPressed(KEY_ENTER) || IsKeyPressed(KEY_DPAD_A); @@ -395,8 +395,8 @@ void GuiFileDialog(GuiFileDialogState *state) } } -// Read all filenames from directory (supported file types) -static inline int _file_comp(const char *d1, const char *d2, const char *dir) +// Compare two files from a directory +static inline int FileCompare(const char *d1, const char *d2, const char *dir) { const bool b1 = DirectoryExists(TextFormat("%s/%s", dir, d1)); const bool b2 = DirectoryExists(TextFormat("%s/%s", dir, d2)); @@ -409,6 +409,8 @@ static inline int _file_comp(const char *d1, const char *d2, const char *dir) return strcmp(d1, d2); } + +// Read all filenames from directory (supported file types) static char **ReadDirectoryFiles(const char *dir, int *filesCount, char *filterExt) { int validFilesCount = 0; @@ -429,29 +431,29 @@ static char **ReadDirectoryFiles(const char *dir, int *filesCount, char *filterE const int MAX = 64; unsigned int left = 0, stack[64], pos = 0, seed = rand(), len = dirFilesCount; - for ( ; ; ) + for (;;) { - for (; left+1 < len; len++) /* sort left to len-1 */ + for (; left + 1 < len; len++) // Sort left to len - 1 { - if (pos == MAX) len = stack[pos = 0]; /* stack overflow, reset */ - char *pivot = files[left+seed%(len-left)]; /* pick random pivot */ - seed = seed*69069+1; /* next pseudorandom number */ - stack[pos++] = len; /* sort right part later */ + if (pos == MAX) len = stack[pos = 0]; // Stack overflow, reset + char *pivot = files[left + seed%(len - left)]; // Pick random pivot + seed = seed*69069 + 1; // Next pseudo-random number + stack[pos++] = len; // Sort right part later - for (unsigned int right = left-1; ; ) /* inner loop: partitioning */ + for (unsigned int right = left - 1;;) // Inner loop: partitioning { - while (_file_comp(files[++right], pivot, dir) < 0);/* look for greater element */ - while (_file_comp(pivot, files[--len], dir) < 0); /* look for smaller element */ - if (right >= len) break; /* partition point found? */ + while (FileCompare(files[++right], pivot, dir) < 0); // Look for greater element + while (FileCompare(pivot, files[--len], dir) < 0); // Look for smaller element + if (right >= len) break; // Partition point found? char *temp = files[right]; - files[right] = files[len]; /* the only swap */ + files[right] = files[len]; // The only swap files[len] = temp; - } /* partitioned, continue left part */ + } // Partitioned, continue left part } - if (pos == 0) break; /* stack empty? */ - left = len; /* left to right is sorted */ - len = stack[--pos]; /* get next range to sort */ + if (pos == 0) break; // Stack empty? + left = len; // Left to right is sorted + len = stack[--pos]; // Get next range to sort } }