Woot! Update!
I've thrown my hat into Make Something Unreal Contest. I know this is going to sound selfish, but the fact that I may win a prize is enough incentive for me to keep going on with this project as it is now actually viable for my game development studio. It's selfish, I know, and I know I should do this for the love of the community ... but, asking for donations is borderline illegal and breaching the EULA, and super markets don't like IOU's or I LUV U tokens. Anyways, heres an update on uWindow2.
I realize that this may seem like a backwards step, but in fact it is a totally different route. The above UI is generated from a config with the following data
Code:
[canvas UW_StyleSheet]
Ln=background-image:UWindowResource.Background.Background_A
Ln=background-coordinates:0,0,1024,768
[window UW_StyleSheet]
Ln=background-image:UWindowResource.Texture.WindowFrame
Ln=background-style:stretched
[window UW_Container]
StyleSheetNames=window
[canvas UW_Container]
StyleSheetNames=canvas
I added a console command which allows me to add containers called 'window'. When the container is created, it will load up the style sheet called 'window' as well. This produces the square window you see in the middle of the screen. The background is controlled by canvas, and that is hard coded.
The other features of this system is that it allows
individual,
seperate theme config files. To cut it short, this means customizable theme switching on the fly, with no requirements to override your existing theme set!
The customization abilities will also allow for a non window interface, so you could skin uWindow2 to be more like UT2004, or UT2003, or UT99 or whatever else that floats your boat.
Secondly, the previous version used a coordinate system which is pretty heavy going, and requires a lot more code than necessary. The new system uses a container system. This means, you just put all of your widgets into a container, assign it an alignment style and uWindow2 will do the rest. You can add containers within containers to have different alignment styles. In short, it acts a lot like xHTML in this regard, where you use divs within divs to achieve a particular look. Pair this with the style sheet system, and you've got a very flexible UI.