Oct 2024

  • Finished the TableToString rewrite: T2S2
  • Updated KEVN, an INI-like config file parser. I later archived the repository because it doesn’t offer many advantages over loading a Lua table constructor.
  • Integrated PILE (collection of Lua snippets) into various libraries. Integrated utf8Tools into PILE, removing 3rd party code so that it conforms to PILE’s license.
  • Wrote CT, a loader for a subset of Lua table constructors.
  • Cleaned up QuickPrint a bit, moving some comments to the documentation, and deleting some redundant functions.

ProdUI WIMP Demo:

  • Too many window frames were invoked at startup, and there was no way to recreate them once they were closed. The demo now has a launcher frame, which itself can be invoked from the menu bar.
  • Updated TreeBox:
    • Fixed rendering and arrangement issues.
    • Deleted the vertical alignment option. This was supposed to allow the tree to start from the bottom and grow upwards, but it never worked correctly. Horizontal alignment (starting from the right and expanding left) is still available.
    • Simplified the “pipes” that illustrate the indentation level of nodes.
  • The demo’s “Widget Tree” frame has been upgraded from a simple text object to a TreeBox. You can now highlight the currently selected widget and show its internal viewport rectangles.
  • Reserved some fields in the ProdUI context for the library user. Specifically, the field ‘app’ can be populated by the host program to provide links between application state and ProdUI widgets. This is used in the demo to link some debug visualizer state to checkboxes.
  • Refactored code related to single-line keyboard input. The multi-line input code needs similar cleanup.
  • Cleaned up split buttons, NumberBoxes and single-line text widgets. Sashes are partially functional.
  • Added a new mode for history structs which prevents the first ledger entry from being deleted. This is used by NumberBox to implement specialized undo/redo behavior.
  • Rewrote WIP.md in the Git repo with more recent information. The current goal is to get the remaining WIMP widgets up and running.

 

Left: the WIMP Demo’s tree view of all active widgets. Right: a NumberBox with its internal viewports made visible.