GUIController
The GUIController contains a simple first-in, last-out menu stack. You have three things you can do:
- Open a menu – adds the menu to the top of the stack.
 - Replace a menu – replaces the current menu with the new menu.
 - Close a menu – returns you to the last menu on the stack.
 
The GUIController is the GUI system's only interface to the world of Actors.
A similar UT class would probably be the WindowConsole, although the UWindow system in UT is more like a console extension while UT2003's GUIController and Console are both Interactions without being a subclass of eachother.
Interactive GUI Design Mode
To enable the interactive GUI design mode, open the Game ini file (UT2003.ini) and set the following property:
[XInterface.GUIController] bModAuthor=True
Press Ctrl+Alt+D to enter the interactive GUI design mode.  In that mode, you can:
Ctrl+Clicka control to select it. RepeatedlyCtrl+Clickto select overlapping controls.- Press 
Shiftto temporarily hide the selection rectangle. - Press 
Ctrl+ArrowUp,Ctrl+ArrowLeft,Ctrl+ArrowRightandCtrl+ArrowDownto move the selected control. - Press 
Ctrl+GrayPlusandCtrl+GrayMinusto change the horizontal size of the selected control.
PressCtrl+PlusandCtrl+Minus(on the alphanumeric keyboard) to change the vertical size of the selected control. 
Add Alt to the movement and sizing key combinations to move or size faster.
- Press Ctrl+C to copy the selected control's window metrics to the clipboard.  You can directly paste them into your control's inline object definition in the 
defaultpropertiessection. 
Properties
- GUIComponent ActiveControl
 - Which control is currently active.
 - GUIPage ActivePage
 - Points to the currently active page.
 - bool AltPressed
 - Alt key is being held.
 - array<string> AutoLoad (config)
 - Any menu classes in here will be automatically loaded.
 - bool bCurMenuInitialized
 - Has the current Menu Finished initialization.
 - bool bDesignMode
 - Are we in design mode.
 - bool bForceMouseCheck
 - bool bHighlightCurrent
 - Highlight the current control being edited.
 - bool bIgnoreNextRelease
 - Used to make sure discard errant releases.
 - bool bIgnoreUntilPress
 - bool bModAuthor (config)
 - Enables interactive GUI design mode. See above for details.
 - float ButtonRepeatDelay
 - The amount of delay for faking button repeats.
 - sound ClickSound
 - bool CtrlPressed
 - Ctrl key is being held.
 - float CursorFade
 - How visible is the cursor.
 - int CursorStep
 - Are we fading in or out.
 - float DblClickWindow
 - How long do you have for a double click.
 - sound DownSound
 - sound EditSound
 - float FastCursorFade
 - How visible is the cursor.
 - int FastCursorStep
 - Are we fading in or out.
 - GUIComponent FocusedControl
 - Top most Focused control.
 - array<GUIFont?> FontStack (editinline)
 - Holds all the possible fonts.
 - string GameResolution
 - float LastClickTime
 - When did the last click occur.
 - int LastClickX
int LastClickY - Who was the active component
 - float LastMouseX
 - float LastMouseY
 - bool MainNotWanted
 - Set to true if you don't want main to appear.
 - float MenuMouseSens (config)
 - array<GUIPage> MenuStack (editinline, export)
 - Holds the stack of menus.
 - Array<vector> MouseCursorOffset (editinline)
 - Only X,Y used, between 0 and 1. 'Hot Spot' of cursor material.
 - Array<Material> MouseCursors (editinline)
 - Holds a list of all possible mouse coursers.
 - sound MouseOverSound
 - float MouseX
float MouseY - Where is the mouse currently located.
 - GUIComponent MoveControl
 - Used for visual design.
 - array<GUIPage> PersistentStack
 - Holds the set of pages which are persistent across close/open.
 - float RepeatDelta
 - Data var
 - byte RepeatKey
 - Used to determine what should repeat.
 - float RepeatTime
 - How long until the next repeat.
 - bool ShiftPressed
 - Shift key is being held.
 - GUIComponent SkipControl
 - This control should be skipped over and drawn at the end.
 - array<string> StyleNames
 - Holds the name of all styles to use.
 - array<GUIStyles?> StyleStack
 - Holds all of the possible styles.
 - sound UpSound
 - Material WhiteBorder
 
Methods
Inherited from Interaction
- NotifyLevelChange ( ) [event]
 
Inherited from BaseGUIController
- AutoLoadMenus ( ) [event]
 - bool OpenMenu (string NewMenuName, optional string Param1, optional string Param2) [event]
 - Opens a new menu and places it on top of the stack.
 - bool ReplaceMenu (string NewMenuName, optional string Param1, optional string Param2) [event]
 - Replaces a menu in the stack. Returns true if success.
 - CloseAll (bool bCancel) [event]
 - bool CloseMenu (optional bool bCanceled) [event]
 - Close the top menu. returns true if success.
 - InitializeController ( ) [event]
 - SetControllerStatus (bool On)
 - SetRequiredGameResolution (string GameRes) [event]
 - bool NeedsMenuResolution() [event]
 
Newly Declared Methods
- ChangeFocus (GUIComponent Who) [event]
 - ClearControls (GUIMultiComponent Comp)
 - GUIPage CreateMenu (string NewMenuName) [event]
 - Attempts to create a menu. Returns none if it can't.
 - string GetCurrentRes ( ) [native]
 - Returns the current res as a string.
 - string GetMainMenuClass ( ) [native]
 - Returns GameEngine.MainMenuClass.
 - GetMapList (string Prefix , GUIList? list) [native]
 - GUIFont? GetMenuFont (string FontName) [native event]
 - Finds a given font in the FontStack.
 - GetOGGList (out array<string> OGGFiles) [native]
 - GetProfileList (string Prefix, out array<string> ProfileList) [native]
 - GUIStyles? GetStyle (string StyleName) [native event]
 - Find a style on the stack.
 - GetTeamSymbolList (array<string> SymbolNames, optional bool bNoSinglePlayer) [native]
 - GetWeaponList (out array<class<Weapon>> WeaponClass , out array<string> WeaponDesc) [native]
 - bool HasMouseMoved ( )
 - string LoadDecoText (string PackageName , string DecoTextName) [native]
 - MoveFocused (GUIComponent Ctrl , int bmLeft, int bmTop, int bmWidth, int bmHeight, float ClipX , float ClipY) [event]
 - bool RegisterStyle (class<GUIStyles?> StyleClass)
 - ResetFocus()
 - ResetKeyboard ( ) [native]
 - GUIPage TopPage ( )
 
Delegates
- bool OnNeedRawKeyPress (byte NewKey)
 
Known Subclasses
- ProGUIController – used by the Pro GUI
 
