Here’s a few quick notes to get you going.
Window > Show Navigator
- this is akin to Layers in Adobe Photoshop
- it keeps track of your gui windowDefs, lets you hide and show things for easier editing, shows nested windowDefs hierarchies
Window > Show Transformer
- no Autobots or Decepticons, but you do get some handy dialogs for directly inputting the origin of the windowDef (x,y) and its size (w,h)
Window > Show Properties
- displays all the key/value combinations for the selected windowDef
- you can add keys and edit values
This is a basic .gui:
windowDef Desktop
{
rect 0,0,640,480
}
The Desktop windowDef is the main parent to everything else in the .gui.
All windowDefs must remain within the Desktops co-ordinates to be visible (much like Macromedia Flash).
If you select Item > New > windowDef you will get a child within the desktop called “unnamed1”.
Your .gui will now look like this:
windowDef Desktop
{
rect 0,0,640,480
windowDef unnamed1
{
rect 0,0,100,100
visible 1
}
}
You can manually enter a new origin or dimensions of the windowDef using the Properties window or you can left-click and drag the windowDef to a new position. Use the little squre handles to change its dimensions.
Double-clicking on the windowDef (or its name in the Navigator) will open up the Item Properties window where you can set all the different parameters of a windowDef. Use the Keys tab to delete any unwanted key/value pairs.
In the main editing window, you can also right-click to bring up the same options found in the main Item menu.
You can “nest” windows within each other using the Item > Arrange > Make Child option.
First select the window to be the parent, then select the window to be the child and click Item > Arrange > Make Child.
Note that the origin of the child will change from being relative to the desktop to being relative to its new parent.
The Quake IV GUI Editor automatically adjusts the child’s origin co-ordinates without moving the visiual position of the child windowDef. This is great for mocking up .gui layouts
If you manually nest the windowDef in a text editor without the changing the origin, the child will now be offset. The x and y values of the rect key are always relative to its parent (the Desktop being the default parent to all newly created windowDefs).
If you change the parent windowDef’s visibility to 0, you will also hide the children. The visibility key of the children will not change, but since the parent acts like a “container” for the children if you hide the container then the children won’t be visible as well. Likewise, if you move the parent you take the children along for the ride.
Here is an example of basic windowDef nesting:
windowDef Desktop
{
rect 0,0,640,480
windowDef blue
{
rect 171,134,434,308
visible 1
backcolor 0,0,1,1
windowDef red
{
rect 120,22,209,150
visible 1
backcolor 1,0,0,1
}
}
}
Use Tools > Viewer to open the GUI Viewer window for a preview of the gui.
I suggest copying some of the Doom3 .gui files, renaming them, and playing about with the editor to see how they are structured. Note that any comments in the .gui will be stripped out by the Quake IV GUI Editor, so it’s wise to not muck about with the raw Doom3 .guis unless you want to risk breaking your game.
Good luck