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