Nov 2023

  • I moved ProdUI to a public Git repo. It’s not ready for general use, but it should work with LÖVE 11.4, 11.5 and 12.0-development if you want to take a look.
  • Wrote some UI Context events / callbacks for drag-and-drop functionality. Made a proof of concept where the user can drag menu-items between two ListBoxes.
  • ListBox features:
    • Re-order menu-items within a ListBox by dragging with the mouse. Note that this is unrelated to the context drag-and-drop implementation.
    • Multi-Select.
  • Started a TreeBox widget.
  • Added utf8Tools to ProdUI to validate UTF-8 strings. (When using utf8.len as a string validator, it will allow some invalid code point values that LÖVE rejects.)
  • Turned the Simple TextBox into a barebones input box widget. It has no caret controls, and can only append or delete text at the end of the string.
  • Fixed up the main TextBox widget and the underlying EditField library (now called LineEditor).
    • Implemented multi-line indent and unindent (tab or shift+tab while highlighting multiple lines).
    • Added auto-indent and shifting whole lines (alt+up, alt+down).
    • (LÖVE 12) Added NumLock-off keypad input for LineEditor.
    • Split the TextBox widget into multi-line and single-line versions. The single-line version is partially functional: keyboard commands work, mouse actions are missing. The hope was that I could stuff logic into shared functions that are used in both implementations, but this isn’t panning out so far due to (among other things) the multi-line version using an array-of-strings data structure with its own API methods. If I can’t get the sharing to work, I may remove the single-line implementation and just use the multi-line version with some settings to disable line feeds.