Arma 3 Scripting

ctrlSetStructuredText

  • Arma 3 v0.50
  • First in Armed Assault v1.00

Command · also in Structured Text · Markdown · JSON · 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'>&#160;</t><br/><t size='1' align='center'>Button Text&#160;&#160;</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;