pioneerspacesim/pioneer — pull request #1586 by robn (2012-10-09 10:24:05+00:00)
Title: New UI

Did you think it might never happen? I certainly did! :)

If you've spent any amount of time on #pioneer in the last six months you know what this is about, but I'll try to summarise briefly:

* UI engine in `src/ui`. Concepts are borrowed from GTK+, jQuery, Zune, Rocket, and a couple of other things. The real guts are `Context`, `Widget`, `Container` and `EventDispatcher`, which I've gone to some effort to document. It might not be particularly clear, but there's an attempt at a design behind it.
* There's a standard set of widgets (button, checkbox, dropdown, list, image, etc) and containers (box, grid, etc). Notable omissions at this point are text entry widgets.
* Widgets, containers and events are all exposed to Lua in a more-or-less sane way.
* Main menu and the top load screen are fully implemented in Lua.
* New Lua API in `Game` and `Engine` to support starting & loading games and quitting.
* A fine selection of hacks to keep the old GUI running happily.

So it still work in progress. Needs loads of stuff, but most of it will fall out by gradually converting all the existing GUI over to it.

The reasons for pushing this right now is to allow others to use and test it and build on it and to stop blocking other work (ie new-model).

So I dunno, Try it, ask questions, lets see how we go :)