Dec 2022

I’m officially putting Balleg (and the engine that runs it, Bolero 2) on hiatus until I get the UI stuff under control. This has effectively been the case since about March or so.

Devlog posts in 2023 will be tersely written, maybe just a bulleted list like the one that follows. End-of-year reviews will be limited to a plain list of released libraries and projects. Maybe I’ll write some general articles or reviews (though don’t hold me to it).



  • Worked on joystick manager and abstract input module. These will eventually replace the equivalent source modules in Bolero 2.
  • Added joystick and gamepad events to ProdUI.
  • Cleaned up ProdUI widget definition system to accept a single table (from local def = {base = {}, meta = {}} to just local def = {}).
  • Reduced ProdUI widget def types from three (“def” table, “fab(ricator)” function, “plan” table) to just one (“def” table). The fabs and plans are not bad ideas, but this was the wrong place to implement them. They should be higher up in the system.
  • Started a “User Events” system for attaching user application logic to select widgets, either as a single callback function or as a table-sequence of callbacks.
  • Added “base/generic.lua”, a clean-slate widget that can be used for special-case or bespoke widgets without having to load a definition.
  • WIMP Root:
    • Fixed issues related to incorrect restoration of thimble (virtual input focus) when creating and dismissing pop-up menus.
    • Implemented a Tool Tip (or whatever it’s called) caption.
    • Two modal frame implementations: one at the root level, and one where a single frame blocks access to another frame.
    • Added ctrl+tab and shift+ctrl+tab to step through window-frames.


2022 Releases