{"name":"ctrlSetStructuredText","operator":null,"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","replaced_by":[],"games":[{"game":"arma1","name":"Armed Assault","version":"1.00"},{"game":"arma2","name":"Arma 2","version":"1.00"},{"game":"arma2oa","name":"Arma 2: Operation Arrowhead","version":"1.50"},{"game":"tkoh","name":"Take On Helicopters","version":"1.00"},{"game":"arma3","name":"Arma 3","version":"0.50"}],"since":{"game":"arma1","name":"Armed Assault","version":"1.00"},"arma3_since":"0.50","branch":null,"locality":{"argument":null,"effect":null,"server_exec":false},"exec":null,"description":"Set the Structured Text which will be displayed in structured text control.","syntaxes":[{"syntax":"control ctrlSetStructuredText structuredText","since":null,"effect":null,"exec":null,"params":[{"name":"control","type":"Control","optional":false,"default":null,"description":null,"types":["Control"],"since":null,"text":"control: Control"},{"name":"structuredText","type":"Structured Text","optional":false,"default":null,"description":null,"types":["Structured Text"],"since":null,"text":"structuredText: Structured Text"}],"returns":{"type":"Nothing","types":["Nothing"],"description":null,"text":"Nothing"},"form":"binary","operator":null,"left":{"text":"control","types":["Control"]},"right":{"text":"structuredText","types":["Structured Text"]}}],"examples":[{"text":"```sqf\n_control ctrlSetStructuredText parseText \"First line<img image=data\\isniper.paa /><br />Second line\"\n```","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'> </t><br/><t size='1' align='center'>Button Text  </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];"]}],"multiplayer":null,"problems":"Using this command will modify the provided *structuredText* - a way to circumvent this issue is to parseText in-line. See Notes.","aliases":[],"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```"}],"categories":["ArmA: Armed Assault: New Scripting Commands","ArmA: Armed Assault: Scripting Commands","Arma 2: Operation Arrowhead: Scripting Commands","Arma 2: Scripting Commands","Arma 3: Scripting Commands","Command Group: GUI Control","Command Group: Structured Text","Introduced with Armed Assault version 1.00","Scripting Commands","Take On Helicopters: Scripting Commands"]}