Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Joe Silver, posted on July 12, 2000

Image Description, by Joe Silver

Here's a taste of a GUI system I've been working on..

The windows can be moved and resized Windows can also gain or lose focus, and are drawn accordingly and in proper order.. The window texture can also be altered per window, all colors are configurable, lots of options available Proportional fonts The text boxes work to a certain degree (not finished yet, but you can type into them and tab from one to another) More controls to come.. (textbox, editbox, combo, list, scrollbar, progress bar, radio buttons, checkboxes, buttons, etc..) Overall this is about 20% finished, but coming along nicely Comments are appreciated..

Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

July 12, 2000, 10:09 AM

Is there a homepage? Looks good! :)


July 12, 2000, 11:37 AM

since it is already in 3d... you could add rotate/zoom, then switching from one window to the next could be done realtime following a path in 3d


July 12, 2000, 01:07 PM

Looks great, reminds me of there a website?

Victor Ho

July 12, 2000, 01:34 PM

Wow, cool translucent windows. That's a look I've haven't seen tried in a gui yet. : )

Is it portable and could act as a sort of cross platform GUI library?


July 12, 2000, 02:56 PM

You might want to look into the Berlin windows system. They're doing something similar (basically an X-like windowing system implemented using OpenGL for everything). They could use someone with some actual CODE to show for it. ;)

Seriously, though, this is rather cool. I hope you're not going to tie it to a specific implementation of OpenGL (*cough*Windows*cough*). How are you going to handle OpenGL drawables within your windows though? :) I'd imagine (read: hope) that you'd make a 'display' callback which would just get passed the viewport coordinates. I don't see how making 3D-display windows transparent could really be done right, though.

Oh, and if you could make it network-transparent (I know, that's a concept utterly foreign to you Windows programmers ;) then it'd be very useful and cool. If it's just intended to be run within the display space of a single application, though, that's cool too. Having a nice, flexible GUI for use within an OpenGL application is useful (and, in fact, I can see where I'd probably use this or something like it in Solace, assuming you're going to allow for a 'fullscreen' window in the background for doing stuff). Like, this'd be really cool for a command console or in-game object editor or whatever.

Rui Martins

July 12, 2000, 03:03 PM

Very Nice setup !

Can you tell us more about the widgets you have implemented already !

Are you thinking about releasing it !
I would probably use it, since I haven't much time left to make a GUI, and I'm in a real need of a good one like yours. ; P

"translucent windows. That's a look I've haven't seen tried in a gui yet. : ) "

That is because you haven't been looking hard ! ; )

For Linux there is at least one, but I think I have already seen others before, I'm just not sure if it was the same with a different setup/layout.


July 12, 2000, 03:06 PM

Wow.. I got posted!! Anyway.. The gui isn't tied to an implementation of OpenGL.. It's all class based though.. It's still in the early stages, but your comments are definately inspiring me.
Yes I have a web page.. but it's focused around a game we cancelled recently.. and I haven't taken the time to update it with the new stuff yet..
I do plan on having some effects in the gui.. I'm trying real hard to make sure it's as portable as can be.. I'm using #ifdefs to determine which renderer to use at this point, course OpenGL is the only one I do have, but in theory another renderer could be added easily.. Even though the font stuff using Windows font metrics all that is done in another app and stored in .h files to be used elsewhere.. I stil haven't figured out everything I want to do yet, but it's coming along..
Feel free to ask me more questions, and if I missed one.. sorry, ask me again. Thanks for the good compliments!!!!!



July 12, 2000, 03:15 PM

More notes on the GUI.. THe windows aren't true windows.. they are just part of one application, although I have been pondering a shell replacement for windows.. a Console is in my list of controls to be done, but is kinda on the back burner. Major controls come first.. You can actually choose to have windows be children of other windows.. So in theory you could do Lots of stuff..
the windows can also be enabled and disabled etc..
They have 2 different visibility flags.. one for true visibilty and one to turn off drawing the actual window, but not the contents.. (so that you can have controls without the window itself.. You can also flag a window as resizable or not, and if not the minimize/maximize button won't draw.. I'm trying to get all the functionallity I can here.. the only problem right now is that it's too slow..
and well it isn't finished.. ; )


July 12, 2000, 03:23 PM

The window itself is in it's own class.. it keeps a linked list of children windows and children guiwidgets.. I need to make a small modification to that and make windows guiwidgets as well, but haven't done so yet..

THe base class for th gui objects is almost vacant, but I keep it for linked list purposes.. Then all types of GUI widgets are based off of the one base class.. or another gui object. So far the textbox and image widgets are the only 2 I have finished in this implementation..
THe game I cancelled had the 1st version of this GUI in it.. it was terrible. I mean TERRIBLE.. but some basic code for control behavior was there, so I'm moving some of that over.. If I worked on this consistently I could/should have it done in a month or 2.. and yes I do plan on releasing it.. either as lib files or GPL or LGPL.. I'll decide that later..


July 12, 2000, 07:12 PM

oh my god! an all-new GUI usind _WINDOWS_! hey, how creative!


July 12, 2000, 10:22 PM

Nex, Thanks for the constructive critism.. uh yeah.. I'd be interested in seeing something you've done that is really creative.. For your info the gui is entirely customizable and the windows aren't even required.
Maybe this doesn't fall under creative, but how creative can a gui be?
This is the gui I'm designing for use in my game.. You don't have to like or use it, but I personally will do both.


Kyle Kestell

July 13, 2000, 11:31 AM

8nex], you gimp. How many GUI's have you seen that DON'T use windows? Maybe you should post an IOTD and show us how elite you are. And if you can come up with a nice non-windowed GUI, I would LOVE to see it.

- Kyle

Michael Kurth

July 14, 2000, 04:50 PM

Hey, ease off there fella's. I'll bet the gimp.. erm.. Nex.. meant you are using the Windows OS to make the gui. Not windows like "rectangluar graphical interfaces".


July 14, 2000, 04:53 PM

Ermm..... how exactly does one go about creating a windowless GUI? A formless blob of text inputs and scrollbars? And how do you define a window? If you consider a window as just an area of the screen that accepts input, output, and display, then... you CAN'T make a windowless GUI.


- Fav. Quote: "Woah." - The Matrix


July 20, 2000, 02:18 AM

A small update.. I got the textbox control finished..
Added a Console.. the commands are working, but variables aren't..
I added coloring to text sent to my text display stuff like q3 does..
"Joe ^4Silver" would display Silver a different color than Joe.
The console is about 75% finished.. probably a few months from completion of the entire system.. Unfortunately right now it has some win32 calls in it.. mostly for clipboard support.. I do plan on using #ifdef to weed out win32 specific code. Once I get this finished would someone volunteer to make an attempt to get this working on Mac or Linux?? I don't have a mac, and my linux machine doesn't have hardware 3d support.

Oh yeah I also fixed the window system to where you can not draw the window and have the controls be part of the actual screen. It still uses the window to handle input and control focus, etc.. but isn't required to be drawn.. It's not the best way to do it, but it does work.. When I release it I will be releasing my text handling code with it.. they are way to tied together to not do so..
It's late.. must sleep..



November 03, 2000, 01:40 PM

Where can I get the GUI at?

This thread contains 16 messages.
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.