I did make some good progress last night. I created a new texture set for my GUI controls, and fixed a handfull of bugs. I'm still far from feature-complete on the GUI, but at least I'm a little closer to having screen-shot-worthy material.
Still on the to-do list is
- Highlights for the current selection on a ListBox
- Multi-column list boxes
- Combo-boxes (may, or may not implement)
- Multi-line edit box
- Scroll bars (and test them on each control type)
- Dialog Boxes
- Screen Transitions (I'll explain this concept below)
- Playing sounds from Lua event handlers
- Size animations (location is already implemented)
- Alpha animations (for fading in & out)
- Spherical interpolation for animations (linear is already working)
- Better error handling
- Dodumentation of the XML interface as well as what's available to Lua scripts.
The screen transition idea stems from the fact that the top-most control type in my GUI system is a "screen". You can think of a screen as a desktop of sorts. A screen contains a collection of controls (say perhaps the sound-settings screen). When you click the OK or ACCEPT button, you'd want the current menu to become the "options" menu. This transition between the two screens is the feature I'm looking to implement. The XML file will declare a "transition-in" and "transition-out" sequence for either all the items (example: all controls "fly-out" to the left when the screen is being transitioned out). Additionally, each control can have it's own customized in and out transitions. That way you can have complex animations.
All the basics are in-place...it's just a matter of doing :) Isn't that always the case?