Though I promised that I never want to write any advanced UI other than command line, monitor console/prompt, OSD, whatsoever ... Well things can change
I guess nobody worries too much in this case, if I change my mind ...
http://xep128.lgb.hu/files/xep128-test.exeIn this version I tried to utilize native Win32 API file selector function. It means that with loading something with FILE: but with empty file name, an open dialog box will appear to allow to select a file to load. I mean:
LOAD"FILE:super.bas"This still should load super.bas without any further interaction from the user (if file.bas can be found in the current FILEIO - host OS - directory of course ...).
However now, you can say this too:
LOAD"FILE:"In this case, since filename part is empty, Xep128 (at least the test version only for now!) should display a native Windows open file dialog, and you can select what you want to load. Moreover, if you move to another directory, it should be remembered, ie then even the :XEP DIR etc should reflect the change that the new FILEIO host OS directory is the one you loaded program from at the last time. Honestly, the idea is from ep128emu
But not the implementation of course (ep128emu uses its own widget set, not native win32 functions, I think). On Linux, GTK is used by the way.
Warning, this can be buggy: it seems there are issues (sometimes?) that window/GUI events "escapes" from native widgets to SDL events, ie selecting a file etc, and then Xep128 interprets some of the old interactions (ie key presses) by itself too, like "stucking enter key" if you used enter in the file dialog box, whatsoever. Or even entering into mouse grab mode, since the mouse click is detected by SDL/Xep128 later ... I think I will try some "SDL event queue emptying" solution after using non-SDL stuffs in Xep128. It seems GTK/Linux case is more affected by this than on Windows, by the way.
I plan to re-use file selector for various other things later, ie changing SD card image, also for FILE: save at some point (now it's not handled). If this native GUI elements thing seems to be OK, later it's even possible to present a GUI solution for the disassembly/memory dump etc stuffs (which exists already but only in console/monitor, and XEP: interface), so at some point it will be possible to use debugger like functionality in a graphical window. Who knows if I have willpower to do, especially in this way, with cross-platform GUI aware way, ie both on Linux and Windows. My tests on Windows version is done with the "wine" on Linux only as usual. So there can be issues I can't see this way