Added some tweaks and comments

This commit is contained in:
Ray
2019-08-15 13:59:18 +02:00
parent f11e9d6ba5
commit 1114400fe1

View File

@ -9,6 +9,13 @@
* INIT: GuiFileDialogState state = InitGuiFileDialog();
* DRAW: GuiFileDialog(&state);
*
* NOTE: This module depends on some raylib file system functions:
* - GetDirectoryFiles()
* - ClearDirectoryFiles()
* - GetWorkingDirectory()
* - DirectoryExists()
* - FileExists()
*
* LICENSE: Propietary License
*
* Copyright (c) 2019 raylib technologies (@raylibtech). All Rights Reserved.
@ -101,6 +108,8 @@ void GuiFileDialog(GuiFileDialogState *state);
#include "raygui.h"
#include <string.h> // Required for: strcpy()
//----------------------------------------------------------------------------------
// Defines and Macros
//----------------------------------------------------------------------------------
@ -186,7 +195,7 @@ void GuiFileDialog(GuiFileDialogState *state)
//------------------------------------------------------------------------------------
if (dirFilesIcon == NULL)
{
dirFilesIcon = (char **)malloc(MAX_DIRECTORY_FILES*sizeof(char *)); // Max files to read
dirFilesIcon = (char **)RL_MALLOC(MAX_DIRECTORY_FILES*sizeof(char *)); // Max files to read
for (int i = 0; i < MAX_DIRECTORY_FILES; i++) dirFilesIcon[i] = (char *)calloc(MAX_DIR_PATH_LENGTH, 1); // Max file name length
}
@ -201,9 +210,9 @@ void GuiFileDialog(GuiFileDialogState *state)
// Move dir path one level up
strcpy(state->dirPathText, GetPrevDirectoryPath(state->dirPathText));
// Free previous dirFiles (reloaded by ReadDirectoryFiles())
for (int i = 0; i < state->dirFilesCount; i++) free(state->dirFiles[i]);
free(state->dirFiles);
// RL_FREE previous dirFiles (reloaded by ReadDirectoryFiles())
for (int i = 0; i < state->dirFilesCount; i++) RL_FREE(state->dirFiles[i]);
RL_FREE(state->dirFiles);
// Read files in the new path
state->dirFiles = ReadDirectoryFiles(state->dirPathText, &state->dirFilesCount, state->filterExt);
@ -220,9 +229,9 @@ void GuiFileDialog(GuiFileDialogState *state)
// Verify if a valid path has been introduced
if (DirectoryExists(state->dirPathText))
{
// Free previous dirFiles (reloaded by ReadDirectoryFiles())
for (int i = 0; i < state->dirFilesCount; i++) free(state->dirFiles[i]);
free(state->dirFiles);
// RL_FREE previous dirFiles (reloaded by ReadDirectoryFiles())
for (int i = 0; i < state->dirFilesCount; i++) RL_FREE(state->dirFiles[i]);
RL_FREE(state->dirFiles);
// Read files in new path
state->dirFiles = ReadDirectoryFiles(state->dirPathText, &state->dirFilesCount, state->filterExt);
@ -257,9 +266,9 @@ void GuiFileDialog(GuiFileDialogState *state)
strcpy(state->dirPathTextCopy, state->dirPathText);
// Free previous dirFiles (reloaded by ReadDirectoryFiles())
for (int i = 0; i < state->dirFilesCount; i++) free(state->dirFiles[i]);
free(state->dirFiles);
// RL_FREE previous dirFiles (reloaded by ReadDirectoryFiles())
for (int i = 0; i < state->dirFilesCount; i++) RL_FREE(state->dirFiles[i]);
RL_FREE(state->dirFiles);
// Read files in new path
state->dirFiles = ReadDirectoryFiles(state->dirPathText, &state->dirFilesCount, state->filterExt);
@ -312,15 +321,15 @@ void GuiFileDialog(GuiFileDialogState *state)
// File dialog has been closed!
if (!state->fileDialogActive)
{
// Free dirFiles memory
// RL_FREE dirFiles memory
for (int i = 0; i < state->dirFilesCount; i++)
{
free(state->dirFiles[i]);
free(dirFilesIcon[i]);
RL_FREE(state->dirFiles[i]);
RL_FREE(dirFilesIcon[i]);
}
free(state->dirFiles);
free(dirFilesIcon);
RL_FREE(state->dirFiles);
RL_FREE(dirFilesIcon);
dirFilesIcon = NULL;
state->dirFiles = NULL;
@ -332,8 +341,8 @@ void GuiFileDialog(GuiFileDialogState *state)
static char **ReadDirectoryFiles(const char *dir, int *filesCount, char *filterExt)
{
int validFilesCount = 0;
char **validFiles = (char **)malloc(MAX_DIRECTORY_FILES*sizeof(char *)); // Max files to read
for (int i = 0; i < MAX_DIRECTORY_FILES; i++) validFiles[i] = (char *)malloc(MAX_DIR_PATH_LENGTH); // Max file name length
char **validFiles = (char **)RL_MALLOC(MAX_DIRECTORY_FILES*sizeof(char *)); // Max files to read
for (int i = 0; i < MAX_DIRECTORY_FILES; i++) validFiles[i] = (char *)RL_MALLOC(MAX_DIR_PATH_LENGTH); // Max file name length
int filterExtCount = 0;
const char **extensions = GuiTextSplit(filterExt, &filterExtCount, NULL);