So, it is possible!
And you say it's a one man job?!
Actually I worked on a team, but did all the GUI myself, among other
things, in rushed 4 weeks (the guy who was supposed to do it left the
group). It was part of a games engine, but the GUI was pretty generic
(although it was tide into the game engine). Basicly everything was
derived from a button (ie everything has mouse up/down events ect...).
There were 4 basic classes of which you could build basicly anything
menu, scrollbar, button and textbox.
The tab list along the button is a menu. The images in the background
are actually a menu as well, with the free floating option on.
Everything animates when you move the mouse over.
Of course my GUI didn't support some of the most import things such as
file-dialogs.
You only enumerate the good things. What are
the draw backs?
(I was already ready to give up on the idea...)
Humm.
* I imagine the windows gui libraries have been really put through
their paces and do just about everything.
* You can only run it on machines with some sort of 3d acceleration.
* When the OS vendor (ie MS) add some new feature to their controls,
all the programs get it.
* (This is a big one) Slow to load up -> particularly if you use
lots of pictures. You would need a heavy focus on pre-fetching in
a separate thread.
* No dialog/arc builder (I suppose you could make one).
* Feels kinda separate from the OS (ie like java swing does).
* Not to many to copy from (this is a plus for D also).
But.
* I found the special effects and stuff you can do with it are quite
amazing. For example, instead of using pictures, I used
animations. That meant that every part of the GUI could animate,
which is great for skinning.
* Everything is skinable.
* Make the controls more functional then their windows counterparts.
ie if you don't like it you can override it and re-program how it
works using openGL, which is far more flexible then using windows
graphics routines.
* IMHO can look great.
It's a good idea, what proves that is that
there are several
tries at it, maybe the available hardware and libs aren't
yet up to the quality of the idea. I don't know.
I think if you have a reasonably machine it's up to scratch, but you'll
be waiting for ever if you expect everyone to have n up-to-scratch
machine. GUI doesn't require as much CPU as 3d games do, but it does
eat up allot of resources if you use big textures. I guess it would be
used 90% of the time in games and 3d applications. But hay the game
industry is one of the biggest industry players and that's where most
of the showing off is done. A word process done like the above would
be so cool.
But if your looking for a GUI that everyone will use, then your
probably barking up the wrong tree.
-Anderson