Hello! I'm putting the guilua here. This is a windows program written in freebasic. It is like hypercard in that it will allow you to make things at run time that you can easily persist in a file. If you associate the file type of .guilua with the guilua.exe program you can launch it with a file.
guilua.zip - what you need to run it, unzip it and run the .exe. This is a 64 bit program.
guilua_source.zip - the source code. To build it, run fbc -s gui guilua.bas guilua.rc. The library file lua53.dll needs to be in the same folder.
guilua32.zip - a 32-bit build. It needed another dll to work on mingw64.
examples.zip - some example .guilua files including a reference to all the global variables.
The program loads and runs init.lua from the same folder. That program makes the user interface. The part written in basic is a bunch of wrappers to win32 functions. The rc file has a form and the happy man icon.
The lua functions that it makes available mostly corespond to win32 functions. Check the init.lua file to see how it generally works.
For the user interface, use the mode menu to change to edit mode and the buttons and other elements will drag. Double click or right click to bring the properties window up. To delete an element, click Delete in the properties window. In Mode > Edit Autostart Variable you can edit the Autostart variable which will run that code when the guilua file is first started.
The file preserves everything in the Saved table that is in lua, plus the forms elements, sizes, positions and scripts, in the Position_table table. Those tables should not contain any functions, userdata or references to tables that cycle, or else it will not be able to save.
All the elements are stored with the id that win32 uses. set_text and get_text lua functions wrap the winapi calls and set the Position_table elements so that is used to update the labels and inputs.
The format menu is for the rich edit controls.
I may or may not document more of it or add more windows form elements in the future. It's gotten to be complete enough that I've made some little utilities with it.