Skip to content

Commit 3d7153f

Browse files
committed
Rework core_directory_files example
1 parent 7f12c60 commit 3d7153f

File tree

1 file changed

+34
-5
lines changed

1 file changed

+34
-5
lines changed

examples/core/core_directory_files.c

Lines changed: 34 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616
********************************************************************************************/
1717

1818
#include "raylib.h"
19+
#include <stdlib.h> // Required for: free()
20+
#include <string.h> // Required for: strdup()
21+
22+
#define RAYGUI_IMPLEMENTATION
23+
#include "../shapes/raygui.h" // Required for GUI controls
1924

2025
//------------------------------------------------------------------------------------
2126
// Program main entry point
@@ -29,7 +34,7 @@ int main(void)
2934

3035
InitWindow(screenWidth, screenHeight, "raylib [core] example - directory files");
3136

32-
char *directory = ".";
37+
char *directory = strdup(GetWorkingDirectory());
3338
FilePathList files = LoadDirectoryFiles(directory);
3439

3540
SetTargetFPS(60);
@@ -46,22 +51,46 @@ int main(void)
4651
BeginDrawing();
4752
ClearBackground(RAYWHITE);
4853

49-
DrawText(TextFormat("Files in directory \"%s\":", directory), 100, 40, 20, DARKGRAY);
54+
DrawText(directory, 100, 40, 20, DARKGRAY);
55+
56+
if (GuiButton((Rectangle){40.0f, 40.0f, 20, 20}, "<"))
57+
{
58+
char *temp_directory = strdup(GetPrevDirectoryPath(directory));
59+
free(directory);
60+
directory = temp_directory;
61+
62+
UnloadDirectoryFiles(files);
63+
files = LoadDirectoryFiles(directory);
64+
}
5065

5166
for (int i = 0; i < (int)files.count; i++)
5267
{
5368
float alpha = (i % 2 == 0)? 0.5f : 0.3f;
54-
DrawRectangle(0, 85 + 40*i, screenWidth, 40, Fade(LIGHTGRAY, alpha));
69+
Color color = Fade(LIGHTGRAY, alpha);
70+
71+
if (!IsPathFile(files.paths[i]))
72+
{
73+
if (GuiButton((Rectangle){0.0f, 85.0f + 40.0f*(float)i, screenWidth, 40}, "<"))
74+
{
75+
char *temp_directory = strdup(files.paths[i]);
76+
free(directory);
77+
directory = temp_directory;
5578

56-
DrawText(files.paths[i], 120, 100 + 40*i, 10, GRAY);
79+
UnloadDirectoryFiles(files);
80+
files = LoadDirectoryFiles(directory);
81+
}
82+
}
83+
DrawRectangle(0, 85 + 40*i, screenWidth, 40, color);
84+
85+
DrawText(GetFileName(files.paths[i]), 120, 100 + 40*i, 10, GRAY);
5786
}
5887
EndDrawing();
5988
//----------------------------------------------------------------------------------
6089
}
6190

6291
// De-Initialization
6392
//--------------------------------------------------------------------------------------
64-
93+
free(directory);
6594
UnloadDirectoryFiles(files);
6695

6796
CloseWindow(); // Close window and OpenGL context

0 commit comments

Comments
 (0)