ACE3/TO_MERGE/cse/f_configuration/functions/fn_settingsMenuUpdateKeyView.sqf
2015-01-12 23:19:55 +01:00

74 lines
2.2 KiB
Plaintext

/**
* fn_settingsMenuUpdateKeyView.sqf
* @Descr: N/A
* @Author: Glowbal
*
* @Arguments: []
* @Return:
* @PublicAPI: false
*/
private ["_setting","_ctrlList","_collection","_settingsMenu", "_keybinding","_keyCode","_shiftPressed","_altPressed","_ctrlPressed"];
disableSerialization;
_settingsMenu = uiNamespace getVariable 'cse_settingsMenu';
_ctrlList = _settingsMenu displayCtrl 200;
_collection = switch (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F) do {
case "menu": {CSE_F_KEYBINDINGS_MENUS};
case "action": {CSE_F_KEYBINDINGS_ACTIONS};
case "option": {CSE_F_CLIENT_SIDE_SETTINGS};
default {[]};
};
if (count _collection > 0) then {
_selectedSetting = (lbCurSel _ctrlList);
if (_selectedSetting > (count _collection)) then {
_selectedSetting = count _collection - 1;
};
if (_selectedSetting < 0) exitwith {
_selectedSetting = 0;
};
_setting = _collection select _selectedSetting;
_details = [_setting select 0, CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F] call cse_fnc_getSettingDetails_F;
(_settingsMenu displayCtrl 250) ctrlSetText (_details select 0);
(_settingsMenu displayCtrl 251) ctrlSetText (_details select 1);
if (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F != "option") then {
_keybinding = _setting select 1;
_keyCode = _keybinding select 0;
_shiftPressed = _keybinding select 1;
_ctrlPressed = _keybinding select 2;
_altPressed = _keybinding select 3;
_keyBindingText = keyName _keyCode;
if (_keyBindingText == '""') then {
_keyBindingText = "No key assigned";
};
(_settingsMenu displayCtrl 300) ctrlSetText ("Key: " + _keyBindingText);
lbClear 400;
lbadd [400, "No"];
lbadd [400, "Yes"];
lbadd [400, "Ignore"];
(_settingsMenu displayCtrl 400) lbSetCurSel _shiftPressed;
(_settingsMenu displayCtrl 401) lbSetCurSel _ctrlPressed;
(_settingsMenu displayCtrl 402) lbSetCurSel _altPressed;
} else {
_possibleValues = _setting select 1;
_settingsValue = _setting select 2;
lbClear 400;
_settingsText = (_possibleValues select _settingsValue); // expecting: value [[any, TEXT (DESCRIPTION)]]
(_settingsMenu displayCtrl 300) ctrlSetText ("Setting: " + _settingsText);
{
lbAdd [400, _x];
}foreach _possibleValues;
(_settingsMenu displayCtrl 400) lbSetCurSel _settingsValue;
};
};