ACE3/addons/ui/functions/fnc_setAdvancedElement.sqf

50 lines
1.3 KiB
Plaintext
Raw Normal View History

2015-10-28 22:23:02 +00:00
/*
* Author: Jonpas
* Sets advanced visible element of the UI using displays and controls.
*
* Arguments:
* 0: Element info <ARRAY>
* 0: Show/Hide Element OR Element Variable <BOOL/STRING>
* 1: Element IDD <NUMBER>
* 2: Element IDCs <ARRAY>
* 1: Force change even when disallowed <BOOL>
2015-10-28 22:23:02 +00:00
*
* Return Value:
* None
*
* Example:
* [[show, 303, [188]], false] call ace_ui_fnc_setAdvancedElement
2015-10-28 22:23:02 +00:00
*
* Public: No
*/
#include "script_component.hpp"
params ["_elementInfo", ["_force", false, [true]] ];
2015-10-28 22:23:02 +00:00
if (!_force && {!GVAR(allowSelectiveUI)}) exitWith {
[LSTRING(Disallowed), 2] call EFUNC(common,displayTextStructured)
};
_elementInfo params ["_show", "_idd", "_elements"];
2015-10-28 22:23:02 +00:00
// Get show/hide boolean from mission namespace if it's a string
if (typeName _show == "STRING") then {
_show = missionNamespace getVariable _show;
};
_show = [1, 0] select _show;
// Disable/Enable elements
{
2016-03-06 11:50:16 +00:00
private _idc = _x;
2015-10-28 22:23:02 +00:00
// Loop through IGUI displays as they can be present several times for some reason
{
if (_idd == ctrlIDD _x) then {
TRACE_3("Setting Element Visibility",_show,_idd,_idc);
(_x displayCtrl _idc) ctrlSetFade _show;
(_x displayCtrl _idc) ctrlCommit 0;
};
} forEach (uiNamespace getVariable "IGUI_displays");
} forEach _elements;