ctrlSetStructuredText: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - " +" to " ")
m (Some wiki formatting)
 
(26 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{RV|type=command
{{RV|type=command


| arma1
|game1= arma1
|version1= 1.00


|1.00
|game2= arma2
|version2= 1.00
 
|game3= arma2oa
|version3= 1.50
 
|game4= tkoh
|version4= 1.00
 
|game5= arma3
|version5= 0.50


|gr1= GUI Control
|gr1= GUI Control
Line 9: Line 20:
|gr2= Structured Text
|gr2= Structured Text


| Set the [[Structured Text]] which will be displayed in [[DialogControls-Text#CT_STRUCTURED_TEXT.3D13|structured text control]].
|descr= Set the [[Structured Text]] which will be displayed in [[DialogControls-Text#CT_STRUCTURED_TEXT.3D13|structured text control]].


|pr= Using this command will modify the provided ''structuredText'' - a way to circumvent this issue is to [[parseText]] in-line. See [[#Notes|Notes]].
|pr= Using this command will modify the provided ''structuredText'' - a way to circumvent this issue is to [[parseText]] in-line. See [[#Notes|Notes]].


| control [[ctrlSetStructuredText]] structuredText
|s1= control [[ctrlSetStructuredText]] structuredText


|p1= control: [[Control]]
|p1= control: [[Control]]


|p2= structuredText: [[Structured Text]]
|p2= structuredText: [[Structured Text]]


|r1=[[Nothing]]
|r1= [[Nothing]]


|x1= <code>_control [[ctrlSetStructuredText]] [[parseText]] "First line<img image<nowiki>=</nowiki>data\isniper.paa /><nowiki><br /></nowiki>Second line"</code>
|x1= <sqf>_control ctrlSetStructuredText parseText "First line<img image=data\isniper.paa /><br />Second line"</sqf>
|x2= To adjust text vertically, add extra line above with blank space (&amp;#160;) and set its size accordingly:<code>[[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'>&amp;#160;</t><nowiki><br/></nowiki><t size='1' align='center'>Button Text&amp;#160;&amp;#160;</t>";
};</code>


|x3= There is a bug with <tt>valign</tt> that requires adding 1 extra trailing space per line to the displayed text in order to keep it centered horizontally:
|x2= To adjust text vertically, add extra line above with blank space (&amp;#160;) and set its size accordingly:
<code>[[disableSerialization]];
<sqf>
[[private]] _ctrl = [[findDisplay]] 46 [[ctrlCreate]] ["RscStructuredText", -1];
with uiNamespace do {
_ctrl [[ctrlSetPosition]] [0, 0, 0.5, 0.5];
button = findDisplay 46 ctrlCreate ["RscShortcutButton", -1];
_ctrl [[ctrlSetBackgroundColor]] [0, 0, 0, 1];  
button ctrlSetPosition [0,0,0.3,0.1];
_ctrl [[ctrlCommit]] 0;
button ctrlCommit 0;
[[private]] _lineHeight = [[getNumber]] ([[configFile]] >> "RscStructuredText" >> "size");
button ctrlSetStructuredText parseText  
[[private]] _linesTotal = ([[ctrlPosition]] _ctrl [[select]] 2) / _lineHeight;
"<t size='0.5'>&#160;</t><br/><t size='1' align='center'>Button Text&#160;&#160;</t>";
[[private]] _trailingSpace = "";
};
[[for]] "_i" [[from]] 1 [[to]] _linesTotal [[do]] { _trailingSpace = _trailingSpace + " " };
</sqf>
_ctrl [[ctrlSetStructuredText]] [[parseText]] [[format]] ["<t size='%1'><t size='1' align='center' valign='middle'>%2%3</t> </t>", _linesTotal, "------ Centered Text ------", _trailingSpace];</code>


|seealso= [[Structured Text]], [[composeText]], [[parseText]], [[text]]
|x3= There is a bug with {{hl|valign}} that requires adding 1 extra trailing space per line to the displayed text in order to keep it centered horizontally:
<sqf>
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];
</sqf>
 
|seealso= [[Structured Text]] [[composeText]] [[parseText]] [[text]]
}}
}}


<dl class="command_description">
{{Note
<dt></dt>
|user= Dscha
<dd class="notedate">Posted on March 20, 2020 - 19:48 (UTC)</dd>
|timestamp= 20200320194800
<dt class="note">[[User:Dscha|Dscha]]</dt>
|text= When using [[parseText]] on an RscStructuredText control, with '''custom Attributes''' set (extra config Class), it needs to be in the same line as [[ctrlSetStructuredText]]:
<dd class="note">
<sqf>
When using [[parseText]] on an RscStructuredText control, with '''custom Attributes''' set (extra config Class), it needs to be in the same line as [[ctrlSetStructuredText]]: <br>
_text = "abc";
<code>_text = "abc";
_ctrl ctrlSetStructuredText parseText _text;
_ctrl [[ctrlSetStructuredText]] [[parseText]] _text;
</sqf><br>
</code><br>
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)
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)
<code>_text = [[parseText]] "abc";
<sqf>
_ctrl [[ctrlSetStructuredText]] _text;
_text = parseText "abc";
</code>
_ctrl ctrlSetStructuredText _text;
</dd>
</sqf>
 
}}
</dl>
 
{{GameCategory|arma1|Scripting Commands}}
{{GameCategory|arma2|Scripting Commands}}
{{GameCategory|arma3|Scripting Commands}}
{{GameCategory|tkoh|Scripting Commands}}

Latest revision as of 12:32, 13 May 2022

Hover & click on the images for description

Description

Description:
Set the Structured Text which will be displayed in structured text control.
Problems:
Using this command will modify the provided structuredText - a way to circumvent this issue is to parseText in-line. See Notes.
Groups:
GUI ControlStructured Text

Syntax

Syntax:
control ctrlSetStructuredText structuredText
Parameters:
control: Control
structuredText: Structured Text
Return Value:
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 (&#160;) 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];

Additional Information

See also:
Structured Text composeText parseText text

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
Dscha - c
Posted on Mar 20, 2020 - 19:48 (UTC)
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;