ctrlSetStructuredText: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "|gr1= GUI Control |GROUP1= |gr1= GUI Control |GROUP1=" to "|gr1= GUI Control |GROUP1=")
m (Some wiki formatting)
 
(45 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Command|Comments=
{{RV|type=command
____________________________________________________________________________________________


| arma |Game name=
|game1= arma1
|version1= 1.00


|1.00|Game version=
|game2= arma2
|version2= 1.00


|gr1= GUI Control |GROUP1=
|game3= arma2oa
____________________________________________________________________________________________
|version3= 1.50


| Set the [[Structured Text]] which will be displayed in [[DialogControls-Text#CT_STRUCTURED_TEXT.3D13|structured text control]]. |DESCRIPTION=
|game4= tkoh
|version4= 1.00


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


| control [[ctrlSetStructuredText]] structuredText |SYNTAX=
|gr1= GUI Control


|p1=  control: [[Control]] |PARAMETER1=
|gr2= Structured Text


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


| [[Nothing]] |RETURNVALUE=
|pr= Using this command will modify the provided ''structuredText'' - a way to circumvent this issue is to [[parseText]] in-line. See [[#Notes|Notes]].
____________________________________________________________________________________________
 
|x1= <code>_control [[ctrlSetStructuredText]] [[parseText]] "First line<img image<nowiki>=</nowiki>data\isniper.paa /><nowiki><br /></nowiki>Second line"</code> |EXAMPLE1=
|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> |EXAMPLE2=


|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:
|s1= control [[ctrlSetStructuredText]] structuredText
<code>[[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];</code>|EXAMPLE3=
____________________________________________________________________________________________


| [[Structured Text]], [[composeText]], [[parseText]], [[text]] |SEEALSO=
|p1= control: [[Control]]
}}
 
|p2= structuredText: [[Structured Text]]


<h3 style="display:none">Notes</h3>
|r1= [[Nothing]]


<dl class="command_description">
|x1= <sqf>_control ctrlSetStructuredText parseText "First line<img image=data\isniper.paa /><br />Second line"</sqf>


<dd class="notedate">Posted on March 20, 2020 - 19:48 (UTC)</dd>
|x2= To adjust text vertically, add extra line above with blank space (&amp;#160;) and set its size accordingly:
<dt class="note">[[User:Dscha|Dscha]]</dt>
<sqf>
<dd class="note">
with uiNamespace do {
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>
button = findDisplay 46 ctrlCreate ["RscShortcutButton", -1];
<code>_text = "abc";
button ctrlSetPosition [0,0,0.3,0.1];
_ctrl [[ctrlSetStructuredText]] [[parseText]] _text;
button ctrlCommit 0;
</code><br>
button ctrlSetStructuredText parseText  
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)
"<t size='0.5'>&#160;</t><br/><t size='1' align='center'>Button Text&#160;&#160;</t>";
<code>_text = [[parseText]] "abc";
};
_ctrl [[ctrlSetStructuredText]] _text;
</sqf>
</code>
</dd>


</dl>
|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>


<h3 style="display:none">Bottom Section</h3>
|seealso= [[Structured Text]] [[composeText]] [[parseText]] [[text]]
}}


[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
{{Note
[[Category:Scripting Commands Armed Assault|{{uc:{{PAGENAME}}}}]]
|user= Dscha
[[Category:Command_Group:_GUI_Control|{{uc:{{PAGENAME}}}}]]
|timestamp= 20200320194800
[[Category:Scripting Commands Arma 2|{{uc:{{PAGENAME}}}}]]
|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]]:
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
<sqf>
[[Category:Scripting Commands Take On Helicopters|{{uc:{{PAGENAME}}}}]]
_text = "abc";
_ctrl ctrlSetStructuredText parseText _text;
</sqf><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)
<sqf>
_text = parseText "abc";
_ctrl ctrlSetStructuredText _text;
</sqf>
}}

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;