MQ32's hint are really fine.
I also created my own file save/load panel in lite-c, bacause in a 3D environment it is usually necessary to fit its style to other panels/menus.
I use:
- a slider and 2 buttons for scrolling (slider position handling requires a loop),
- fixed amount of strings (an array) dislpaying file names read from a text created by txt_for_dir, due to slider position and file name quantity
- buttons under file name strings, for easy highlighting selection and mouse touch of filenames
- ok and cancel buttons
- some title text strings
- a text object displaying actual filename or for typing custom filenames - as I remember it requires a loop to update filename data without hitting enter
- some button bitmaps in Paint