{"name":"ctrlSetStructuredText","title":"ctrlSetStructuredText","type":"command","url":"https://community.bistudio.com/wiki/ctrlSetStructuredText","revid":321026,"updated":"2022-05-13T11:32:18Z","groups":["GUI Control","Structured Text"],"status":"ok","games":{"arma1":"1.00","arma2":"1.00","arma2oa":"1.50","tkoh":"1.00","arma3":"0.50"},"since":"arma1 1.00","arma3_since":"0.50","description":"Set the Structured Text which will be displayed in structured text control.","syntaxes":[{"syntax":"control ctrlSetStructuredText structuredText","params":[{"name":"control","type":"Control","type_expr":"Control"},{"name":"structuredText","type":"Structured Text","type_expr":"Structured Text"}],"returns":{"type":"Nothing","type_expr":"Nothing"},"form":"binary","left":{"text":"control"},"right":{"text":"structuredText"}}],"examples":[{"code":["_control ctrlSetStructuredText parseText \"First line<img image=data\\isniper.paa /><br />Second line\""]},{"text":"To adjust text vertically, add extra line above with blank space (&#160;) and set its size accordingly:\n\n```sqf\nwith uiNamespace do {\n    button = findDisplay 46 ctrlCreate [\"RscShortcutButton\", -1];\n    button ctrlSetPosition [0,0,0.3,0.1];\n    button ctrlCommit 0;\n    button ctrlSetStructuredText parseText\n    \"<t size='0.5'>&#160;</t><br/><t size='1' align='center'>Button Text&#160;&#160;</t>\";\n};\n```","code":["with uiNamespace do {\n\tbutton = findDisplay 46 ctrlCreate [\"RscShortcutButton\", -1];\n\tbutton ctrlSetPosition [0,0,0.3,0.1];\n\tbutton ctrlCommit 0;\n\tbutton ctrlSetStructuredText parseText \n\t\"<t size='0.5'> </t><br/><t size='1' align='center'>Button Text  </t>\";\n};"]},{"text":"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:\n\n```sqf\ndisableSerialization;\nprivate _ctrl = findDisplay 46 ctrlCreate [\"RscStructuredText\", -1];\n_ctrl ctrlSetPosition [0, 0, 0.5, 0.5];\n_ctrl ctrlSetBackgroundColor [0, 0, 0, 1];\n_ctrl ctrlCommit 0;\nprivate _lineHeight = getNumber (configFile >> \"RscStructuredText\" >> \"size\");\nprivate _linesTotal = (ctrlPosition _ctrl select 2) / _lineHeight;\nprivate _trailingSpace = \"\";\nfor \"_i\" from 1 to _linesTotal do { _trailingSpace = _trailingSpace + \" \" };\n_ctrl ctrlSetStructuredText parseText format [\"<t size='%1'><t size='1' align='center' valign='middle'>%2%3</t> </t>\", _linesTotal, \"------ Centered Text ------\", _trailingSpace];\n```","code":["disableSerialization;\nprivate _ctrl = findDisplay 46 ctrlCreate [\"RscStructuredText\", -1];\n_ctrl ctrlSetPosition [0, 0, 0.5, 0.5];\n_ctrl ctrlSetBackgroundColor [0, 0, 0, 1];\n_ctrl ctrlCommit 0;\nprivate _lineHeight = getNumber (configFile >> \"RscStructuredText\" >> \"size\");\nprivate _linesTotal = (ctrlPosition _ctrl select 2) / _lineHeight;\nprivate _trailingSpace = \"\";\nfor \"_i\" from 1 to _linesTotal do { _trailingSpace = _trailingSpace + \" \" };\n_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"],"notes":[{"user":"Dscha","date":"2020-03-20T19:48:00Z","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:\n\n```sqf\n_text = \"abc\";\n_ctrl ctrlSetStructuredText parseText _text;\n```\n\nThe 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)\n\n```sqf\n_text = parseText \"abc\";\n_ctrl ctrlSetStructuredText _text;\n```"}]}