Arma 3 Scripting

Command in GUI Control, Structured Text

ctrlSetStructuredText

Also available as Markdown and JSON, or read the original wiki page.

Description

Set the Structured Text which will be displayed in structured text control.

Syntax

control ctrlSetStructuredText structuredText

Parameters:

Returns: Nothing

Examples

Example 1

_control ctrlSetStructuredText parseText "First line<img image=data\isniper.paa /><br />Second line"

Example 2

To adjust text vertically, add extra line above with blank space ( ) and set its size accordingly:

with uiNamespace do {
    button = findDisplay 46 ctrlCreate ["RscShortcutButton", -1];
    button ctrlSetPosition [0,0,0.3,0.1];
    button ctrlCommit 0;
    button ctrlSetStructuredText parseText 
    "<t size='0.5'> </t><br/><t size='1' align='center'>Button Text  </t>";
};

Example 3

There is a bug with valign that requires adding 1 extra trailing space per line to the displayed text in order to keep it centered horizontally:

disableSerialization;
private _ctrl = findDisplay 46 ctrlCreate ["RscStructuredText", -1];
_ctrl ctrlSetPosition [0, 0, 0.5, 0.5];
_ctrl ctrlSetBackgroundColor [0, 0, 0, 1];
_ctrl ctrlCommit 0;
private _lineHeight = getNumber (configFile >> "RscStructuredText" >> "size");
private _linesTotal = (ctrlPosition _ctrl select 2) / _lineHeight;
private _trailingSpace = "";
for "_i" from 1 to _linesTotal do { _trailingSpace = _trailingSpace + " " };
_ctrl ctrlSetStructuredText parseText format ["<t size='%1'><t size='1' align='center' valign='middle'>%2%3</t> </t>", _linesTotal, "------ Centered Text ------", _trailingSpace];

Problems

Using this command will modify the provided structuredText - a way to circumvent this issue is to parseText in-line. See Notes.

See also

Structured Text · composeText · parseText · text

Community notes

Dscha

When using parseText on an RscStructuredText control, with custom Attributes set (extra config Class), it needs to be in the same line as ctrlSetStructuredText:

_text = "abc";
_ctrl ctrlSetStructuredText parseText _text;

The following Code would use none of the custom Attributes of the selected Control, instead it falls back to Standard Values (Font, Size, Color, Align, etc)

_text = parseText "abc";
_ctrl ctrlSetStructuredText _text;