diff --git a/addons/optionsmenu/$PBOPREFIX$ b/addons/optionsmenu/$PBOPREFIX$ new file mode 100644 index 0000000000..a5c0615815 --- /dev/null +++ b/addons/optionsmenu/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\optionsmenu \ No newline at end of file diff --git a/addons/optionsmenu/CfgEventHandlers.hpp b/addons/optionsmenu/CfgEventHandlers.hpp new file mode 100644 index 0000000000..0f62228437 --- /dev/null +++ b/addons/optionsmenu/CfgEventHandlers.hpp @@ -0,0 +1,11 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; + +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_postInit)); + }; +}; diff --git a/addons/optionsmenu/CfgFunctions.h b/addons/optionsmenu/CfgFunctions.h deleted file mode 100644 index bd875b8a58..0000000000 --- a/addons/optionsmenu/CfgFunctions.h +++ /dev/null @@ -1,31 +0,0 @@ -class CfgFunctions { - class CSE { - class Configuration { - file = "cse\cse_f_configuration\functions"; - class addKeyBindingForMenu_f { recompile = 1; }; - class addKeyBindingForAction_f { recompile = 1; }; - class onKeyPressed_f { recompile = 1; }; - class onKeyReleased_f { recompile = 1; }; - class getKeyBindingFromProfile_f { recompile = 1; }; - class saveKeyBindingToProfile_f { recompile = 1; }; - class updateActionKeyBinding_f { recompile = 1; }; - class updateMenuKeyBinding_f { recompile = 1; }; - class updateAllKeyBindings_f { recompile = 1; }; - class settingsMenuUpdateKeyBinding_f { recompile = 1; }; - class onSettingsMenuOpen { recompile = 1; }; - class settingsMenuUpdateList { recompile = 1; }; - class onListBoxShowSelectionChanged { recompile = 1; }; - class settingsMenuUpdateKeyView { recompile = 1; }; - class settingsDefineDetails_f { recompile = 1; }; - class getSettingDetails_f { recompile = 1; }; - class onListBoxKeyBindingChanged { recompile = 1; }; - class onListBoxSettingsChanged { recompile = 1; }; - class getClientSideOptionFromProfile_f { recompile = 1; }; - class addClientSideOptions_f { recompile = 1; }; - class saveClientSideOptionToProfile_f { recompile = 1; }; - class updateClientSideOption_f { recompile = 1; }; - class parseConfigForConfigurations { recompile = 1; }; - class parseModuleForConfigurations { recompile = 1; }; - }; - }; -}; \ No newline at end of file diff --git a/addons/optionsmenu/CfgHints.h b/addons/optionsmenu/CfgHints.h deleted file mode 100644 index 924e7d3d1e..0000000000 --- a/addons/optionsmenu/CfgHints.h +++ /dev/null @@ -1,51 +0,0 @@ -class CfgHints -{ - class Combat_Space_Enhancement - { - displayName = "Combat Space Enhancement"; - class Cse_configure { - displayName = "Configuration"; - displayNameShort = "Configuration"; - description = "You can configure CSE keybindings and settings through the configuration menu."; - tip = "Keybindings and settings are stored in your profile."; - arguments[] = {}; - image = ""; - noImage = true; - }; - class menuKeyBindings_subHint - { - displayName = "Menu Keybindings"; - displayNameShort = "Menu Keybindings"; - description = "Menu %11 will when their key is pressed open a menu."; - tip = "You can hold down the key for a longer period and when released, the menu will close."; - arguments[] = { - {"Keybindings"} - }; - image = ""; - noImage = true; - }; - class actionKeyBindings_subHint - { - displayName = "Action Keybindings"; - displayNameShort = "Action Keybindings"; - description = "Action %11 are used for specific actions performed by the player character."; - tip = "Use Ctrl, Alt or Shift combinations to increase the amount of actions you can bind."; - arguments[] = { - {"Keybindings"} - }; - image = ""; - noImage = true; - }; - class clientSettings - { - displayName = "Client Settings"; - displayNameShort = "Client Settings"; - description = "Client settings do not affect MP gameplay but allows players to customize their gameplay to their likings."; - tip = "If you are having low frames, try turning off some client settings.."; - arguments[] = {}; - image = ""; - noImage = true; - }; - }; - -}; \ No newline at end of file diff --git a/addons/optionsmenu/Combat_Space_Enhancement.h b/addons/optionsmenu/Combat_Space_Enhancement.h deleted file mode 100644 index 0a763dadf4..0000000000 --- a/addons/optionsmenu/Combat_Space_Enhancement.h +++ /dev/null @@ -1,9 +0,0 @@ -class Combat_Space_Enhancement { - class EventHandlers { - class PostInit_EventHandlers { - class cse_f_configuration_handleKeys { - init = " call compile preprocessFile 'cse\cse_f_configuration\displayEventHandler_keys.sqf';"; // [configFile] call cse_fnc_parseConfigForConfigurations; - }; - }; - }; -}; \ No newline at end of file diff --git a/addons/optionsmenu/GUI.h b/addons/optionsmenu/GUI.h deleted file mode 100644 index 63cf9a14b3..0000000000 --- a/addons/optionsmenu/GUI.h +++ /dev/null @@ -1,3 +0,0 @@ -#include "gui\define.h" -#include "gui\settingsMenu.h" -#include "gui\pauseMenu.h" \ No newline at end of file diff --git a/addons/optionsmenu/XEH_postInit.sqf b/addons/optionsmenu/XEH_postInit.sqf new file mode 100644 index 0000000000..421c54b49f --- /dev/null +++ b/addons/optionsmenu/XEH_postInit.sqf @@ -0,0 +1 @@ +#include "script_component.hpp" diff --git a/addons/optionsmenu/XEH_preInit.sqf b/addons/optionsmenu/XEH_preInit.sqf new file mode 100644 index 0000000000..dc512bd200 --- /dev/null +++ b/addons/optionsmenu/XEH_preInit.sqf @@ -0,0 +1,20 @@ +#include "script_component.hpp" + +ADDON = false; + +PREP(addClientSideOptions); +PREP(loadFromProfile); +PREP(onListBoxSettingsChanged); +PREP(onListBoxShowSelectionChanged); +PREP(onSettingsMenuOpen); +PREP(onSliderPosChanged); +PREP(resetSettings); +PREP(saveToProfile); +PREP(settingsMenuUpdateKeyView); +PREP(settingsMenuUpdateList); +PREP(updateSetting); + +ADDON = true; + +GVAR(clientSideOptions) = []; +GVAR(clientSideColors) = []; diff --git a/addons/optionsmenu/config.cpp b/addons/optionsmenu/config.cpp index f7a525961a..ca9b8dedcc 100644 --- a/addons/optionsmenu/config.cpp +++ b/addons/optionsmenu/config.cpp @@ -1,26 +1,26 @@ -#define _ARMA_ -class CfgPatches -{ - class cse_f_configuration - { - units[] = {}; - weapons[] = {}; - requiredVersion = 0.1; - requiredAddons[] = {"a3_ui_f", "cse_gui"}; - version = "0.10.0_rc"; - author[] = {"Combat Space Enhancement"}; - authorUrl = "http://csemod.com"; - }; -}; -class CfgAddons { - class PreloadAddons { - class cse_f_configuration { - list[] = {"cse_f_configuration"}; - }; - }; +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"ace_common"}; + author[] = {"Combat Space Enhancement"}; + authorUrl = "http://csemod.com"; + VERSION_CONFIG; + }; }; -#include "CfgFunctions.h" -#include "CfgHints.h" -#include "Combat_Space_Enhancement.h" -#include "GUI.h" \ No newline at end of file +class CfgAddons { + class PreloadAddons { + class ADDON { + list[] = {QUOTE(ADDON)}; + }; + }; +}; + +#include "CfgEventHandlers.hpp" +#include "gui\define.hpp" +#include "gui\settingsMenu.hpp" +#include "gui\pauseMenu.hpp" \ No newline at end of file diff --git a/addons/optionsmenu/displayEventHandler_keys.sqf b/addons/optionsmenu/displayEventHandler_keys.sqf deleted file mode 100644 index 87c4411f4e..0000000000 --- a/addons/optionsmenu/displayEventHandler_keys.sqf +++ /dev/null @@ -1,23 +0,0 @@ -if (isnil "CSE_F_KEYBINDINGS_MENUS") then { - CSE_F_KEYBINDINGS_MENUS = []; -}; -if (isnil "CSE_F_KEYBINDINGS_ACTIONS") then { - CSE_F_KEYBINDINGS_ACTIONS = []; -}; -if (isnil "CSE_F_CLIENT_SIDE_SETTINGS") then { - CSE_F_CLIENT_SIDE_SETTINGS = []; -}; - -CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F = false; -CSE_DISPLAY_MENU = false; -CSE_KEY_RELEASED = false; -CSE_DISABLE_KEY_INPUT_F = false; -CSE_KEY_COMBINATION_PRESSED = [0,0,0,0]; -if (hasInterface) then { - [] spawn { - waitUntil {!isNull player && (player == player) && !(isNull (findDisplay 46))}; - sleep 3; - cse_displayEventHandler_config_keyPressed_f = findDisplay 46 displayAddEventHandler ["keyDown", cse_fnc_onKeyPressed_f ]; - cse_displayEventHandler_config_keyReleaded_f = findDisplay 46 displayAddEventHandler ["keyUp", cse_fnc_onKeyReleased_f]; - }; -}; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_addClientSideOptions_f.sqf b/addons/optionsmenu/functions/fn_addClientSideOptions_f.sqf deleted file mode 100644 index 1a4d0a6ce2..0000000000 --- a/addons/optionsmenu/functions/fn_addClientSideOptions_f.sqf +++ /dev/null @@ -1,25 +0,0 @@ -/** - * fn_addClientSideOptions_f.sqf - * @Descr: N/A - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - -private ["_name", "_possibleValues", "_defaultValue"]; -_name = _this select 0; -_possibleValues = _this select 1; -_defaultValue = _this select 2; -_onChange = _this select 3; - -if (isnil "CSE_F_CLIENT_SIDE_SETTINGS") then { - CSE_F_CLIENT_SIDE_SETTINGS = []; -}; - -// missionNamespace setvariable[_name, _defaultValue]; - -CSE_F_CLIENT_SIDE_SETTINGS pushBack [ _name, _possibleValues, _defaultValue, _onChange]; - -[_name, _defaultValue] call _onChange; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_addKeyBindingForAction_f.sqf b/addons/optionsmenu/functions/fn_addKeyBindingForAction_f.sqf deleted file mode 100644 index 2ca8011ed6..0000000000 --- a/addons/optionsmenu/functions/fn_addKeyBindingForAction_f.sqf +++ /dev/null @@ -1,25 +0,0 @@ -/** - * fn_addKeyBindingForAction_f.sqf - * @Descr: Add a new action keybinding - * @Author: Glowbal - * - * @Arguments: [name STRING, keybinding ARRAY, action CODE] - * @Return: void - * @PublicAPI: true - */ - -private ["_name","_keyBinding","_action","_idd","_keyCodePressed","_shiftPressed","_altPressed","_ctrlPressed"]; -_name = _this select 0; -_keyBinding = _this select 1; -_action = _this select 2; - -_keyCodePressed = _keyBinding select 0; -_shiftPressed = _keyBinding select 1; -_ctrlPressed = _keyBinding select 2; -_altPressed = _keyBinding select 3; - -if (isnil "CSE_F_KEYBINDINGS_ACTIONS") then { - CSE_F_KEYBINDINGS_ACTIONS = []; -}; -CSE_F_KEYBINDINGS_ACTIONS pushBack [ _name, _keyBinding, _action ]; -[_name, "action"] call cse_fnc_saveKeyBindingToProfile_f; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_addKeyBindingForMenu_f.sqf b/addons/optionsmenu/functions/fn_addKeyBindingForMenu_f.sqf deleted file mode 100644 index 9cc0a7f20b..0000000000 --- a/addons/optionsmenu/functions/fn_addKeyBindingForMenu_f.sqf +++ /dev/null @@ -1,26 +0,0 @@ -/** - * fn_addKeyBindingForMenu_f.sqf - * @Descr: Add a new menu keybinding - * @Author: Glowbal - * - * @Arguments: [name STRING, keybinding ARRAY, action CODE] - * @Return: void - * @PublicAPI: true - */ - -private ["_name","_keyBinding","_action","_idd","_keyCodePressed","_shiftPressed","_altPressed","_ctrlPressed"]; -_name = _this select 0; -_keyBinding = _this select 1; -_action = _this select 2; -_idd = _this select 3; - -_keyCodePressed = _keyBinding select 0; -_shiftPressed = _keyBinding select 1; -_ctrlPressed = _keyBinding select 2; -_altPressed = _keyBinding select 3; - -if (isnil "CSE_F_KEYBINDINGS_MENUS") then { - CSE_F_KEYBINDINGS_MENUS = []; -}; -CSE_F_KEYBINDINGS_MENUS pushBack [_name, _keyBinding, _action, _idd, [false, false] ]; -[_name, "menu"] call cse_fnc_saveKeyBindingToProfile_f; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_getClientSideOptionFromProfile_f.sqf b/addons/optionsmenu/functions/fn_getClientSideOptionFromProfile_f.sqf deleted file mode 100644 index 8584d1e0cf..0000000000 --- a/addons/optionsmenu/functions/fn_getClientSideOptionFromProfile_f.sqf +++ /dev/null @@ -1,17 +0,0 @@ -/** - * fn_getClientSideOptionFromProfile_f.sqf - * @Descr: N/A - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - -private ["_name","_default","_settingValue"]; -_name = _this select 0; -_default = _this select 1; - -_settingValue = profileNamespace getvariable ["cse_f_clientSideSetting_"+_name, _default]; - -_settingValue \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_getKeyBindingFromProfile_f.sqf b/addons/optionsmenu/functions/fn_getKeyBindingFromProfile_f.sqf deleted file mode 100644 index 78a1659906..0000000000 --- a/addons/optionsmenu/functions/fn_getKeyBindingFromProfile_f.sqf +++ /dev/null @@ -1,18 +0,0 @@ -/** - * fn_getKeyBindingFromProfile_f.sqf - * @Descr: Grab a keybinding settings saved in the profile. - * @Author: Glowbal - * - * @Arguments: [name STRING, type STRING (Can be: Action or Menu), defaultValue ARRAY (Format: [keyCode, shift, ctrl], alt)] - * @Return: ARRAY Format: [keyCode, shift, ctrl, alt] - * @PublicAPI: true - */ - -private ["_name","_default","_keyBinding"]; -_name = _this select 0; -_type = _this select 1; -_default = _this select 2; - -_keyBinding = profileNamespace getvariable ["cse_f_keybinding_"+_type+"_"+_name, _default]; - -_keyBinding \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_getSettingDetails_f.sqf b/addons/optionsmenu/functions/fn_getSettingDetails_f.sqf deleted file mode 100644 index fedcbfd211..0000000000 --- a/addons/optionsmenu/functions/fn_getSettingDetails_f.sqf +++ /dev/null @@ -1,44 +0,0 @@ -/** - * fn_getSettingDetails_f.sqf - * @Descr: Returns the details of current setting - * @Author: Glowbal - * - * @Arguments: [name STRING, type STRING] - * @Return: ARRAY Array with the current settings - * @PublicAPI: false - */ - -private ["_name","_type", "_title","_desc", "_return"]; -_name = _this select 0; -_type = _this select 1; - -_return = [_name,""]; -if (isnil "CSE_SETTINGS_MENUS_DETAILS_F") then { - CSE_SETTINGS_MENUS_DETAILS_F = []; - CSE_SETTINGS_ACTIONS_DETAILS_F = []; - CSE_SETTINGS_CLIENTSIDE_DETAILS_F = []; -}; - -if (_type == "menu") then { - { - if (_name == (_x select 0)) exitwith { - _return = [_x select 1, _x select 2]; - }; - }foreach CSE_SETTINGS_MENUS_DETAILS_F; -} else { - if (_type == "action") then { - { - if (_name == (_x select 0)) exitwith { - _return = [_x select 1, _x select 2]; - }; - }foreach CSE_SETTINGS_ACTIONS_DETAILS_F; - } else { - { - if (_name == (_x select 0)) exitwith { - _return = [_x select 1, _x select 2, _x select 3]; - }; - }foreach CSE_SETTINGS_CLIENTSIDE_DETAILS_F; - }; -}; - -_return \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_onKeyPressed_f.sqf b/addons/optionsmenu/functions/fn_onKeyPressed_f.sqf deleted file mode 100644 index 5a77824fc7..0000000000 --- a/addons/optionsmenu/functions/fn_onKeyPressed_f.sqf +++ /dev/null @@ -1,105 +0,0 @@ -/** - * fn_onKeyPressed_f.sqf - * @Descr: Executed on a key pressed. Handles all CSE keybindings - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - - -// Returns the control, the keyboard code and the state of Shift, Ctrl and Alt. -private ["_control","_var","_keyBinding","_keyCodePressed","_shiftPressed","_ctrlPressed","_altPressed","_name","_onPressed","_idd", "_state","_STARTINGTIME","_handle", "_returnOnPressed"]; -_control = _this select 0; -_keyCodePressed = _this select 1; -_shiftPressed = _this select 2; -_ctrlPressed = _this select 3; -_altPressed = _this select 4; - -if (missionNamespace getVariable ['CSE_SETTINGS_MENU_OPEN', false]) exitwith { - false; -}; -_returnOnPressed = false; -if ((findDisplay 46) == _control && _keyCodePressed != 0) then { - if ([player] call cse_fnc_canInteract) then { - { - _name = _x select 0; - _keyBinding = _x select 1; - _onPressed = _x select 2; - _idd = _x select 3; - _state = _x select 4; - - _shiftBinding = _keyBinding select 1; - _ctrlBinding = _keyBinding select 2; - _altBinding = _keyBinding select 3; - - if ((_keyBinding select 0) == _keyCodePressed) then { - - if ((_shiftBinding == 0) && _shiftPressed) exitwith {}; - if ((_shiftBinding == 1) && !_shiftPressed) exitwith {}; - - if ((_ctrlBinding == 0) && _ctrlPressed) exitwith {}; - if ((_ctrlBinding == 1) && !_ctrlPressed) exitwith {}; - - if ((_altBinding == 0) && _altPressed) exitwith {}; - if ((_altBinding == 1) && !_altPressed) exitwith {}; - - if (CSE_DISPLAY_MENU && !CSE_KEY_RELEASED) exitwith {}; - if (CSE_DISPLAY_MENU && CSE_KEY_RELEASED) exitwith { closeDialog _idd;}; - - if (dialog) exitwith { closeDialog 0; }; - _state set [ 0, true]; // activated/open , not released - _state set [ 1, false]; - CSE_KEY_COMBINATION_PRESSED = _keyBinding; - CSE_DISPLAY_MENU = true; - CSE_KEY_RELEASED = false; - - _handle = [_forEachIndex, time] spawn { - _menu = CSE_F_KEYBINDINGS_MENUS select (_this select 0); - _state = _menu select 4; - waituntil{CSE_KEY_RELEASED || (time - ((_this select 1) ) > (0.25 * accTime))}; - if (!CSE_KEY_RELEASED) then { - waituntil {CSE_KEY_RELEASED}; - closeDialog (_menu select 3); - } else { - CSE_KEY_RELEASED = true; - }; - waituntil {!dialog}; - _state set [ 0, false]; - CSE_DISPLAY_MENU = false; - }; - _returnOnPressed = _this call _onPressed; - }; - }foreach CSE_F_KEYBINDINGS_MENUS; - - if (isNil "_returnOnPressed") then { - { - _name = _x select 0; - _keyBinding = _x select 1; - _onPressed = _x select 2; - - _shiftBinding = _keyBinding select 1; - _ctrlBinding = _keyBinding select 2; - _altBinding = _keyBinding select 3; - - if ((_keyBinding select 0) == _keyCodePressed) then { - if ((_shiftBinding == 0) && _shiftPressed) exitwith {}; - if ((_shiftBinding == 1) && !_shiftPressed) exitwith {}; - - if ((_ctrlBinding == 0) && _ctrlPressed) exitwith {}; - if ((_ctrlBinding == 1) && !_ctrlPressed) exitwith {}; - - if ((_altBinding == 0) && _altPressed) exitwith {}; - if ((_altBinding == 1) && !_altPressed) exitwith {}; - - CSE_KEY_COMBINATION_PRESSED = _keyBinding; - _returnOnPressed = _this call _onPressed; - }; - }foreach CSE_F_KEYBINDINGS_ACTIONS; - }; - }; -}; -if (isnil "_returnOnPressed") exitwith {false}; -//_returnOnPressed -false; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_onKeyReleased_f.sqf b/addons/optionsmenu/functions/fn_onKeyReleased_f.sqf deleted file mode 100644 index 21010e4beb..0000000000 --- a/addons/optionsmenu/functions/fn_onKeyReleased_f.sqf +++ /dev/null @@ -1,33 +0,0 @@ -/** - * fn_onKeyReleased_f.sqf - * @Descr: Handles all keyreleased from CSE - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - - -// _this = the control, the keyboard code and the state of Shift, Ctrl and Alt. - - -if (CSE_DISABLE_KEY_INPUT_F) exitwith { - (( _this select 1) > 0); -}; - -if ((findDisplay 46) == (_this select 0)) then { - _keyCodePressed = _this select 1; - { - _keyBinding = _x select 1; - _state = _x select 4; - if ((_keyBinding select 0) == _keyCodePressed) then { - if (!(_state select 0) ) exitwith {}; - _state set [ 0, false]; - CSE_KEY_RELEASED = true; - }; - }foreach CSE_F_KEYBINDINGS_MENUS; -} else { - false; -}; -false; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_onListBoxKeyBindingChanged.sqf b/addons/optionsmenu/functions/fn_onListBoxKeyBindingChanged.sqf deleted file mode 100644 index a0bd859d1e..0000000000 --- a/addons/optionsmenu/functions/fn_onListBoxKeyBindingChanged.sqf +++ /dev/null @@ -1,54 +0,0 @@ -/** - * fn_onListBoxKeyBindingChanged.sqf - * @Descr: called when the listbox keybinding has changed. Updates the configuration menu with new information. - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - -private ["_settingsMenu","_ctrlSelected","_ctrlPressed","_ctrlTextLabel","_keyCodePressed","_shiftSelected","_shiftPressed","_altSelected","_altPressed","_possibleOptions",'_keyBinding',"_fnc","_collection"]; -_settingsMenu = uiNamespace getVariable 'cse_settingsMenu'; - -_shiftSelected = lbCurSel 400; -_ctrlSelected = lbCurSel 401; -_altSelected = lbCurSel 402; - -_possibleOptions = [0,1,2]; - -if (_shiftSelected < 0) then { - _shiftSelected = 0; -}; -if (_ctrlSelected < 0) then { - _ctrlSelected = 0; -}; -if (_altSelected < 0) then { - _altSelected = 0; -}; - -_func = switch (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F) do { - case "menu": {cse_fnc_updateMenuKeyBinding_F}; - case "action": {cse_fnc_updateActionKeyBinding_F}; - default {{}}; -}; -_collection = switch (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F) do { - case "menu": {CSE_F_KEYBINDINGS_MENUS}; - case "action": {CSE_F_KEYBINDINGS_ACTIONS}; - default {[]}; -}; -if (count _collection > 0) then { - _selectedSetting = (lbCurSel (_settingsMenu displayCtrl 200)); - if (_selectedSetting > (count _collection)) then { - _selectedSetting = count _collection - 1; - }; - if (_selectedSetting < 0) then { - _selectedSetting = 0; - }; - _nameOfSetting = (_collection select _selectedSetting) select 0; - _keyBinding = [_nameOfSetting,CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F,[0,0,0,0]] call cse_fnc_getKeyBindingFromProfile_F; - _keyBinding = [_keyBinding select 0, _possibleOptions select _shiftSelected, _possibleOptions select _ctrlSelected, _possibleOptions select _altSelected]; - [_nameOfSetting,_keyBinding] call _func; - - [false] call cse_fnc_settingsMenuUpdateList; -}; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_onListBoxSettingsChanged.sqf b/addons/optionsmenu/functions/fn_onListBoxSettingsChanged.sqf deleted file mode 100644 index dc95a8fb89..0000000000 --- a/addons/optionsmenu/functions/fn_onListBoxSettingsChanged.sqf +++ /dev/null @@ -1,40 +0,0 @@ -/** - * fn_onListBoxSettingsChanged.sqf - * @Descr: N/A - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - -private ["_settingsMenu", "_ctrlTextLabel", "_optionSelected", "_func", "_collection", "_selectedSetting", "_nameOfSetting"]; -_settingsMenu = uiNamespace getVariable 'cse_settingsMenu'; - -_optionSelected = lbCurSel 400; - -if (_optionSelected < 0) then { - _optionSelected = 0; -}; - -_func = switch (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F) do { - case "option": {cse_fnc_updateClientSideOption_F}; - default {{}}; -}; -_collection = switch (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F) do { - case "option": {CSE_F_CLIENT_SIDE_SETTINGS}; - default {[]}; -}; -if !(_collection isEqualTo []) then { - _selectedSetting = (lbCurSel (_settingsMenu displayCtrl 200)); - if (_selectedSetting > (count _collection)) then { - _selectedSetting = count _collection - 1; - }; - if (_selectedSetting < 0) then { - _selectedSetting = 0; - }; - _nameOfSetting = (_collection select _selectedSetting) select 0; - [_nameOfSetting, _optionSelected] call _func; - [_nameOfSetting, _optionSelected] call ((_collection select _selectedSetting) select 3); - [false] call cse_fnc_settingsMenuUpdateList; -}; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_onListBoxShowSelectionChanged.sqf b/addons/optionsmenu/functions/fn_onListBoxShowSelectionChanged.sqf deleted file mode 100644 index 60ce5c91e1..0000000000 --- a/addons/optionsmenu/functions/fn_onListBoxShowSelectionChanged.sqf +++ /dev/null @@ -1,55 +0,0 @@ -/** - * fn_onListBoxShowSelectionChanged.sqf - * @Descr: called when the listbox selection has changed. Updates configuration menu information - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - - private ["_first", "_settingsMenu", "_ctrlLb", "_ctrlLbShow"]; -_first = (_this select 0); - -disableSerialization; -_settingsMenu = uiNamespace getVariable 'cse_settingsMenu'; -_ctrlLbShow = _settingsMenu displayCtrl 100; -if (isnil "_first") then { - _ctrlLbShow lbSetCurSel (_this select 1); -}; - -if ((_this select 1) > -1) then { - private ["_options"]; - _options = ["menu","action", "option", "color"]; - CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F = _options select (_this select 1); - [true] call cse_fnc_settingsMenuUpdateList; - _textOptions = ["Menu Keybindings", "Action Keybindings", "Client Settings"]; - ctrlSetText [13, ("Current selected settings list: " + (_textOptions select (_this select 1)))]; - if (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F == "color") exitwith {}; - - if ((_this select 1) > 1) then { - (_settingsMenu displayCtrl 400) ctrlShow true; - lbClear 400; - (_settingsMenu displayCtrl 401) ctrlShow false; - (_settingsMenu displayCtrl 402) ctrlShow false; - - (_settingsMenu displayCtrl 301) ctrlSetText "Value:"; - (_settingsMenu displayCtrl 302) ctrlSetText ""; - (_settingsMenu displayCtrl 303) ctrlSetText ""; - - } else { - (_settingsMenu displayCtrl 400) ctrlShow true; - LbClear 400; - _ctrlLb = _settingsMenu displayCtrl 400; - _ctrlLb lbadd "No"; - _ctrlLb lbadd "Yes"; - _ctrlLb lbadd "Ignore"; - - (_settingsMenu displayCtrl 401) ctrlShow true; - (_settingsMenu displayCtrl 402) ctrlShow true; - - (_settingsMenu displayCtrl 301) ctrlSetText "Shift:"; - (_settingsMenu displayCtrl 302) ctrlSetText "Ctrl:"; - (_settingsMenu displayCtrl 303) ctrlSetText "Alt:"; - }; -}; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_onSettingsMenuOpen.sqf b/addons/optionsmenu/functions/fn_onSettingsMenuOpen.sqf deleted file mode 100644 index 8dc2352e25..0000000000 --- a/addons/optionsmenu/functions/fn_onSettingsMenuOpen.sqf +++ /dev/null @@ -1,104 +0,0 @@ -/** - * fn_onSettingsMenuOpen.sqf - * @Descr: called when the settings or configuration menu has opened. Do not use anywhere else. - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - - - -_settingsMenu = uiNamespace getVariable 'cse_settingsMenu'; -_ctrlLbShow = _settingsMenu displayCtrl 100; -_ctrlLbShow lbadd "Menu Keybindings"; -_ctrlLbShow lbadd "Action Keybindings"; -_ctrlLbShow lbadd "Client Settings"; -_ctrlLbShow lbadd "Colors"; -_ctrlLbShow lbSetCurSel 0; - - -(_settingsMenu displayCtrl 1003) ctrlEnable false; -//lbadd[100,"Other settings"]; -CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F = false; -_settingsMenu displayAddEventHandler ["KeyDown", { - _keyCodePressed = _this select 1; - _shiftPressed = _this select 2; - _ctrlPressed = _this select 3; - _altPressed = _this select 4; - _var = uiNamespace getVariable 'cse_settingsMenu'; - if (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F != "option") then { - if !(isnil "_var") then { - if (CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F) then { - if (_keyCodePressed > 1) then { - [_keyCodePressed,_shiftPressed, _ctrlPressed, _altPressed] call cse_fnc_settingsMenuUpdateKeyBinding_F; - true; - } else { - false; - }; - } else { - false; - }; - } else { - false; - }; - } else { - false; - }; - }]; - -_settingsMenu displayAddEventHandler ["KeyUp", { - _keyCodePressed = _this select 1; - _shiftPressed = _this select 2; - _ctrlPressed = _this select 3; - _altPressed = _this select 4; - _var = uiNamespace getVariable 'cse_settingsMenu'; - if (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F != "option") then { - if !(isnil "_var") then { - if (CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F) then { - if (_keyCodePressed > 1) then { - CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F = false; - true; - } else { - false; - }; - } else { - false; - }; - } else { - false; - }; - } else { - false; - }; - }]; - -(_settingsMenu displayCtrl 200) ctrlSetEventHandler ["LBSelChanged", "_this call cse_fnc_settingsMenuUpdateKeyView;"]; - -_textOptions = ["Menu Keybindings", "Action Keybindings"]; -(_settingsMenu displayCtrl 13) ctrlSetText ("Current selected settings list: " + (_textOptions select 0)); - -_ctrlLb = _settingsMenu displayCtrl 400; -_ctrlLb lbadd "No"; -_ctrlLb lbadd "Yes"; -_ctrlLb lbadd "Ignore"; -_ctrlLb ctrlSetEventHandler ["LBSelChanged", "if (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F != 'option') then { _this call cse_fnc_onListBoxKeyBindingChanged; } else { _this call cse_fnc_onListBoxSettingsChanged; };"]; - -_ctrlLb = _settingsMenu displayCtrl 401; -_ctrlLb lbadd "No"; -_ctrlLb lbadd "Yes"; -_ctrlLb lbadd "Ignore"; -_ctrlLb ctrlSetEventHandler ["LBSelChanged", " _this call cse_fnc_onListBoxKeyBindingChanged;"]; - -_ctrlLb = _settingsMenu displayCtrl 402; -_ctrlLb lbadd "No"; -_ctrlLb lbadd "Yes"; -_ctrlLb lbadd "Ignore"; -_ctrlLb ctrlSetEventHandler ["LBSelChanged", " _this call cse_fnc_onListBoxKeyBindingChanged;"]; - -CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F = false; -CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F = "menu"; -[true] call cse_fnc_settingsMenuUpdateList; - -(_settingsMenu displayCtrl 200) lbSetCurSel 0; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_parseConfigForConfigurations.sqf b/addons/optionsmenu/functions/fn_parseConfigForConfigurations.sqf deleted file mode 100644 index 2ea37d1935..0000000000 --- a/addons/optionsmenu/functions/fn_parseConfigForConfigurations.sqf +++ /dev/null @@ -1,22 +0,0 @@ -/** - * fn_parseConfigForConfigurations.sqf - * @Descr: Collect all configurations defined in CfgModules - * @Author: Glowbal - * - * @Arguments: [config CONFIG] - * @Return: nil - * @PublicAPI: false - */ - -#define MENU_KEYBINDING 1 -#define ACTION_KEYBINDING 2 -#define CLIENT_SETTING 3 - -private ["_config","_cfgRoot","_amountOfClasses","_i","_moduleName","_configurationClass","_nOfConfgClasses","_j","_configuration","_configurationName","_title","_desc","_defaultValue","_code","_idd","_availableSettings","_valuesCfg","_nOfValues","_k"]; -_config = _this select 0; - -_cfgRoot = (_config >> "Combat_Space_Enhancement" >> "CfgModules"); -_amountOfClasses = count _cfgRoot; -for [{_i=0}, {_i < _amountOfClasses}, {_i=_i+1}] do { - [ConfigName (_cfgRoot select _i)] call cse_fnc_parseModuleForConfigurations; -}; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_parseModuleForConfigurations.sqf b/addons/optionsmenu/functions/fn_parseModuleForConfigurations.sqf deleted file mode 100644 index 5271e73173..0000000000 --- a/addons/optionsmenu/functions/fn_parseModuleForConfigurations.sqf +++ /dev/null @@ -1,63 +0,0 @@ -/** - * fn_parseModuleForConfigurations.sqf - * @Descr: Collects all configurations defined in the CfgModules entry - * @Author: Glowbal - * - * @Arguments: [cfgModulesName STRING (Name of the module defined in CfgModules)] - * @Return: nil - * @PublicAPI: false - */ - -#define MENU_KEYBINDING 1 -#define ACTION_KEYBINDING 2 -#define CLIENT_SETTING 3 - -private ["_config","_cfgRoot","_amountOfClasses","_i","_moduleName","_configurationClass","_nOfConfgClasses","_j","_configuration","_configurationName","_title","_desc","_defaultValue","_code","_idd","_availableSettings","_valuesCfg","_nOfValues","_k"]; -_moduleName = _this select 0; -_cfgRoot = (configFile >> "Combat_Space_Enhancement" >> "CfgModules" >> _moduleName); - -if (isClass (_cfgRoot >> "Configurations")) then { - _configurationClass = (_cfgRoot >> "Configurations"); - _nOfConfgClasses = count _configurationClass; - for [{_j=0}, {_j < _nOfConfgClasses}, {_j=_j+1}] do { - _configuration = _configurationClass select _j; - _configurationName = ConfigName _configuration; - - _title = [_configuration, "title", ""] call BIS_fnc_returnConfigEntry; - _desc = [_configuration, "description", ""] call BIS_fnc_returnConfigEntry; - - switch (getNumber(_configuration >> "type")) do { - case MENU_KEYBINDING: { - _defaultValue = [_configuration, "value", [0,0,0,0]] call BIS_fnc_returnConfigEntry; - _code = compile (format["disableSerialization; if (['%1'] call cse_fnc_isModuleEnabled_F) then {", _moduleName] + ([_configuration, "onPressed", ""] call BIS_fnc_returnConfigEntry) + "};"); - _idd = [_configuration, "idd", 0] call BIS_fnc_returnConfigEntry; - [format["name: %1, default %2, code %3, idd %4, title %5, desc %6",_configurationName, _defaultValue, _code, _idd, _title, _desc]] call cse_fnc_debug; - [_configurationName, ([_configurationName,"menu",_defaultValue] call cse_fnc_getKeyBindingFromProfile_F), _code, _idd] call cse_fnc_addKeyBindingForMenu_F; - [_configurationName,"menu", _title, _desc] call cse_fnc_settingsDefineDetails_F; - }; - case ACTION_KEYBINDING: { - _defaultValue = [_configuration, "value", [0,0,0,0]] call BIS_fnc_returnConfigEntry; - _code = compile (format["disableSerialization; if (['%1'] call cse_fnc_isModuleEnabled_F) then {", _moduleName] + ([_configuration, "onPressed", ""] call BIS_fnc_returnConfigEntry) + "};"); - [format["name: %1, default %2, code %3, title %4, desc %5",_configurationName, _defaultValue, _code, _title, _desc]] call cse_fnc_debug; - [_configurationName, ([_configurationName,"action",_defaultValue] call cse_fnc_getKeyBindingFromProfile_F), _code] call cse_fnc_addKeyBindingForAction_F; - [_configurationName,"action", _title, _desc] call cse_fnc_settingsDefineDetails_F; - - }; - case CLIENT_SETTING: { - _defaultValue = [_configuration, "value", 0] call BIS_fnc_returnConfigEntry; - _code = compile (format["disableSerialization; if (['%1'] call cse_fnc_isModuleEnabled_F) then {", _moduleName] + ([_configuration, "onChanged", ""] call BIS_fnc_returnConfigEntry) + "};"); - _availableSettings = []; - _valuesCfg = (_configuration >> "Values"); - if (isClass _valuesCfg) then { - _nOfValues = count _valuesCfg; - for [{_k=0}, {_k < _amountOfClasses}, {_k=_k+1}] do { - if (isClass (_valuesCfg select _k)) then { - _availableSettings pushback (configName (_valuesCfg select _k)); - }; - }; - }; - }; - default {}; // invalid, do nothing - }; - }; -}; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_saveClientSideOptionToProfile_f.sqf b/addons/optionsmenu/functions/fn_saveClientSideOptionToProfile_f.sqf deleted file mode 100644 index 04fb6ebde3..0000000000 --- a/addons/optionsmenu/functions/fn_saveClientSideOptionToProfile_f.sqf +++ /dev/null @@ -1,25 +0,0 @@ -/** - * fn_saveClientSideOptionToProfile_f.sqf - * @Descr: Save the clientside option to the profile. - * @Author: Glowbal - * - * @Arguments: [name STRING (Name of setting)] - * @Return: BOOL True if saved. - * @PublicAPI: false - */ - -private ["_name","_nameSelected", "_saved"]; -_name = _this select 0; -if (isnil "CSE_F_CLIENT_SIDE_SETTINGS") then { - CSE_F_CLIENT_SIDE_SETTINGS = []; -}; -_saved = false; -{ - _nameSelected = _x select 0; - if (_nameSelected == _name) exitwith { - profileNamespace setvariable ["cse_f_clientSideSetting_"+_name, _x select 2]; - _saved = true; - }; -}foreach CSE_F_CLIENT_SIDE_SETTINGS; - -_saved \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_saveKeyBindingToProfile_f.sqf b/addons/optionsmenu/functions/fn_saveKeyBindingToProfile_f.sqf deleted file mode 100644 index fbc7f2a593..0000000000 --- a/addons/optionsmenu/functions/fn_saveKeyBindingToProfile_f.sqf +++ /dev/null @@ -1,41 +0,0 @@ -/** - * fn_saveKeyBindingToProfile_f.sqf - * @Descr: Saves a keybinding to the profile - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - -private ["_name","_nameSelected", "_saved", "_type"]; -_name = _this select 0; -_type = _this select 1; -if (isnil "CSE_F_KEYBINDINGS_MENUS") then { - CSE_F_KEYBINDINGS_MENUS = []; -}; -if (isnil "CSE_F_KEYBINDINGS_ACTIONS") then { - CSE_F_KEYBINDINGS_ACTIONS = []; -}; -_saved = false; -if (_type == "menu") then { - { - _nameSelected = _x select 0; - if (_nameSelected == _name) exitwith { - profileNamespace setvariable ["cse_f_keybinding_menu_"+_name, _x select 1]; - _saved = true; - }; - }foreach CSE_F_KEYBINDINGS_MENUS; -} else { - if (_type == "action") then { - { - _nameSelected = _x select 0; - if (_nameSelected == _name) exitwith { - profileNamespace setvariable ["cse_f_keybinding_action_"+_name, _x select 1]; - _saved = true; - }; - }foreach CSE_F_KEYBINDINGS_ACTIONS; - }; -}; - -_saved \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_settingsDefineDetails_f.sqf b/addons/optionsmenu/functions/fn_settingsDefineDetails_f.sqf deleted file mode 100644 index de6762d30c..0000000000 --- a/addons/optionsmenu/functions/fn_settingsDefineDetails_f.sqf +++ /dev/null @@ -1,33 +0,0 @@ -/** - * fn_settingsDefineDetails_f.sqf - * @Descr: - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - -private ["_name","_type", "_title","_descr"]; -_name = _this select 0; -_type = _this select 1; -_title = _this select 2; -_descr = _this select 3; - -if (isnil "CSE_SETTINGS_MENUS_DETAILS_F") then { - CSE_SETTINGS_MENUS_DETAILS_F = []; - CSE_SETTINGS_ACTIONS_DETAILS_F = []; - CSE_SETTINGS_CLIENTSIDE_DETAILS_F = []; -}; - -if (_type == "menu") then { - CSE_SETTINGS_MENUS_DETAILS_F pushback [_name, _title, _descr]; -} else { - if (_type == "action") then { - CSE_SETTINGS_ACTIONS_DETAILS_F pushback [_name, _title, _descr]; - } else { - if (_type == "option") then { - CSE_SETTINGS_CLIENTSIDE_DETAILS_F pushback [_name, _title, _descr]; - }; - }; -}; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_settingsMenuUpdateKeyBinding_f.sqf b/addons/optionsmenu/functions/fn_settingsMenuUpdateKeyBinding_f.sqf deleted file mode 100644 index 2df8a134a8..0000000000 --- a/addons/optionsmenu/functions/fn_settingsMenuUpdateKeyBinding_f.sqf +++ /dev/null @@ -1,65 +0,0 @@ -/** - * fn_settingsMenuUpdateKeyBinding_f.sqf - * @Descr: - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - -private ["_settingsMenu","_ctrlSelected","_ctrlPressed","_ctrlTextLabel","_keyCodePressed","_shiftSelected","_shiftPressed","_altSelected","_altPressed","_possibleOptions",'_keyBinding',"_fnc","_collection"]; -_settingsMenu = uiNamespace getVariable 'cse_settingsMenu'; - _ctrlTextLabel = (_settingsMenu displayCtrl 300); - -_keyCodePressed = _this select 0; -_shiftPressed = _this select 1; -_ctrlPressed = _this select 2; -_altPressed = _this select 3; - - ctrlSetText [252, '']; -//(_settingsMenu displayCtrl 300) ctrlSetText ("Key: " + (keyName _keyCodePressed)); - -_shiftSelected = lbCurSel 400; -_ctrlSelected = lbCurSel 401; -_altSelected = lbCurSel 402; - -_possibleOptions = [0,1,2]; - -if (_shiftSelected < 0) then { - _shiftSelected = 0; -}; -if (_ctrlSelected < 0) then { - _ctrlSelected = 0; -}; -if (_altSelected < 0) then { - _altSelected = 0; -}; - -_keyBinding = [_keyCodePressed, _possibleOptions select _shiftSelected, _possibleOptions select _ctrlSelected, _possibleOptions select _altSelected]; -//CSE_CURRENT_KEYBINDING_SETTING_NAME_F = ["cse_sys_weaponRestAction","action"]; - -_func = switch (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F) do { - case "menu": {cse_fnc_updateMenuKeyBinding_F}; - case "action": {cse_fnc_updateActionKeyBinding_F}; - case "option": {{}}; - default {{}}; -}; -_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 200); - if (_selectedSetting > (count _collection)) then { - _selectedSetting = count _collection - 1; - }; - if (_selectedSetting < 0) then { - _selectedSetting = 0; - }; - _nameOfSetting = (_collection select _selectedSetting) select 0; - [_nameOfSetting,_keyBinding] call _func; - [true] call cse_fnc_settingsMenuUpdateList; -}; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_settingsMenuUpdateKeyView.sqf b/addons/optionsmenu/functions/fn_settingsMenuUpdateKeyView.sqf deleted file mode 100644 index a355f8f92e..0000000000 --- a/addons/optionsmenu/functions/fn_settingsMenuUpdateKeyView.sqf +++ /dev/null @@ -1,74 +0,0 @@ -/** - * 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; - }; -}; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_settingsMenuUpdateList.sqf b/addons/optionsmenu/functions/fn_settingsMenuUpdateList.sqf deleted file mode 100644 index b6d950e240..0000000000 --- a/addons/optionsmenu/functions/fn_settingsMenuUpdateList.sqf +++ /dev/null @@ -1,56 +0,0 @@ -/** - * fn_settingsMenuUpdateList.sqf - * @Descr: N/A - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - -private ["_settingsMenu","_ctrlList","_collection","_keyBindingText","_keybinding", "_updateKeyView"]; -disableSerialization; - -_updateKeyView = [_this, 0, true, [true]] call BIS_fnc_Param; - -_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 {[]}; -}; - -lbclear _ctrlList; -if (CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F != "option") then { - { - _keybinding = (_x select 1); - _keyBindingText = keyName (_keybinding select 0); - if (_keyBindingText == '""') then { - _keyBindingText = ""; - } else { - if ((_keybinding select 1) == 1) then { - _keyBindingText = _keyBindingText + " + shift"; - }; - if ((_keybinding select 2) == 1) then { - _keyBindingText = _keyBindingText + " + ctrl"; - }; - if ((_keybinding select 3) == 1) then { - _keyBindingText = _keyBindingText + " + alt"; - }; - }; - _ctrlList lbadd (([_x select 0, CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F] call cse_fnc_getSettingDetails_F) select 0); - _ctrlList lbadd (_keyBindingText); - }foreach _collection; -} else { - { - _settingsText = ((_x select 1) select (_x select 2)); - _ctrlList lbadd (([_x select 0, CSE_SETTINGS_MENU_CURRENT_SETTING_LIST_F] call cse_fnc_getSettingDetails_F) select 0); - _ctrlList lbadd (_settingsText); - }foreach _collection; - -}; -if (_updateKeyView) then { - [] call cse_fnc_settingsMenuUpdateKeyView; -}; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_updateActionKeybinding_f.sqf b/addons/optionsmenu/functions/fn_updateActionKeybinding_f.sqf deleted file mode 100644 index f73ebd71be..0000000000 --- a/addons/optionsmenu/functions/fn_updateActionKeybinding_f.sqf +++ /dev/null @@ -1,24 +0,0 @@ -/** - * fn_updateActionKeybinding_f.sqf - * @Descr: N/A - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - -private ["_name","_keyBinding","_action","_idd","_keyCodePressed","_shiftPressed","_altPressed","_ctrlPressed"]; -_name = _this select 0; -_keyBinding = _this select 1; - -if (isnil "CSE_F_KEYBINDINGS_ACTIONS") then { - CSE_F_KEYBINDINGS_ACTIONS = []; -}; -{ - if ((_x select 0) == _name) exitwith { - _x set [ 1, _keyBinding]; - }; -}foreach CSE_F_KEYBINDINGS_ACTIONS; - -[_name,"action"] call cse_fnc_saveKeyBindingToProfile_F; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_updateAllKeyBindings_f.sqf b/addons/optionsmenu/functions/fn_updateAllKeyBindings_f.sqf deleted file mode 100644 index 9a5efedf6f..0000000000 --- a/addons/optionsmenu/functions/fn_updateAllKeyBindings_f.sqf +++ /dev/null @@ -1,23 +0,0 @@ -/** - * fn_updateAllKeyBindings_f.sqf - * @Descr: N/A - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - - -private ["_name","_currentKeyBinding"]; -{ - _name = _x select 0; - _currentKeyBinding = _x select 1; - _x set [1,([_name, _currentKeyBinding, "menu"] call cse_fnc_getKeyBindingFromProfile_F)]; -}foreach CSE_F_KEYBINDINGS_MENUS; - -{ - _name = _x select 0; - _currentKeyBinding = _x select 1; - _x set [1,([_name, _currentKeyBinding, "action"] call cse_fnc_getKeyBindingFromProfile_F)]; -}foreach CSE_F_KEYBINDINGS_ACTIONS; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_updateClientSideOption_f.sqf b/addons/optionsmenu/functions/fn_updateClientSideOption_f.sqf deleted file mode 100644 index 84a3e771cf..0000000000 --- a/addons/optionsmenu/functions/fn_updateClientSideOption_f.sqf +++ /dev/null @@ -1,24 +0,0 @@ -/** - * fn_updateClientSideOption_f.sqf - * @Descr: - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: true - */ - -private ["_name","_keyBinding","_action","_idd","_keyCodePressed","_shiftPressed","_altPressed","_ctrlPressed"]; -_name = _this select 0; -_keyBinding = _this select 1; - -if (isnil "CSE_F_CLIENT_SIDE_SETTINGS") then { - CSE_F_CLIENT_SIDE_SETTINGS = []; -}; -{ - if ((_x select 0) == _name) exitwith { - _x set [ 2, _keyBinding]; - }; -}foreach CSE_F_CLIENT_SIDE_SETTINGS; - -[_name] spawn cse_fnc_saveClientSideOptionToProfile_F; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fn_updateMenuKeyBinding_f.sqf b/addons/optionsmenu/functions/fn_updateMenuKeyBinding_f.sqf deleted file mode 100644 index e6137e1444..0000000000 --- a/addons/optionsmenu/functions/fn_updateMenuKeyBinding_f.sqf +++ /dev/null @@ -1,24 +0,0 @@ -/** - * fn_updateMenuKeyBinding_f.sqf - * @Descr: N/A - * @Author: Glowbal - * - * @Arguments: [] - * @Return: - * @PublicAPI: false - */ - -private ["_name","_keyBinding","_action","_idd","_keyCodePressed","_shiftPressed","_altPressed","_ctrlPressed"]; -_name = _this select 0; -_keyBinding = _this select 1; - -if (isnil "CSE_F_KEYBINDINGS_MENUS") then { - CSE_F_KEYBINDINGS_MENUS = []; -}; -{ - if ((_x select 0) == _name) exitwith { - _x set [ 1, _keyBinding]; - }; -}foreach CSE_F_KEYBINDINGS_MENUS; - -[_name,"menu"] call cse_fnc_saveKeyBindingToProfile_F; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fnc_addClientSideOptions.sqf b/addons/optionsmenu/functions/fnc_addClientSideOptions.sqf new file mode 100644 index 0000000000..9f4f57e608 --- /dev/null +++ b/addons/optionsmenu/functions/fnc_addClientSideOptions.sqf @@ -0,0 +1,18 @@ +/** + * fnc_addClientSideOptions.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ +#include "script_component.hpp" + +PARAMS_5(_name,_localizedName,_localizedDescription,_possibleValues,_defaultValue); + +GVAR(clientSideOptions) pushBack [_name, _localizedName, _localizedDescription, _possibleValues, -1, _defaultValue]; + +//Get the current setting from profile (or default) and set it: +_currentValue = [MENU_TAB_OPTIONS, _name, _defaultValue] call FUNC(loadFromProfile); +[MENU_TAB_OPTIONS, _name, _currentValue] call FUNC(updateSetting); diff --git a/addons/optionsmenu/functions/fnc_loadFromProfile.sqf b/addons/optionsmenu/functions/fnc_loadFromProfile.sqf new file mode 100644 index 0000000000..df0366dcf3 --- /dev/null +++ b/addons/optionsmenu/functions/fnc_loadFromProfile.sqf @@ -0,0 +1,36 @@ +/** + * fnc_loadFromProfile.sqf + * @Descr: N/A + * @Author: Glowbal + * + * @Arguments: [] + * @Return: + * @PublicAPI: false + */ +#include "script_component.hpp" + +private ["_settingValue"]; +PARAMS_3(_type,_name,_default); + +_typeString = ""; +switch (_type) do { +case (MENU_TAB_OPTIONS): {_typeString = "option";}; +case (MENU_TAB_COLORS): {_typeString = "color";}; +}; + +_settingValue = profileNamespace getvariable [(format ["ace_%1_%2", _typeString, _name]), _default]; + +_badData = isNil "_settingValue"; +if (!_badData) then { + switch (_type) do { + case (MENU_TAB_OPTIONS): {_badData = ((typeName _settingValue) != (typeName 0));}; + case (MENU_TAB_COLORS): {_badData = (((typeName _settingValue) != (typeName [])) || {(count _settingValue) != 4});}; + }; +}; +if (_badData) then { + _settingValue = _default; + systemChat format ["Bad Data in: ace_%1_%2", _typeString, _name]; + ERROR("Bad Value in profile"); +}; + +_settingValue diff --git a/addons/optionsmenu/functions/fnc_onListBoxSettingsChanged.sqf b/addons/optionsmenu/functions/fnc_onListBoxSettingsChanged.sqf new file mode 100644 index 0000000000..dfb28485e6 --- /dev/null +++ b/addons/optionsmenu/functions/fnc_onListBoxSettingsChanged.sqf @@ -0,0 +1,33 @@ +/** +* fnc_onListBoxSettingsChanged.sqf +* @Descr: N/A +* @Author: Glowbal +* +* @Arguments: [] +* @Return: +* @PublicAPI: false +*/ +#include "script_component.hpp" + +private ["_settingsMenu", "_optionSelected", "_onChangeCode", "_selectedSetting", "_nameOfSetting"]; +disableSerialization; +_settingsMenu = uiNamespace getVariable 'ACE_settingsMenu'; + +_optionSelected = lbCurSel 400; +_selectedSetting = lbCurSel 200; + +if (_optionSelected < 0) then {_optionSelected = 0;}; + +switch (GVAR(optionMenu_openTab)) do { +case (MENU_TAB_OPTIONS): { + if (_selectedSetting > (count GVAR(clientSideOptions))) then { + _selectedSetting = (count GVAR(clientSideOptions)) - 1; + }; + if (_selectedSetting < 0) then { + _selectedSetting = 0; + }; + _nameOfSetting = (GVAR(clientSideOptions) select _selectedSetting) select 0; + [MENU_TAB_OPTIONS, _nameOfSetting, _optionSelected] call FUNC(updateSetting); + [false] call FUNC(settingsMenuUpdateList); + }; +}; diff --git a/addons/optionsmenu/functions/fnc_onListBoxShowSelectionChanged.sqf b/addons/optionsmenu/functions/fnc_onListBoxShowSelectionChanged.sqf new file mode 100644 index 0000000000..0f6f36bbc2 --- /dev/null +++ b/addons/optionsmenu/functions/fnc_onListBoxShowSelectionChanged.sqf @@ -0,0 +1,66 @@ +/** +* fnc_onListBoxShowSelectionChanged.sqf +* @Descr: called when the listbox selection has changed. Updates configuration menu information +* @Author: Glowbal +* +* @Arguments: [] +* @Return: +* @PublicAPI: false +*/ +#include "script_component.hpp" + +private ["_settingsMenu"]; + +PARAMS_1(_openTab); +GVAR(optionMenu_openTab) = _openTab; + +// _textOptions = ["Menu Keybindings", "Action Keybindings", "Client Settings"]; + +disableSerialization; +_settingsMenu = uiNamespace getVariable 'ACE_settingsMenu'; + +[true] call FUNC(settingsMenuUpdateList); + +switch (GVAR(optionMenu_openTab)) do { +case (MENU_TAB_OPTIONS): { + _localizedHeader = format ["%1: %2", ("Settings"), ("Client Options")]; + ctrlSetText [13, _localizedHeader]; + + lbClear 400; + + (_settingsMenu displayCtrl 301) ctrlShow true; + (_settingsMenu displayCtrl 310) ctrlShow false; + (_settingsMenu displayCtrl 311) ctrlShow false; + (_settingsMenu displayCtrl 312) ctrlShow false; + (_settingsMenu displayCtrl 313) ctrlShow false; + + (_settingsMenu displayCtrl 400) ctrlShow true; + (_settingsMenu displayCtrl 410) ctrlShow false; + (_settingsMenu displayCtrl 411) ctrlShow false; + (_settingsMenu displayCtrl 412) ctrlShow false; + (_settingsMenu displayCtrl 413) ctrlShow false; + }; +case (MENU_TAB_COLORS): { + _localizedHeader = format ["%1: %2", ("Settings"), ("Colors")]; + ctrlSetText [13, _localizedHeader]; + + lbClear 400; + + (_settingsMenu displayCtrl 301) ctrlShow false; + (_settingsMenu displayCtrl 310) ctrlShow true; + (_settingsMenu displayCtrl 311) ctrlShow true; + (_settingsMenu displayCtrl 312) ctrlShow true; + (_settingsMenu displayCtrl 313) ctrlShow true; + + (_settingsMenu displayCtrl 400) ctrlShow false; + (_settingsMenu displayCtrl 410) ctrlShow true; + (_settingsMenu displayCtrl 411) ctrlShow true; + (_settingsMenu displayCtrl 412) ctrlShow true; + (_settingsMenu displayCtrl 413) ctrlShow true; + + (_settingsMenu displayCtrl 410) sliderSetRange [0, 1]; + (_settingsMenu displayCtrl 411) sliderSetRange [0, 1]; + (_settingsMenu displayCtrl 412) sliderSetRange [0, 1]; + (_settingsMenu displayCtrl 413) sliderSetRange [0, 1]; + }; +}; diff --git a/addons/optionsmenu/functions/fnc_onSettingsMenuOpen.sqf b/addons/optionsmenu/functions/fnc_onSettingsMenuOpen.sqf new file mode 100644 index 0000000000..37f4492edc --- /dev/null +++ b/addons/optionsmenu/functions/fnc_onSettingsMenuOpen.sqf @@ -0,0 +1,12 @@ +/** +* fnc_onSettingsMenuOpen.sqf +* @Descr: called when the settings or configuration menu has opened. Do not use anywhere else. +* @Author: Glowbal +* +* @Arguments: [] +* @Return: +* @PublicAPI: false +*/ +#include "script_component.hpp" + +[MENU_TAB_OPTIONS] call FUNC(onListBoxShowSelectionChanged); diff --git a/addons/optionsmenu/functions/fnc_onSliderPosChanged.sqf b/addons/optionsmenu/functions/fnc_onSliderPosChanged.sqf new file mode 100644 index 0000000000..fabd4a39be --- /dev/null +++ b/addons/optionsmenu/functions/fnc_onSliderPosChanged.sqf @@ -0,0 +1,48 @@ +/** +* fnc_onSliderPosChanged.sqf +* @Descr: N/A +* @Author: PabstMirror +* +* @Arguments: [] +* @Return: +* @PublicAPI: false +*/ +#include "script_component.hpp" + +systemChat format ["slide %1", _this]; + + +disableSerialization; +_slider = _this select 0; +_pos = _this select 1; +_idc = ctrlIDC _slider; + +_index = _idc % 4; //[410, 411, 412, 413]; + + _settingsMenu = uiNamespace getVariable 'ACE_settingsMenu'; +_optionSelected = lbCurSel 400; + +// switch (GVAR(optionMenu_openTab)) do { +// case (MENU_TAB_COLORS): { + // if (_selectedSetting > (count GVAR(clientSideColors))) then { + // _selectedSetting = (count GVAR(clientSideColors)) - 1; + // }; + // if (_selectedSetting < 0) then { + // _selectedSetting = 0; + // }; + // _nameOfSetting = (GVAR(clientSideColors) select _selectedSetting) select 0; + // [MENU_TAB_COLORS, _nameOfSetting, _optionSelected] call FUNC(updateSetting); + // [false] call FUNC(settingsMenuUpdateList); + // }; +// }; + + +// private ["_settingsMenu", "_optionSelected", "_onChangeCode", "_selectedSetting", "_nameOfSetting"]; +// + +// +// _selectedSetting = lbCurSel 200; + +// if (_optionSelected < 0) then {_optionSelected = 0;}; + + diff --git a/addons/optionsmenu/functions/fnc_resetSettings.sqf b/addons/optionsmenu/functions/fnc_resetSettings.sqf new file mode 100644 index 0000000000..ac197cf930 --- /dev/null +++ b/addons/optionsmenu/functions/fnc_resetSettings.sqf @@ -0,0 +1,37 @@ +/** +* fnc_resetSettings.sqf +* @Descr: +* @Author: Glowbal +* +* @Arguments: [] +* @Return: +* @PublicAPI: true +*/ +#include "script_component.hpp" + +private ["_type", "_collection", "_default", "_lastSelected"]; + +{ + _type = _x; + _collection = []; + switch (_type) do { + case (MENU_TAB_OPTIONS): {_collection = GVAR(clientSideOptions);}; + case (MENU_TAB_COLORS): {_collection = GVAR(clientSideColors);}; + }; + + { + _name = _x select 0; + _default = _x select 5; + + systemChat format ["Reseting %1 to %2", _name, _default]; + [_type, _name, _default] call FUNC(updateSetting); + } forEach _collection; + +} forEach [MENU_TAB_OPTIONS, MENU_TAB_COLORS]; + + +_lastSelected = lbCurSel 200; +[GVAR(optionMenu_openTab)] call FUNC(onListBoxShowSelectionChanged); +if (_lastSelected != -1) then { + lbSetCurSel [200, _lastSelected]; +}; diff --git a/addons/optionsmenu/functions/fnc_saveToProfile.sqf b/addons/optionsmenu/functions/fnc_saveToProfile.sqf new file mode 100644 index 0000000000..9c56cc20a0 --- /dev/null +++ b/addons/optionsmenu/functions/fnc_saveToProfile.sqf @@ -0,0 +1,37 @@ +/** +* fnc_saveToProfile.sqf +* @Descr: Save the clientside option to the profile. +* @Author: Glowbal +* +* @Arguments: [name STRING (Name of setting)] +* @Return: BOOL True if saved. +* @PublicAPI: false +*/ +#include "script_component.hpp" + +private ["_nameSelected", "_saved"]; +PARAMS_2(_type,_name); + +_typeString = ""; +_collection = []; +switch (_type) do { +case (MENU_TAB_OPTIONS): { + _typeString = "option"; + _collection = GVAR(clientSideOptions); + }; +case (MENU_TAB_COLORS): { + _typeString = "color"; + _collection = []; + }; +}; + +_saved = false; +{ + _nameSelected = _x select 0; + if (_nameSelected == _name) exitwith { + profileNamespace setvariable [(format ["ace_%1_%2", _typeString, _name]), (_x select 4)]; + _saved = true; + }; +}foreach GVAR(clientSideOptions); + +_saved diff --git a/addons/optionsmenu/functions/fnc_settingsMenuUpdateKeyView.sqf b/addons/optionsmenu/functions/fnc_settingsMenuUpdateKeyView.sqf new file mode 100644 index 0000000000..ccd0a09e07 --- /dev/null +++ b/addons/optionsmenu/functions/fnc_settingsMenuUpdateKeyView.sqf @@ -0,0 +1,94 @@ +/** +* fnc_settingsMenuUpdateKeyView.sqf +* @Descr: N/A +* @Author: Glowbal +* +* @Arguments: [] +* @Return: +* @PublicAPI: false +*/ +#include "script_component.hpp" + +private ["_setting","_ctrlList","_collection","_settingsMenu", "_keybinding","_keyCode","_shiftPressed","_altPressed","_ctrlPressed"]; +disableSerialization; + +_settingsMenu = uiNamespace getVariable 'ACE_settingsMenu'; +_ctrlList = _settingsMenu displayCtrl 200; + +_collection = switch (GVAR(optionMenu_openTab)) do { +case MENU_TAB_OPTIONS: {GVAR(clientSideOptions)}; + 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; + + _entryName = _setting select 0; + _localizedName = _setting select 1; + _localizedDescription = _setting select 2; + + if (_localizedName == "") then {_localizedName = _entryName;}; + (_settingsMenu displayCtrl 250) ctrlSetText _localizedName; + (_settingsMenu displayCtrl 251) ctrlSetText _localizedDescription; + + switch (GVAR(optionMenu_openTab)) do { + case (MENU_TAB_OPTIONS): { + _possibleValues = _setting select 3; + _settingsValue = _setting select 4; + lbClear 400; + _settingsText = (_possibleValues select _settingsValue); // expecting: value [[any, TEXT (DESCRIPTION)]] + (_settingsMenu displayCtrl 300) ctrlSetText _entryName; + { + lbAdd [400, _x]; + } foreach _possibleValues; + + (_settingsMenu displayCtrl 400) lbSetCurSel _settingsValue; + + }; + }; + + + // if (GVAR(optionMenu_openTab) != MENU_TAB_OPTIONS) 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; + // }; +}; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fnc_settingsMenuUpdateList.sqf b/addons/optionsmenu/functions/fnc_settingsMenuUpdateList.sqf new file mode 100644 index 0000000000..5eaa0f0c55 --- /dev/null +++ b/addons/optionsmenu/functions/fnc_settingsMenuUpdateList.sqf @@ -0,0 +1,32 @@ +/** +* fnc_settingsMenuUpdateList.sqf +* @Descr: N/A +* @Author: Glowbal +* +* @Arguments: [] +* @Return: +* @PublicAPI: false +*/ +#include "script_component.hpp" + +private ["_settingsMenu","_ctrlList","_collection","_keyBindingText","_keybinding", "_updateKeyView"]; +disableSerialization; + +_updateKeyView = [_this, 0, true, [true]] call BIS_fnc_Param; + +_settingsMenu = uiNamespace getVariable 'ACE_settingsMenu'; +_ctrlList = _settingsMenu displayCtrl 200; +lbclear _ctrlList; + +switch (GVAR(optionMenu_openTab)) do { +case (MENU_TAB_OPTIONS): { + { + _settingsText = ((_x select 3) select (_x select 4)); + _ctrlList lbadd (_x select 1); + _ctrlList lbadd (_settingsText); + }foreach GVAR(clientSideOptions); + }; +}; +if (_updateKeyView) then { + [] call FUNC(settingsMenuUpdateKeyView); +}; \ No newline at end of file diff --git a/addons/optionsmenu/functions/fnc_updateSetting.sqf b/addons/optionsmenu/functions/fnc_updateSetting.sqf new file mode 100644 index 0000000000..2810367efb --- /dev/null +++ b/addons/optionsmenu/functions/fnc_updateSetting.sqf @@ -0,0 +1,41 @@ +/** +* fnc_updateSetting.sqf +* @Descr: +* @Author: Glowbal +* +* @Arguments: [] +* @Return: +* @PublicAPI: true +*/ +#include "script_component.hpp" + +PARAMS_3(_type,_name,_newValue); + +private ["_changed", "_collection"]; + +_changed = false; +_collection = []; + +switch (_type) do { +case (MENU_TAB_OPTIONS): {_collection = GVAR(clientSideOptions);}; +case (MENU_TAB_COLORS): {_collection = GVAR(clientSideColors);}; +}; + +systemChat format ["%1: %2", _name, count _collection]; + +{ + if ((_x select 0) == _name) then { + if (!((_x select 4) isEqualTo _newValue)) then { + _changed = true; + _x set [4, _newValue]; //Change current Value + }; + }; +} foreach _collection; + +systemChat format ["%1: %2", _name, _changed]; + +if (_changed) then { + missionNameSpace setVariable [_name, _newValue]; + [_type, _name] call FUNC(saveToProfile); + ["SettingChanged", [_name, _newValue]] call EFUNC(common,localEvent); +}; diff --git a/addons/optionsmenu/functions/script_component.hpp b/addons/optionsmenu/functions/script_component.hpp new file mode 100644 index 0000000000..dd11862f9d --- /dev/null +++ b/addons/optionsmenu/functions/script_component.hpp @@ -0,0 +1 @@ +#include "\z\ace\addons\optionsmenu\script_component.hpp" \ No newline at end of file diff --git a/addons/optionsmenu/gui/define.h b/addons/optionsmenu/gui/define.h deleted file mode 100644 index c521de470f..0000000000 --- a/addons/optionsmenu/gui/define.h +++ /dev/null @@ -1,797 +0,0 @@ - -#ifndef CSE_DEFINE_H -#define CSE_DEFINE_H -// define.hpp - -#define true 1 -#define false 0 - -#define CT_STATIC 0 -#define CT_BUTTON 1 -#define CT_EDIT 2 -#define CT_SLIDER 3 -#define CT_COMBO 4 -#define CT_LISTBOX 5 -#define CT_TOOLBOX 6 -#define CT_CHECKBOXES 7 -#define CT_PROGRESS 8 -#define CT_HTML 9 -#define CT_STATIC_SKEW 10 -#define CT_ACTIVETEXT 11 -#define CT_TREE 12 -#define CT_STRUCTURED_TEXT 13 -#define CT_CONTEXT_MENU 14 -#define CT_CONTROLS_GROUP 15 -#define CT_SHORTCUTBUTTON 16 -#define CT_XKEYDESC 40 -#define CT_XBUTTON 41 -#define CT_XLISTBOX 42 -#define CT_XSLIDER 43 -#define CT_XCOMBO 44 -#define CT_ANIMATED_TEXTURE 45 -#define CT_OBJECT 80 -#define CT_OBJECT_ZOOM 81 -#define CT_OBJECT_CONTAINER 82 -#define CT_OBJECT_CONT_ANIM 83 -#define CT_LINEBREAK 98 -#define CT_ANIMATED_USER 99 -#define CT_MAP 100 -#define CT_MAP_MAIN 101 -#define CT_LISTNBOX 102 - -// Static styles -#define ST_POS 0x0F -#define ST_HPOS 0x03 -#define ST_VPOS 0x0C -#define ST_LEFT 0x00 -#define ST_RIGHT 0x01 -#define ST_CENTER 0x02 -#define ST_DOWN 0x04 -#define ST_UP 0x08 -#define ST_VCENTER 0x0c - -#define ST_TYPE 0xF0 -#define ST_SINGLE 0 -#define ST_MULTI 16 -#define ST_TITLE_BAR 32 -#define ST_PICTURE 48 -#define ST_FRAME 64 -#define ST_BACKGROUND 80 -#define ST_GROUP_BOX 96 -#define ST_GROUP_BOX2 112 -#define ST_HUD_BACKGROUND 128 -#define ST_TILE_PICTURE 144 -#define ST_WITH_RECT 160 -#define ST_LINE 176 - -#define ST_SHADOW 0x100 -#define ST_NO_RECT 0x200 // this style works for CT_STATIC in conjunction with ST_MULTI -#define ST_KEEP_ASPECT_RATIO 0x800 - -#define ST_TITLE ST_TITLE_BAR + ST_CENTER - -// Slider styles -#define SL_DIR 0x400 -#define SL_VERT 0 -#define SL_HORZ 0x400 - -#define SL_TEXTURES 0x10 - -// Listbox styles -#define LB_TEXTURES 0x10 -#define LB_MULTI 0x20 -#define FontCSE "PuristaMedium" - -class cse_gui_backgroundBase { - type = CT_STATIC; - idc = -1; - style = ST_PICTURE; - colorBackground[] = {0,0,0,0}; - colorText[] = {1, 1, 1, 1}; - font = FontCSE; - text = ""; - sizeEx = 0.032; -}; -class cse_gui_editBase -{ - access = 0; - type = 2; - x = 0; - y = 0; - h = 0.04; - w = 0.2; - colorBackground[] = - { - 0, - 0, - 0, - 1 - }; - colorText[] = - { - 0.95, - 0.95, - 0.95, - 1 - }; - colorSelection[] = - { - "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", - "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", - "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", - 1 - }; - autocomplete = ""; - text = ""; - size = 0.2; - style = "0x00 + 0x40"; - font = "PuristaMedium"; - shadow = 2; - sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; - colorDisabled[] = - { - 1, - 1, - 1, - 0.25 - }; -}; - - - -class cse_gui_buttonBase { - idc = -1; - type = 16; - style = ST_LEFT; - text = ""; - action = ""; - x = 0.0; - y = 0.0; - w = 0.25; - h = 0.04; - size = 0.03921; - sizeEx = 0.03921; - color[] = {1.0, 1.0, 1.0, 1}; - color2[] = {1.0, 1.0, 1.0, 1}; - /*colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.5])"}; - colorbackground2[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.4}; - colorDisabled[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.25}; - colorFocused[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])", 0.8}; - colorBackgroundFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.8}; - */ - - colorBackground[] = {1,1,1,0.95}; - colorbackground2[] = {1,1,1,0.95}; - colorDisabled[] = {1,1,1,0.6}; - colorFocused[] = {1,1,1,1}; - colorBackgroundFocused[] = {1,1,1,1}; - periodFocus = 1.2; - periodOver = 0.8; - default = false; - class HitZone { - left = 0.00; - top = 0.00; - right = 0.00; - bottom = 0.00; - }; - - class ShortcutPos { - left = 0.00; - top = 0.00; - w = 0.00; - h = 0.00; - }; - - class TextPos { - left = 0.002; - top = 0.0004; - right = 0.0; - bottom = 0.00; - }; - textureNoShortcut = ""; - animTextureNormal = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; - animTextureDisabled = "cse\cse_gui\data\buttonDisabled_gradient.paa"; - animTextureOver = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; - animTextureFocused = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; - animTexturePressed = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; - animTextureDefault = "cse\cse_gui\data\buttonNormal_gradient_top.paa"; - period = 0.5; - font = FontCSE; - soundClick[] = {"\A3\ui_f\data\sound\RscButton\soundClick",0.09,1}; - soundPush[] = {"\A3\ui_f\data\sound\RscButton\soundPush",0.0,0}; - soundEnter[] = {"\A3\ui_f\data\sound\RscButton\soundEnter",0.07,1}; - soundEscape[] = {"\A3\ui_f\data\sound\RscButton\soundEscape",0.09,1}; - class Attributes { - font = FontCSE; - color = "#E5E5E5"; - align = "center"; - shadow = "true"; - }; - class AttributesImage { - font = FontCSE; - color = "#E5E5E5"; - align = "left"; - shadow = "true"; - }; -}; - -class cse_gui_RscProgress { - type = 8; - style = 0; - colorFrame[] = {1,1,1,0.7}; - colorBar[] = {1,1,1,0.7}; - texture = "#(argb,8,8,3)color(1,1,1,0.7)"; - x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; - y = "10 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)"; - h = "0.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; -}; - - -class cse_gui_staticBase { - idc = -1; - type = CT_STATIC; - x = 0.0; - y = 0.0; - w = 0.183825; - h = 0.104575; - style = ST_LEFT; - font = FontCSE; - sizeEx = 0.03921; - colorText[] = {0.95, 0.95, 0.95, 1.0}; - colorBackground[] = {0, 0, 0, 0}; - text = ""; -}; - -class RscListBox; -class cse_gui_listBoxBase : RscListBox{ - type = CT_LISTBOX; - style = ST_MULTI; - font = FontCSE; - sizeEx = 0.03921; - color[] = {1, 1, 1, 1}; - colorText[] = {0.543, 0.5742, 0.4102, 1.0}; - colorScrollbar[] = {0.95, 0.95, 0.95, 1}; - colorSelect[] = {0.95, 0.95, 0.95, 1}; - colorSelect2[] = {0.95, 0.95, 0.95, 1}; - colorSelectBackground[] = {0, 0, 0, 1}; - colorSelectBackground2[] = {0.543, 0.5742, 0.4102, 1.0}; - colorDisabled[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", 0.25}; - period = 1.2; - rowHeight = 0.03; - colorBackground[] = {0, 0, 0, 1}; - maxHistoryDelay = 1.0; - autoScrollSpeed = -1; - autoScrollDelay = 5; - autoScrollRewind = 0; - soundSelect[] = {"",0.1,1}; - soundExpand[] = {"",0.1,1}; - soundCollapse[] = {"",0.1,1}; - class ListScrollBar { - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - autoScrollDelay = 5; - autoScrollEnabled = 0; - autoScrollRewind = 0; - autoScrollSpeed = -1; - border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; - color[] = {1,1,1,0.6}; - colorActive[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.3}; - height = 0; - scrollSpeed = 0.06; - shadow = 0; - thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; - width = 0; - }; - class ScrollBar { - color[] = {1, 1, 1, 0.6}; - colorActive[] = {1, 1, 1, 1}; - colorDisabled[] = {1, 1, 1, 0.3}; - thumb = ""; - arrowFull = ""; - arrowEmpty = ""; - border = ""; - }; -}; - - -class cse_gui_listNBox { - access = 0; - type = CT_LISTNBOX;// 102; - style =ST_MULTI; - w = 0.4; - h = 0.4; - font = FontCSE; - sizeEx = 0.031; - - autoScrollSpeed = -1; - autoScrollDelay = 5; - autoScrollRewind = 0; - arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; - arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; - columns[] = {0.0}; - color[] = {1, 1, 1, 1}; - - rowHeight = 0.03; - colorBackground[] = {0, 0, 0, 0.2}; - colorText[] = {1,1, 1, 1.0}; - colorScrollbar[] = {0.95, 0.95, 0.95, 1}; - colorSelect[] = {0.95, 0.95, 0.95, 1}; - colorSelect2[] = {0.95, 0.95, 0.95, 1}; - colorSelectBackground[] = {0, 0, 0, 0.0}; - colorSelectBackground2[] = {0.0, 0.0, 0.0, 0.5}; - colorActive[] = {0,0,0,1}; - colorDisabled[] = {0,0,0,0.3}; - rows = 1; - - drawSideArrows = 0; - idcLeft = -1; - idcRight = -1; - maxHistoryDelay = 1; - soundSelect[] = {"", 0.1, 1}; - period = 1; - shadow = 2; - class ScrollBar { - arrowEmpty = "#(argb,8,8,3)color(1,1,1,1)"; - arrowFull = "#(argb,8,8,3)color(1,1,1,1)"; - border = "#(argb,8,8,3)color(1,1,1,1)"; - color[] = {1,1,1,0.6}; - colorActive[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.3}; - thumb = "#(argb,8,8,3)color(1,1,1,1)"; - }; - class ListScrollBar { - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - autoScrollDelay = 5; - autoScrollEnabled = 0; - autoScrollRewind = 0; - autoScrollSpeed = -1; - border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; - color[] = {1,1,1,0.6}; - colorActive[] = {1,1,1,1}; - colorDisabled[] = {1,1,1,0.3}; - height = 0; - scrollSpeed = 0.06; - shadow = 0; - thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; - width = 0; - }; -}; - - -class RscCombo; -class cse_gui_comboBoxBase: RscCombo { - idc = -1; - type = 4; - style = "0x10 + 0x200"; - x = 0; - y = 0; - w = 0.3; - h = 0.035; - color[] = {0,0,0,0.6}; - colorActive[] = {1,0,0,1}; - colorBackground[] = {0,0,0,1}; - colorDisabled[] = {1,1,1,0.25}; - colorScrollbar[] = {1,0,0,1}; - colorSelect[] = {0,0,0,1}; - colorSelectBackground[] = {1,1,1,0.7}; - colorText[] = {1,1,1,1}; - - arrowEmpty = ""; - arrowFull = ""; - wholeHeight = 0.45; - font = FontCSE; - sizeEx = 0.031; - soundSelect[] = {"\A3\ui_f\data\sound\RscCombo\soundSelect",0.1,1}; - soundExpand[] = {"\A3\ui_f\data\sound\RscCombo\soundExpand",0.1,1}; - soundCollapse[] = {"\A3\ui_f\data\sound\RscCombo\soundCollapse",0.1,1}; - maxHistoryDelay = 1.0; - class ScrollBar - { - color[] = {0.3,0.3,0.3,0.6}; - colorActive[] = {0.3,0.3,0.3,1}; - colorDisabled[] = {0.3,0.3,0.3,0.3}; - thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - border = ""; - }; - class ComboScrollBar { - arrowEmpty = "\A3\ui_f\data\gui\cfg\scrollbar\arrowEmpty_ca.paa"; - arrowFull = "\A3\ui_f\data\gui\cfg\scrollbar\arrowFull_ca.paa"; - autoScrollDelay = 5; - autoScrollEnabled = 0; - autoScrollRewind = 0; - autoScrollSpeed = -1; - border = "\A3\ui_f\data\gui\cfg\scrollbar\border_ca.paa"; - color[] = {0.3,0.3,0.3,0.6}; - colorActive[] = {0.3,0.3,0.3,1}; - colorDisabled[] = {0.3,0.3,0.3,0.3}; - height = 0; - scrollSpeed = 0.06; - shadow = 0; - thumb = "\A3\ui_f\data\gui\cfg\scrollbar\thumb_ca.paa"; - width = 0; - }; -}; - - - -class cse_gui_mapBase { - moveOnEdges = 1; - x = "SafeZoneXAbs"; - y = "SafeZoneY + 1.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - w = "SafeZoneWAbs"; - h = "SafeZoneH - 1.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - type = 100; // Use 100 to hide markers - style = 48; - shadow = 0; - - ptsPerSquareSea = 5; - ptsPerSquareTxt = 3; - ptsPerSquareCLn = 10; - ptsPerSquareExp = 10; - ptsPerSquareCost = 10; - ptsPerSquareFor = 9; - ptsPerSquareForEdge = 9; - ptsPerSquareRoad = 6; - ptsPerSquareObj = 9; - showCountourInterval = 0; - scaleMin = 0.001; - scaleMax = 1.0; - scaleDefault = 0.16; - maxSatelliteAlpha = 0.85; - alphaFadeStartScale = 0.35; - alphaFadeEndScale = 0.4; - colorBackground[] = {0.969,0.957,0.949,1.0}; - colorSea[] = {0.467,0.631,0.851,0.5}; - colorForest[] = {0.624,0.78,0.388,0.5}; - colorForestBorder[] = {0.0,0.0,0.0,0.0}; - colorRocks[] = {0.0,0.0,0.0,0.3}; - colorRocksBorder[] = {0.0,0.0,0.0,0.0}; - colorLevels[] = {0.286,0.177,0.094,0.5}; - colorMainCountlines[] = {0.572,0.354,0.188,0.5}; - colorCountlines[] = {0.572,0.354,0.188,0.25}; - colorMainCountlinesWater[] = {0.491,0.577,0.702,0.6}; - colorCountlinesWater[] = {0.491,0.577,0.702,0.3}; - colorPowerLines[] = {0.1,0.1,0.1,1.0}; - colorRailWay[] = {0.8,0.2,0.0,1.0}; - colorNames[] = {0.1,0.1,0.1,0.9}; - colorInactive[] = {1.0,1.0,1.0,0.5}; - colorOutside[] = {0.0,0.0,0.0,1.0}; - colorTracks[] = {0.84,0.76,0.65,0.15}; - colorTracksFill[] = {0.84,0.76,0.65,1.0}; - colorRoads[] = {0.7,0.7,0.7,1.0}; - colorRoadsFill[] = {1.0,1.0,1.0,1.0}; - colorMainRoads[] = {0.9,0.5,0.3,1.0}; - colorMainRoadsFill[] = {1.0,0.6,0.4,1.0}; - colorGrid[] = {0.1,0.1,0.1,0.6}; - colorGridMap[] = {0.1,0.1,0.1,0.6}; - colorText[] = {1, 1, 1, 0.85}; -font = "PuristaMedium"; -sizeEx = 0.0270000; -stickX[] = {0.20, {"Gamma", 1.00, 1.50} }; -stickY[] = {0.20, {"Gamma", 1.00, 1.50} }; -onMouseButtonClick = ""; -onMouseButtonDblClick = ""; - - fontLabel = "PuristaMedium"; - sizeExLabel = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; - fontGrid = "TahomaB"; - sizeExGrid = 0.02; - fontUnits = "TahomaB"; - sizeExUnits = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; - fontNames = "PuristaMedium"; - sizeExNames = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8) * 2"; - fontInfo = "PuristaMedium"; - sizeExInfo = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; - fontLevel = "TahomaB"; - sizeExLevel = 0.02; - text = "#(argb,8,8,3)color(1,1,1,1)"; - class ActiveMarker { - color[] = {0.30, 0.10, 0.90, 1.00}; - size = 50; - }; - class Legend - { - x = "SafeZoneX + ( ((safezoneW / safezoneH) min 1.2) / 40)"; - y = "SafeZoneY + safezoneH - 4.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; - h = "3.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - font = "PuristaMedium"; - sizeEx = "( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)"; - colorBackground[] = {1,1,1,0.5}; - color[] = {0,0,0,1}; - }; - class Task - { - icon = "\A3\ui_f\data\map\mapcontrol\taskIcon_CA.paa"; - iconCreated = "\A3\ui_f\data\map\mapcontrol\taskIconCreated_CA.paa"; - iconCanceled = "\A3\ui_f\data\map\mapcontrol\taskIconCanceled_CA.paa"; - iconDone = "\A3\ui_f\data\map\mapcontrol\taskIconDone_CA.paa"; - iconFailed = "\A3\ui_f\data\map\mapcontrol\taskIconFailed_CA.paa"; - color[] = {"(profilenamespace getvariable ['IGUI_TEXT_RGB_R',0])","(profilenamespace getvariable ['IGUI_TEXT_RGB_G',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_B',1])","(profilenamespace getvariable ['IGUI_TEXT_RGB_A',0.8])"}; - colorCreated[] = {1,1,1,1}; - colorCanceled[] = {0.7,0.7,0.7,1}; - colorDone[] = {0.7,1,0.3,1}; - colorFailed[] = {1,0.3,0.2,1}; - size = 27; - importance = 1; - coefMin = 1; - coefMax = 1; - }; - class Waypoint - { - icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa"; - color[] = {0,0,0,1}; - size = 20; - importance = "1.2 * 16 * 0.05"; - coefMin = 0.900000; - coefMax = 4; - }; - class WaypointCompleted - { - icon = "\A3\ui_f\data\map\mapcontrol\waypointCompleted_ca.paa"; - color[] = {0,0,0,1}; - size = 20; - importance = "1.2 * 16 * 0.05"; - coefMin = 0.900000; - coefMax = 4; - }; - class CustomMark - { - icon = "\A3\ui_f\data\map\mapcontrol\custommark_ca.paa"; - size = 24; - importance = 1; - coefMin = 1; - coefMax = 1; - color[] = {0,0,0,1}; - }; - class Command - { - icon = "\A3\ui_f\data\map\mapcontrol\waypoint_ca.paa"; - size = 18; - importance = 1; - coefMin = 1; - coefMax = 1; - color[] = {1,1,1,1}; - }; - class Bush - { - icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; - color[] = {0.45,0.64,0.33,0.4}; - size = "14/2"; - importance = "0.2 * 14 * 0.05 * 0.05"; - coefMin = 0.25; - coefMax = 4; - }; - class Rock - { - icon = "\A3\ui_f\data\map\mapcontrol\rock_ca.paa"; - color[] = {0.1,0.1,0.1,0.8}; - size = 12; - importance = "0.5 * 12 * 0.05"; - coefMin = 0.25; - coefMax = 4; - }; - class SmallTree - { - icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; - color[] = {0.45,0.64,0.33,0.4}; - size = 12; - importance = "0.6 * 12 * 0.05"; - coefMin = 0.25; - coefMax = 4; - }; - class Tree - { - icon = "\A3\ui_f\data\map\mapcontrol\bush_ca.paa"; - color[] = {0.45,0.64,0.33,0.4}; - size = 12; - importance = "0.9 * 16 * 0.05"; - coefMin = 0.25; - coefMax = 4; - }; - class busstop - { - icon = "\A3\ui_f\data\map\mapcontrol\busstop_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {1,1,1,1}; - }; - class fuelstation - { - icon = "\A3\ui_f\data\map\mapcontrol\fuelstation_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {1,1,1,1}; - }; - class hospital - { - icon = "\A3\ui_f\data\map\mapcontrol\hospital_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {1,1,1,1}; - }; - class church - { - icon = "\A3\ui_f\data\map\mapcontrol\church_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {1,1,1,1}; - }; - class lighthouse - { - icon = "\A3\ui_f\data\map\mapcontrol\lighthouse_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {1,1,1,1}; - }; - class power - { - icon = "\A3\ui_f\data\map\mapcontrol\power_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {1,1,1,1}; - }; - class powersolar - { - icon = "\A3\ui_f\data\map\mapcontrol\powersolar_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {1,1,1,1}; - }; - class powerwave - { - icon = "\A3\ui_f\data\map\mapcontrol\powerwave_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {1,1,1,1}; - }; - class powerwind - { - icon = "\A3\ui_f\data\map\mapcontrol\powerwind_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {1,1,1,1}; - }; - class quay - { - icon = "\A3\ui_f\data\map\mapcontrol\quay_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {1,1,1,1}; - }; - class shipwreck - { - icon = "\A3\ui_f\data\map\mapcontrol\shipwreck_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {1,1,1,1}; - }; - class transmitter - { - icon = "\A3\ui_f\data\map\mapcontrol\transmitter_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {1,1,1,1}; - }; - class watertower - { - icon = "\A3\ui_f\data\map\mapcontrol\watertower_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {1,1,1,1}; - }; - class Cross - { - icon = "\A3\ui_f\data\map\mapcontrol\Cross_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {0,0,0,1}; - }; - class Chapel - { - icon = "\A3\ui_f\data\map\mapcontrol\Chapel_CA.paa"; - size = 24; - importance = 1; - coefMin = 0.85; - coefMax = 1.0; - color[] = {0,0,0,1}; - }; - class Bunker - { - icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa"; - size = 14; - importance = "1.5 * 14 * 0.05"; - coefMin = 0.25; - coefMax = 4; - color[] = {0,0,0,1}; - }; - class Fortress - { - icon = "\A3\ui_f\data\map\mapcontrol\bunker_ca.paa"; - size = 16; - importance = "2 * 16 * 0.05"; - coefMin = 0.25; - coefMax = 4; - color[] = {0,0,0,1}; - }; - class Fountain - { - icon = "\A3\ui_f\data\map\mapcontrol\fountain_ca.paa"; - size = 11; - importance = "1 * 12 * 0.05"; - coefMin = 0.25; - coefMax = 4; - color[] = {0,0,0,1}; - }; - class Ruin - { - icon = "\A3\ui_f\data\map\mapcontrol\ruin_ca.paa"; - size = 16; - importance = "1.2 * 16 * 0.05"; - coefMin = 1; - coefMax = 4; - color[] = {0,0,0,1}; - }; - class Stack - { - icon = "\A3\ui_f\data\map\mapcontrol\stack_ca.paa"; - size = 20; - importance = "2 * 16 * 0.05"; - coefMin = 0.9; - coefMax = 4; - color[] = {0,0,0,1}; - }; - class Tourism - { - icon = "\A3\ui_f\data\map\mapcontrol\tourism_ca.paa"; - size = 16; - importance = "1 * 16 * 0.05"; - coefMin = 0.7; - coefMax = 4; - color[] = {0,0,0,1}; - }; - class ViewTower - { - icon = "\A3\ui_f\data\map\mapcontrol\viewtower_ca.paa"; - size = 16; - importance = "2.5 * 16 * 0.05"; - coefMin = 0.5; - coefMax = 4; - color[] = {0,0,0,1}; - }; -}; - -#endif \ No newline at end of file diff --git a/addons/optionsmenu/gui/define.hpp b/addons/optionsmenu/gui/define.hpp new file mode 100644 index 0000000000..cb4fe1b509 --- /dev/null +++ b/addons/optionsmenu/gui/define.hpp @@ -0,0 +1,94 @@ +// define.hpp + +class ACE_gui_backgroundBase; +class ACE_gui_editBase; +class ACE_gui_buttonBase; +class ACE_gui_staticBase; +class ACE_gui_listNBox; +class ACE_gui_comboBoxBase; +class RscXSliderH; + + +#ifndef ACE_DEFINE_H +#define ACE_DEFINE_H + +#define true 1 +#define false 0 + +#define CT_STATIC 0 +#define CT_BUTTON 1 +#define CT_EDIT 2 +#define CT_SLIDER 3 +#define CT_COMBO 4 +#define CT_LISTBOX 5 +#define CT_TOOLBOX 6 +#define CT_CHECKBOXES 7 +#define CT_PROGRESS 8 +#define CT_HTML 9 +#define CT_STATIC_SKEW 10 +#define CT_ACTIVETEXT 11 +#define CT_TREE 12 +#define CT_STRUCTURED_TEXT 13 +#define CT_CONTEXT_MENU 14 +#define CT_CONTROLS_GROUP 15 +#define CT_SHORTCUTBUTTON 16 +#define CT_XKEYDESC 40 +#define CT_XBUTTON 41 +#define CT_XLISTBOX 42 +#define CT_XSLIDER 43 +#define CT_XCOMBO 44 +#define CT_ANIMATED_TEXTURE 45 +#define CT_OBJECT 80 +#define CT_OBJECT_ZOOM 81 +#define CT_OBJECT_CONTAINER 82 +#define CT_OBJECT_CONT_ANIM 83 +#define CT_LINEBREAK 98 +#define CT_ANIMATED_USER 99 +#define CT_MAP 100 +#define CT_MAP_MAIN 101 +#define CT_LISTNBOX 102 + +// Static styles +#define ST_POS 0x0F +#define ST_HPOS 0x03 +#define ST_VPOS 0x0C +#define ST_LEFT 0x00 +#define ST_RIGHT 0x01 +#define ST_CENTER 0x02 +#define ST_DOWN 0x04 +#define ST_UP 0x08 +#define ST_VCENTER 0x0c + +#define ST_TYPE 0xF0 +#define ST_SINGLE 0 +#define ST_MULTI 16 +#define ST_TITLE_BAR 32 +#define ST_PICTURE 48 +#define ST_FRAME 64 +#define ST_BACKGROUND 80 +#define ST_GROUP_BOX 96 +#define ST_GROUP_BOX2 112 +#define ST_HUD_BACKGROUND 128 +#define ST_TILE_PICTURE 144 +#define ST_WITH_RECT 160 +#define ST_LINE 176 + +#define ST_SHADOW 0x100 +#define ST_NO_RECT 0x200 // this style works for CT_STATIC in conjunction with ST_MULTI +#define ST_KEEP_ASPECT_RATIO 0x800 + +#define ST_TITLE ST_TITLE_BAR + ST_CENTER + +// Slider styles +#define SL_DIR 0x400 +#define SL_VERT 0 +#define SL_HORZ 0x400 + +#define SL_TEXTURES 0x10 + +// Listbox styles +#define LB_TEXTURES 0x10 +#define LB_MULTI 0x20 +#define FontCSE "PuristaMedium" + +#endif diff --git a/addons/optionsmenu/gui/pauseMenu.h b/addons/optionsmenu/gui/pauseMenu.hpp similarity index 76% rename from addons/optionsmenu/gui/pauseMenu.h rename to addons/optionsmenu/gui/pauseMenu.hpp index c7ff74ef59..48aff0415c 100644 --- a/addons/optionsmenu/gui/pauseMenu.h +++ b/addons/optionsmenu/gui/pauseMenu.hpp @@ -1,4 +1,4 @@ -class CSE_Open_SettingsMenu_BtnBase : cse_gui_buttonBase { +class ACE_Open_SettingsMenu_BtnBase : ACE_gui_buttonBase { idc = -1; text = "Configure [CSE]"; x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; @@ -20,27 +20,27 @@ class CSE_Open_SettingsMenu_BtnBase : cse_gui_buttonBase { colorFocused[] = {0,0,0,1}; periodFocus = 1; periodOver = 1; - action = "(findDisplay 49) closeDisplay 0; createDialog 'cse_settingsMenu';"; + action = "(findDisplay 49) closeDisplay 0; createDialog 'ACE_settingsMenu';"; }; class RscStandardDisplay; class RscDisplayMPInterrupt: RscStandardDisplay { class controls { - class cse_Open_settingsMenu_Btn : CSE_Open_SettingsMenu_BtnBase {}; + class ACE_Open_settingsMenu_Btn : ACE_Open_SettingsMenu_BtnBase {}; }; }; class RscDisplayInterruptEditorPreview: RscStandardDisplay { class controls { - class cse_Open_settingsMenu_Btn : CSE_Open_SettingsMenu_BtnBase {}; + class ACE_Open_settingsMenu_Btn : ACE_Open_SettingsMenu_BtnBase {}; }; }; class RscDisplayInterrupt: RscStandardDisplay { class controls { - class cse_Open_settingsMenu_Btn : CSE_Open_SettingsMenu_BtnBase {}; + class ACE_Open_settingsMenu_Btn : ACE_Open_SettingsMenu_BtnBase {}; }; }; class RscDisplayInterruptEditor3D: RscStandardDisplay { class controls { - class cse_Open_settingsMenu_Btn : CSE_Open_SettingsMenu_BtnBase {}; + class ACE_Open_settingsMenu_Btn : ACE_Open_SettingsMenu_BtnBase {}; }; }; \ No newline at end of file diff --git a/addons/optionsmenu/gui/settingsMenu.h b/addons/optionsmenu/gui/settingsMenu.hpp similarity index 66% rename from addons/optionsmenu/gui/settingsMenu.h rename to addons/optionsmenu/gui/settingsMenu.hpp index 66d5532389..726c25a6c6 100644 --- a/addons/optionsmenu/gui/settingsMenu.h +++ b/addons/optionsmenu/gui/settingsMenu.hpp @@ -1,10 +1,10 @@ -class cse_settingsMenu { +class ACE_settingsMenu { idd = 145246; movingEnable = false; - onLoad = "uiNamespace setVariable ['cse_settingsMenu', _this select 0]; [] call cse_fnc_onSettingsMenuOpen; ['cse_settingsMenu', true] call cse_fnc_gui_blurScreen;missionNamespace setVariable ['CSE_SETTINGS_MENU_OPEN', true];"; - onUnload = "uiNamespace setVariable ['cse_settingsMenu', nil]; saveProfileNamespace; ['cse_settingsMenu', false] call cse_fnc_gui_blurScreen; missionNamespace setVariable ['CSE_SETTINGS_MENU_OPEN', nil];"; + onLoad = QUOTE(uiNamespace setVariable [ARR_2('ACE_settingsMenu', _this select 0)]; [] call FUNC(onSettingsMenuOpen);); + onUnload = QUOTE(uiNamespace setVariable [ARR_2('ACE_settingsMenu', nil)]; saveProfileNamespace;); class controlsBackground { - class HeaderBackground: cse_gui_backgroundBase{ + class HeaderBackground: ACE_gui_backgroundBase { idc = -1; type = CT_STATIC; x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; @@ -27,7 +27,7 @@ class cse_settingsMenu { }; class LeftBackground: CenterBackground { y = "4.8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - h = "12.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + h = "17.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; w = "25 * (((safezoneW / safezoneH) min 1.2) / 40)"; }; class RightBackground: LeftBackground { @@ -49,42 +49,11 @@ class cse_settingsMenu { SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; colorText[] = {0.95, 0.95, 0.95, 0.75}; colorBackground[] = {0,0,0,0}; - text = "Configure [CSE]"; + text = "ACE Settings"; }; - class actionClose : cse_gui_buttonBase { - idc = 10; - text = "Close"; - x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; - y = "17.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "6 * (((safezoneW / safezoneH) min 1.2) / 40)"; - h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.8)"; - animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.5)"; - animTextureOver = "#(argb,8,8,3)color(1,1,1,1)"; - animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)"; - animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)"; - animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)"; - color[] = {1, 1, 1, 1}; - color2[] = {0,0,0, 1}; - colorBackgroundFocused[] = {1,1,1,1}; - colorBackground[] = {1,1,1,1}; - colorbackground2[] = {1,1,1,1}; - colorDisabled[] = {0.5,0.5,0.5,0.8}; - colorFocused[] = {0,0,0,1}; - periodFocus = 1; - periodOver = 1; - action = "closedialog 0;"; - }; - class actionUnassign: actionClose { - idc = 11; - text = "Unassign"; - x = "33 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; - y = "17.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - action = "[0, 0, 0, 0] call cse_fnc_settingsMenuUpdateKeyBinding_F;"; - }; - class labelShow : cse_gui_staticBase { + class labelShow: ACE_gui_staticBase { idc = 12; x = "2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "2.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; @@ -92,7 +61,7 @@ class cse_settingsMenu { h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; text = "Show:"; }; - class labelShow2: cse_gui_staticBase { + class labelShow2: ACE_gui_staticBase { idc = 13; x = "2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "3.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; @@ -101,9 +70,9 @@ class cse_settingsMenu { text = ""; }; - class selectionAction_1 : cse_gui_buttonBase { + class selectionAction_1: ACE_gui_buttonBase { idc = 1000; - text = "Menus"; + text = "Settings"; x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "2.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; w = "9.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; @@ -123,28 +92,30 @@ class cse_settingsMenu { colorFocused[] = {0,0,0,1}; periodFocus = 1; periodOver = 1; - action = "[nil, 0] call cse_fnc_onListBoxShowSelectionChanged;"; + action = QUOTE([MENU_TAB_OPTIONS] call FUNC(onListBoxShowSelectionChanged);); }; - class selectionAction_2 : selectionAction_1 { + + + class selectionAction_2: selectionAction_1 { idc = 1001; - text = "Actions"; - x = "10.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; - action = "[nil, 1] call cse_fnc_onListBoxShowSelectionChanged;"; - }; - class selectionAction_3 : selectionAction_1 { - idc = 1002; - text = "Settings"; - x = "20 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; - action = "[nil, 2] call cse_fnc_onListBoxShowSelectionChanged;"; - }; - class selectionAction_4 : selectionAction_1 { - idc = 1003; text = "Colors"; - x = "29.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; - action = "[nil, 3] call cse_fnc_onListBoxShowSelectionChanged;"; + x = "10.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + action = QUOTE([MENU_TAB_COLORS] call FUNC(onListBoxShowSelectionChanged);); }; - - class listBoxSettingsList: cse_gui_listNBox { + class selectionAction_3: selectionAction_1 { + idc = 1002; + text = "---"; + x = "20 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + action = ""; + }; + class selectionAction_4: selectionAction_1 { + idc = 1003; + text = "---"; + x = "29.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + action = ""; + }; + + class listBoxSettingsList: ACE_gui_listNBox { idc = 200; 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)"; @@ -154,9 +125,10 @@ class cse_settingsMenu { colorBackground[] = {0, 0, 0, 0.9}; colorSelectBackground[] = {0, 0, 0, 0.9}; columns[] = {0.0, 0.5}; + onLBSelChanged = QUOTE(_this call FUNC(settingsMenuUpdateKeyView)); }; - class labelTitle: cse_gui_staticBase { + class labelTitle: ACE_gui_staticBase { idc = 250; x = "27.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "5.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; @@ -166,94 +138,138 @@ class cse_settingsMenu { SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; }; - class labelKey: cse_gui_staticBase { + class labelKey: ACE_gui_staticBase { idc = 300; x = "27.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "6.2 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; w = "10 * (((safezoneW / safezoneH) min 1.2) / 40)"; h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - text = "Key:"; + text = "variableName in quotes"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.6)"; }; class Label2: labelKey { idc = 301; y = "7.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - text = "Shift:"; + text = "Setting:"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; }; - - class Label3: labelKey { - idc = 302; - y = "8.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - text = "Ctrl:"; - }; - class Label4: labelKey { - idc = 303; - y = "9.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - text = "Alt:"; - }; - class comboBox1: cse_gui_comboBoxBase { - idc = 400; - x = "32.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + class ColorLabel_1: Label2 { + idc = 310; y = "7.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "6 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "0.75 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + text = "R:"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.75)"; + }; + class ColorLabel_2: Label2 { + idc = 311; + y = "8.2 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + text = "G:"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.75)"; + }; + class ColorLabel_3: Label2 { + idc = 312; + y = "9.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + text = "B:"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.75)"; + }; + class ColorLabel_4: Label2 { + idc = 313; + y = "10 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + text = "A:"; + SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.75)"; + }; + class comboBox1: ACE_gui_comboBoxBase { + idc = 400; + x = "31.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "7.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "7 * (((safezoneW / safezoneH) min 1.2) / 40)"; h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - }; - class comboBox2: comboBox1 { - idc = 401; - y = "8.4 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - }; - class comboBox3: comboBox1 { - idc = 402; - y = "9.5 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + onLBSelChanged = QUOTE( call FUNC(onListBoxSettingsChanged)); }; - class labelDesc: cse_gui_staticBase { + class sliderBar1: RscXSliderH { + idc = 410; + x = "31.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "7.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "7 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "0.75 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onSliderPosChanged = QUOTE(_this call FUNC(onSliderPosChanged)); + }; + class sliderBar2: sliderBar1 { + idc = 411; + y = "8.2 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + h = "0.75 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onSliderPosChanged = QUOTE(_this call FUNC(onSliderPosChanged)); + }; + class sliderBar3: sliderBar1 { + idc = 412; + y = "9.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + h = "0.75 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onSliderPosChanged = QUOTE(_this call FUNC(onSliderPosChanged)); + }; + class sliderBar4: sliderBar1 { + idc = 413; + y = "10 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + h = "0.75 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + onSliderPosChanged = QUOTE(_this call FUNC(onSliderPosChanged)); + }; + + + + + class labelDesc: ACE_gui_staticBase { idc = 251; x = "27.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; y = "11 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; w = "11 * (((safezoneW / safezoneH) min 1.2) / 40)"; - h = "6 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + h = "11 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; text = ""; style = ST_LEFT + ST_MULTI; lineSpacing = 1; sizeEx = 0.03; }; - - class actionEdit: actionClose { - idc = 150; - text = "Edit"; - x = "26.1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; - y = "17.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - action = "if (!CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F) then{ ctrlSetText [252, 'Press the key you want to assign to this action..']; CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F = true; };"; - }; - class actionCancel: actionClose { - idc = 151; - text = "Cancel"; - x = "20 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; - y = "17.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - action = "ctrlSetText [252, '']; CSE_SETTINGS_MENU_EDIT_CURRENT_SETTING_F = false; "; - }; - - - class notificationDesc: cse_gui_staticBase { - idc = 252; + + class actionClose: ACE_gui_buttonBase { + idc = 10; + text = "Close"; x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; - y = "18 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; - w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)"; - h = "6 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - text = ""; - style = ST_CENTER + ST_SHADOW; - sizeEx = 0.05; + y = "22.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + w = "6 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + animTextureNormal = "#(argb,8,8,3)color(0,0,0,0.8)"; + animTextureDisabled = "#(argb,8,8,3)color(0,0,0,0.5)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)"; + color[] = {1, 1, 1, 1}; + color2[] = {0,0,0, 1}; + colorBackgroundFocused[] = {1,1,1,1}; + colorBackground[] = {1,1,1,1}; + colorbackground2[] = {1,1,1,1}; + colorDisabled[] = {0.5,0.5,0.5,0.8}; + colorFocused[] = {0,0,0,1}; + periodFocus = 1; + periodOver = 1; + action = "closedialog 0;"; }; - class selectionAction_5 : selectionAction_1 { + class action_animation: actionClose { idc = 1100; text = "Fix Animation"; x = "7.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; - y = "17.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; + // action = "if ([player] call ACE_fnc_canInteract && {animationState player == 'deadState' || animationState player == 'unconscious'} && {(vehicle player == player)}) then { [player, 'amovppnemstpsnonwnondnon'] call ACE_fnc_broadcastAnim; };"; + }; + + class action_reset: actionClose { + idc = 1100; + text = "Reset All"; + x = "7.5 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)"; + y = "22.3 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)"; w = "6 * (((safezoneW / safezoneH) min 1.2) / 40)"; h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; - action = "if ([player] call cse_fnc_canInteract && {animationState player == 'deadState' || animationState player == 'unconscious'} && {(vehicle player == player)}) then { [player, 'amovppnemstpsnonwnondnon'] call cse_fnc_broadcastAnim; };"; - }; + action = QUOTE([] call FUNC(resetSettings)); + }; }; }; \ No newline at end of file diff --git a/addons/optionsmenu/script_component.hpp b/addons/optionsmenu/script_component.hpp new file mode 100644 index 0000000000..5120791b76 --- /dev/null +++ b/addons/optionsmenu/script_component.hpp @@ -0,0 +1,19 @@ +#define COMPONENT optionsmenu + +#define DEBUG_MODE_FULL + +#include "\z\ace\addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_OPTIONSMENU + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_OPTIONSMENU + #define DEBUG_SETTINGS DEBUG_SETTINGS_OPTIONSMENU +#endif + +#include "\z\ace\addons\main\script_macros.hpp" + +#define MENU_TAB_OPTIONS 0 +#define MENU_TAB_COLORS 1 +