Hi Rick,
Short of reading through the forum thread you linked, I'm 99% sure that I implemented "a" solution to the same problem some time ago...
How's that for a tease!
Give me an hour and I'll hunt down the code.
***EDIT***
I began my own GUI implementation 2 years ago but never finished it as a result the code is far from complete. I don't have the patience this evening (evening in Australia right now) to re-learn all the specifics, so I'll give you the code as is.
From what I can discern this is how I accomplished the task.
1. Decide on the main resolution you want your application to run at. That is, the resolution you expect the majority of your users to...use. This is an important stage. Armed with this "optimal" resolution your artists can go to town creating all the required GUI assets to suit.
2. The implementation uses bitmap fonts.
3. All your drawing can be done to the regular LW back buffer but you'll have to crack into some OpenGL functions from this point. I'll omit the meat of this stage but the "trick" is to scale the drawing of all your GUI widgets so that they occupy the same amount of window realestate regardless of the window resolution.
pRenderScale = (float)GraphicsWidth() / (float)aWidth;
where aWidth is the "optimal" width you chose in step 1. Use pRenderScale to multiply the width and height when drawing your GUI widgets.
e.g. A label created at 10*10 pixels should be drawn at (10* pRenderScale)*(10* pRenderScale).
I think a working example is really going to be the best thing to show at this stage as I've run out of time.
You want to focus on the CLabel class as this is the text output. In main.cpp muck around with resolution values in the following lines:
Graphics(640, 480);
gui.SetBaseResolution(640, 480)
There are going to be many ways to implement a solution and my code attached is old, messy and incomplete. But the key points to remember are:
* Create all GUI assets, including a bitmap font, to suit an "optimal" resolution.
* In your application draw "scaled" version of theses assets based on the formula in step 3.
Follow these guidelines and you'll only ever have to create GUI assets once and the will always occupy the same amount of window realestate regardless of the window's resolution.
I hope this helps, even if it's just a little.