![Image](http://i53.tinypic.com/2i9ow1x.jpg)
I plan completely overhauling the GUI system integrated into Irrlicht.
Essentially GUI can be described as:
GUIwindow
-size x,y
-It is completely blank
=GUI elements are defined by several primitives, just like primitives in 3d rendering=
These are:
GUIline
-start point, end point (so it is really just a line segment)
-color, with alpha channel
-the layer it is in: z
GUIregion
-a guiel(GUI element, as opposed to picture element) in the window, smallest unit.
-not to be confused with a color pixel
-position x,y
-the layer it is in: z
GUIevent
-The mouse over a defined region (YES! This is the only event specific to this, I'll explain more later)
GUItexture
-can be bound to regions
-here is where you can import external image files that I will make supported, most commonly .jpg, .bmp and .png.
-has x,y dimensions, choose which part of it will be bound to the region.
=====
For GUIevent, I will make a different subsystem for quick access of keyboard and mouse events. GUIevent should then access those for example:
if (GUIevent = "region_button1", Irrlicht_thing_to_get_mouse_data)
int button_clicked = 1;
You can further build upon GUIregion by making a GUIrectangle_region. This will just define a rectangle set of guiels, and will probably be a premade basic tool preincluded. You can 'add', if you will, different regions into one region, so just a branching kind of structure:
region1 = GUIregion::GUIregionDef(4,4,1); //last is layer it is in
region2 = GUIregion::GUIregionDef(2,2,1); //last is layer it is in
region3 = GUIregio::GUIregionDef
(
GUIregion::addGUIregions(
region1, region2
)
);
sorry if I just insulted the c++ language deities
![Sad :(](./images/smilies/icon_sad.gif)
There's a WHOLE bunch of stuff I have been brainstorming about, if you have any questions on any aspect of my game, chances are I have at least some of it planned out, so go ahead and ask me.
Also, here is a font map I am using. Using only the GUI system primitives, it is possible to create a simple text system. I have spent several days thinking out that [what I think is] robust GUI system based on those primitives. For pretty much every GUI situation I have thought of, it seems to offer a way to do it.
![Image](http://i51.tinypic.com/210dpy0.jpg)
EDIT:
![Image](http://i52.tinypic.com/s46xhj.jpg)
^What this is simulating. The player is NEAR ENOUGH a cabinet to look inside. The caibent contains cups and a fork, the player can then simply click their names and move them to say his right hand. The dish is all by iteslf because it is not contained in anything, this means it is probably just lying on a table or something. In the game I am making, you don't really have to click on anything in the environment, pretty much all item handling and changing is done through the Item Explorer. I am considering renaming it simply "Explorer", because I will add a few more concepts to it later.