List Box
LISTBOX
(A3 1.28)lb command family overview.
//lb command family can be used with CT_COMBO, CT_LISTBOX, CT_XLISTBOX & CT_XCOMBO
private ["_current","_data","_pic","_value","_size","_color"];
{
_ctrl = _x;
{
_ctrl lbAdd getText (_x >> "displayName");
_ctrl lbSetPicture [_foreachindex,getText (_x >> "texture")];
_ctrl lbSetTooltip [_foreachindex,getText (_x >> "displayName")];
} forEach ("isClass _x" configClasses (configFile >> "CfgRanks"));
_ctrl lbSetCurSel 0;
_current = lbCurSel _ctrl;
_ctrl lbSetData [_current,"hi"];
_data = _ctrl lbData _current;
_pic = _ctrl lbPicture _current;
_ctrl lbSetValue [_current, 1];
_value = _ctrl lbValue _current;
_size = lbSize _ctrl;
_color = _ctrl lbColor _current;
_ctrl lbSetColor [_current, [(_color select 0) / 2, (_color select 1) / 4, 0, 1]];
lbSort [_ctrl, "DESC"];
lbSortByValue _ctrl;
if (_ctrl lbIsSelected _current) then {
_ctrl lbDelete _current;
lbClear _ctrl;
};
} forEach [
_CT_COMBO,
_CT_LISTBOX,
_CT_XLISTBOX,
_CT_XCOMBO
];
LISTNBOX
(A3 1.28)As for invisible data processing, lnbAddArray, lnbAddColumn, lnbData, lnbGetColumnsPosition, lnbSetColumnsPos, lnbSetData, lnbSetText, lnbSetValue, lnbText and lnbValue store data types into exact position of the listNbox with different spaces. Accessing data with coordinate command at nearly the same syntax:
//Set same value to one position of a Control
_ctrl lnbSetData [ [0,0],"#1"];
lnbSetColumnsPos [102, [0,1], 1];
_ctrl lnbSetText [ [0,1], "#1"];
_ctrl lnbSetValue [ [0,0],1];
//Accessing the value disregard affecting one another.
_ctrl lnbData [0,0]; //"#1"
lnbGetColumnsPosition _ctrl //[1];
_ctrl lnbText [0,0];//"#1"
_ctrl lnbValue [0,0];//1
For a direct visible control over CT_LISTNBOX:
0 = [_CT_LISTNBOX] spawn {
private ["_CT_LISTNBOX","_color","_current","_pic"];
disableSerialization;
_CT_LISTNBOX = _this select 0;
{
_CT_LISTNBOX lnbAddRow [ getText (_x >> "displayNameShort"),getText (_x >> "displayName")];
_CT_LISTNBOX lnbSetPicture [ [_foreachIndex,0],getText (_x >> "texture")];
} forEach ("isClass _x" configClasses (configFile >> "CfgRanks"));
_CT_LISTNBOX lnbSetCurSelRow 0;
_current = lnbCurSelRow _CT_LISTNBOX;
_color = _CT_LISTNBOX lnbColor [_current,0];
_CT_LISTNBOX lnbSetColor [ [_current,1], [(_color select 0)/2,0,0,1] ];
_CT_LISTNBOX lnbDeleteColumn 0;
_CT_LISTNBOX lnbDeleteRow 1;
sleep 1;
lnbClear _CT_LISTNBOX;//Clear all items but control still remains just invisible.
};
A combined use of both invisible and visible data processing commands alive the Control.