Skip to content
DevGeniusCode edited this page Mar 14, 2025 · 1 revision

USER Control

The USER control is the default control type, used for multiple purposes. It can serve as a container or group for other controls, as well as a tool for drawing rectangular shapes or lines by defining their position. Other controls also use the tags defined for the USER control, in addition to their own specific tags.

Purposes of the Control

  1. Container/Group: The USER control can act as a container, holding and organizing other controls. This allows for efficient layout and management of multiple elements on the screen.

  2. Drawing Rectangles or Lines: It can also be used to draw rectangular shapes or lines by specifying the position and dimensions, making it useful for creating visual boundaries or shapes within the UI.

Opening and Closing a Control

Each control is opened with the keyword WINDOW and closed with the keyword END.

For the USER control, when it serves as a container (group), it can contain other controls as children. Each child control is preceded by the keyword CHILD, and after all the children have been defined, the keyword ENDALLCHILDREN should be used to close the group of children and return to the main control.

Example with Children

WINDOW
  WINDOWTYPE = USER ; parent
  ... rest of control options
  CHILD
  WINDOW ; child
    WINDOWTYPE = CHECKBOX
    ... rest of control child options
  END
  CHILD
  WINDOW ; child
    WINDOWTYPE = COMBOBOX
    ... rest of control child options
  END
  WINDOW ; child and parent or just a drawing
    WINDOWTYPE = USER
    ... rest of control child options
  END
  ENDALLCHILDREN
END

Available Tags

Note

All tags are case-sensitive.

The following tags are available for the USER control:

Click on the links to view available values and options for the tag.

Tag Description
WINDOWTYPE The control type.
SCREENRECT Defines the size and position of the control on the screen.
NAME The name of the control.
STATUS The status of the control. see statuses
STYLE The style of the control. see styles.
SYSTEMCALLBACK The system callback function for the control. see callbacks.
INPUTCALLBACK The input callback function for the control.
TOOLTIPCALLBACK Callback function for the control’s tooltip.
DRAWCALLBACK Callback function for the control’s texture.
FONT Font settings. see Text Properties.
HEADERTEMPLATE (Optional) Defines the template for the control’s text. see Text Properties.
TOOLTIPTEXT (Optional) Text for the tooltip displayed when hovering over the control. see Text Properties.
TOOLTIPDELAY Delay 0...n time for the tooltip to appear, -1 for disable.
TEXT (Optional) The text displayed in the control. see Text Properties.
TEXTCOLOR Color settings for text in different states. see Text Properties.
ENABLEDDRAWDATA,
DISABLEDDRAWDATA,
HILITEDRAWDATA
Visual texture for the control in different states. see Texturing.

Important

The order of the tags is crucial for proper rendering of the control and must be followed as specified.

Example

Here’s a sample code defining a USER control:

Note

Each texture contain 9 elements

WINDOW
   WINDOWTYPE = USER;
   SCREENRECT = UPPERLEFT: 140 20,
               BOTTOMRIGHT: 660 544,
               CREATIONRESOLUTION: 800 600;
   NAME = "OptionsMenu.wnd:OptionsMenuParent";
   STATUS = ENABLED+NOFOCUS+SEE_THRU;
   STYLE = USER;
   SYSTEMCALLBACK = "OptionsMenuSystem";
   INPUTCALLBACK = "OptionsMenuInput";
   TOOLTIPCALLBACK = "[None]";
   DRAWCALLBACK = "[None]";
   FONT = NAME: "Times New Roman", SIZE: 14, BOLD: 0;
   HEADERTEMPLATE = "[NONE]";
   TOOLTIPDELAY = -1;
   TEXTCOLOR = ENABLED:  255 255 255 0, ENABLEDBORDER:  255 255 255 0,
              DISABLED: 255 255 255 0, DISABLEDBORDER: 255 255 255 0,
              HILITE:   255 255 255 0, HILITEBORDER:   255 255 255 0;
   ENABLEDDRAWDATA = IMAGE: NoImage, COLOR: 2 2 2 175, BORDERCOLOR: 47 55 168 255,
                     IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                     IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                     IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                     IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                     IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                     IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                     IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                     IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255;
   DISABLEDDRAWDATA = IMAGE: NoImage, COLOR: 64 64 64 255, BORDERCOLOR: 254 254 254 255,
                      IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                      IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                      IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                      IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                      IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                      IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                      IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                      IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255;
   HILITEDRAWDATA = IMAGE: NoImage, COLOR: 128 128 255 255, BORDERCOLOR: 254 254 254 255,
                    IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                    IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                    IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                    IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                    IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                    IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                    IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255,
                    IMAGE: NoImage, COLOR: 255 255 255 255, BORDERCOLOR: 255 255 255 255;
END

See Also

Category: Controls

Navbar for Asset

Asset

Tools

  • FinalBIG
  • Generals Mode Builder
Clone this wiki locally