diff --git a/addons/common/functions/fnc_execNextFrame.sqf b/addons/common/functions/fnc_execNextFrame.sqf index 58c6ced4f3..e0dd49e86c 100644 --- a/addons/common/functions/fnc_execNextFrame.sqf +++ b/addons/common/functions/fnc_execNextFrame.sqf @@ -29,6 +29,6 @@ EXPLODE_2_PVT(_this,_func,_params); // Execute the function _funcParams call _func; }, - _interval, + 0, [_this, diag_frameno] ] call CBA_fnc_addPerFrameHandler diff --git a/addons/optionsmenu/XEH_postInit.sqf b/addons/optionsmenu/XEH_postInit.sqf index 421c54b49f..92f73f18b1 100644 --- a/addons/optionsmenu/XEH_postInit.sqf +++ b/addons/optionsmenu/XEH_postInit.sqf @@ -1 +1,7 @@ #include "script_component.hpp" + +[] spawn { + sleep 1; + [] call FUNC(addFromConfig); + +}; \ No newline at end of file diff --git a/addons/optionsmenu/XEH_preInit.sqf b/addons/optionsmenu/XEH_preInit.sqf index 16b277852b..38038ab592 100644 --- a/addons/optionsmenu/XEH_preInit.sqf +++ b/addons/optionsmenu/XEH_preInit.sqf @@ -4,6 +4,7 @@ ADDON = false; PREP(addClientSideColor); PREP(addClientSideOptions); +PREP(addFromConfig); PREP(loadFromProfile); PREP(onListBoxSettingsChanged); PREP(onListBoxShowSelectionChanged); diff --git a/addons/optionsmenu/config.cpp b/addons/optionsmenu/config.cpp index 7bb15de7a8..0821198243 100644 --- a/addons/optionsmenu/config.cpp +++ b/addons/optionsmenu/config.cpp @@ -19,6 +19,25 @@ class CfgAddons { }; }; }; +//PARAMS_4(_name,_localizedName,_localizedDescription,_defaultValue); +class ACE_Options { + class GVAR(testOption) { + displayName = "Config Test"; + description = "Config Description"; + default = 1; + values[] = {"Yeah", "Naa"}; + }; +}; + +class ACE_Colors { + class GVAR(testColor) { + displayName = "Color Config Test"; + description = "Color Config Description"; + default[] = {0,1,2,3}; + }; +}; + + #include "CfgEventHandlers.hpp" #include "gui\define.hpp" diff --git a/addons/optionsmenu/functions/fnc_addFromConfig.sqf b/addons/optionsmenu/functions/fnc_addFromConfig.sqf new file mode 100644 index 0000000000..82500b3ac9 --- /dev/null +++ b/addons/optionsmenu/functions/fnc_addFromConfig.sqf @@ -0,0 +1,40 @@ +/** +* fnc_addFromConfig.sqf +* @Descr: N/A +* @Author: PabstMirror +* +* @Arguments: [] +* @Return: +* @PublicAPI: false +*/ +#include "script_component.hpp" + +systemChat format ["Reding From config"]; + +if (isClass (configFile >> "ACE_Options")) then { + _countOptions = count (configFile >> "ACE_Options"); + + for "_index" from 0 to (_countOptions - 1) do { + _optionEntry = (configFile >> "ACE_Options") select _index; + _name = configName _optionEntry; + _displayName = getText (_optionEntry >> "displayName"); + _description = getText (_optionEntry >> "description"); + _default = getNumber (_optionEntry >> "default"); + _choices = getArray (_optionEntry >> "values"); + if ((count _choices) == 0) then { + _choices = ["Aye", "Nay"]; + }; + [_name, _displayName, _description, _choices, _default] call FUNC(addClientSideOptions); + }; +}; + + +// class ACE_Options { +// GVAR(testOption) { +// displayName = "Config Test"; +// description = "Config Description" +// default = 1; +// values[] = {"Yeah", "Naa"}; +// }; +// }; + diff --git a/addons/optionsmenu/functions/fnc_onListBoxShowSelectionChanged.sqf b/addons/optionsmenu/functions/fnc_onListBoxShowSelectionChanged.sqf index 1853e043d7..f4d41674bd 100644 --- a/addons/optionsmenu/functions/fnc_onListBoxShowSelectionChanged.sqf +++ b/addons/optionsmenu/functions/fnc_onListBoxShowSelectionChanged.sqf @@ -21,7 +21,6 @@ switch (GVAR(optionMenu_openTab)) do { case (MENU_TAB_OPTIONS): { _localizedHeader = format ["%1: %2", (localize "STR_ACE_OptionsMenu_OpenConfigMenu"), (localize "STR_ACE_OptionsMenu_TabOptions")]; ctrlSetText [13, _localizedHeader]; - lbClear 400; (_settingsMenu displayCtrl 301) ctrlShow true; diff --git a/addons/optionsmenu/functions/fnc_onSettingsMenuOpen.sqf b/addons/optionsmenu/functions/fnc_onSettingsMenuOpen.sqf index 37f4492edc..11f5a3ef64 100644 --- a/addons/optionsmenu/functions/fnc_onSettingsMenuOpen.sqf +++ b/addons/optionsmenu/functions/fnc_onSettingsMenuOpen.sqf @@ -9,4 +9,5 @@ */ #include "script_component.hpp" -[MENU_TAB_OPTIONS] call FUNC(onListBoxShowSelectionChanged); +//Delay a frame +[{ [MENU_TAB_OPTIONS] call FUNC(onListBoxShowSelectionChanged) }, []] call EFUNC(common,execNextFrame); diff --git a/addons/optionsmenu/functions/fnc_settingsMenuUpdateList.sqf b/addons/optionsmenu/functions/fnc_settingsMenuUpdateList.sqf index d80e5a9fc0..ff825a2141 100644 --- a/addons/optionsmenu/functions/fnc_settingsMenuUpdateList.sqf +++ b/addons/optionsmenu/functions/fnc_settingsMenuUpdateList.sqf @@ -12,7 +12,8 @@ private ["_settingsMenu", "_ctrlList", "_settingsText", "_color", "_settingsColor", "_updateKeyView"]; DEFAULT_PARAM(0,_updateKeyView,true); -disableSerialization +disableSerialization; +_settingsMenu = uiNamespace getVariable 'ACE_settingsMenu'; _ctrlList = _settingsMenu displayCtrl 200; lbclear _ctrlList; diff --git a/addons/optionsmenu/gui/settingsMenu.hpp b/addons/optionsmenu/gui/settingsMenu.hpp index 6b0a5a1b15..378067f5a4 100644 --- a/addons/optionsmenu/gui/settingsMenu.hpp +++ b/addons/optionsmenu/gui/settingsMenu.hpp @@ -107,7 +107,7 @@ class ACE_settingsMenu { x = "2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "5.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; w = "23 * (((safezoneW / safezoneH) min 1.2) / 40)"; - h = "10 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + h = "15 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.7)"; colorBackground[] = {0, 0, 0, 0.9}; colorSelectBackground[] = {0, 0, 0, 0.9};