diff --git a/addons/arsenal/XEH_PREP.hpp b/addons/arsenal/XEH_PREP.hpp index d0cdae5c6b..e9f304d910 100644 --- a/addons/arsenal/XEH_PREP.hpp +++ b/addons/arsenal/XEH_PREP.hpp @@ -7,6 +7,7 @@ PREP(buttonHide); PREP(buttonImport); PREP(buttonLoadoutsDelete); PREP(buttonLoadoutsLoad); +PREP(buttonLoadoutsRename); PREP(buttonLoadoutsSave); PREP(buttonLoadoutsShare); PREP(clearSearchbar); diff --git a/addons/arsenal/defines.hpp b/addons/arsenal/defines.hpp index 73eca3f0c8..25eb775088 100644 --- a/addons/arsenal/defines.hpp +++ b/addons/arsenal/defines.hpp @@ -103,6 +103,7 @@ #define IDC_buttonLoad 305 #define IDC_buttonShare 306 #define IDC_buttonDelete 307 +#define IDC_buttonRename 308 #define IDC_buttonMyLoadouts 401 #define IDC_buttonDefaultLoadouts 402 #define IDC_buttonSharedLoadouts 403 diff --git a/addons/arsenal/functions/fnc_buttonLoadoutsDelete.sqf b/addons/arsenal/functions/fnc_buttonLoadoutsDelete.sqf index 07bf84a669..ae44da578d 100644 --- a/addons/arsenal/functions/fnc_buttonLoadoutsDelete.sqf +++ b/addons/arsenal/functions/fnc_buttonLoadoutsDelete.sqf @@ -13,4 +13,6 @@ private _loadoutName = _contentPanelCtrl lnbText [_contentPanelCursSel, 1]; _data deleteAt (_data find ((_data select {_x select 0 == _loadoutName}) select 0)); -_contentPanelCtrl lnbDeleteRow _contentPanelCursSel; \ No newline at end of file +_contentPanelCtrl lnbDeleteRow _contentPanelCursSel; + +[(findDisplay IDD_ace_arsenal), format ["Loadout '%1' was deleted", _loadoutName]] call FUNC(message); // TBL \ No newline at end of file diff --git a/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf b/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf index 45d4fe82ad..0f015848e0 100644 --- a/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf +++ b/addons/arsenal/functions/fnc_buttonLoadoutsLoad.sqf @@ -53,6 +53,8 @@ switch (GVAR(currentLoadoutsTab)) do { }; }; }; + + [(findDisplay IDD_ace_arsenal), format ["Loadout '%1' was loaded", _loadoutName]] call FUNC(message); // TBL }; case IDC_buttonDefaultLoadouts: { diff --git a/addons/arsenal/functions/fnc_buttonLoadoutsRename.sqf b/addons/arsenal/functions/fnc_buttonLoadoutsRename.sqf new file mode 100644 index 0000000000..67064b6c98 --- /dev/null +++ b/addons/arsenal/functions/fnc_buttonLoadoutsRename.sqf @@ -0,0 +1,29 @@ +#include "script_component.hpp" +#include "..\defines.hpp" + +params ["_display", "_control"]; + +if !(ctrlEnabled _control) exitWith {}; + +private _data = profileNamespace getVariable [QGVAR(saved_loadouts), []]; + +private _contentPanelCtrl = _display displayCtrl IDC_contentPanel; +private _loadoutName = _contentPanelCtrl lnbText [(lnbCurSelRow _contentPanelCtrl), 1]; + +private _editBoxCtrl = _display displayCtrl IDC_textEditBox; +private _editBoxContent = ctrlText _editBoxCtrl; + +private _loadoutData = (_data select {_x select 0 == _loadoutName}) select 0; +private _loadoutIndex = _data find _loadoutData; + +_data set [_loadoutIndex, [_editBoxContent, _loadoutData select 1]]; + +_contentPanelCtrl lnbSetText [[(lnbCurSelRow _contentPanelCtrl), 1], _editBoxContent]; + +[(findDisplay IDD_ace_arsenal), format ["Loadout '%1' was renamed to '%2'", _loadoutName, _editBoxContent]] call FUNC(message); // TBL + +_contentPanelCtrl lnbSort [1, false]; + +for '_i' from 0 to (((lnbsize _contentPanelCtrl) select 0) - 1) do { + if ((_contentPanelCtrl lnbText [_i, 1]) == _editBoxContent) exitwith {_contentPanelCtrl lnbSetCurSelRow _i}; +}; \ No newline at end of file diff --git a/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf b/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf index ce00b3a0c1..f72912c183 100644 --- a/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf +++ b/addons/arsenal/functions/fnc_buttonLoadoutsSave.sqf @@ -43,6 +43,8 @@ switch (GVAR(currentLoadoutsTab)) do { } else { _data set [_data find (_sameNameLoadoutsList select 0), [[_editBoxContent, _loadoutName] select (_loadoutName isEqualTo _editBoxContent), _loadout]]; }; + + [(findDisplay IDD_ace_arsenal), format ["Loadout '%1' was saved", _editBoxContent]] call FUNC(message); // TBL }; case IDC_buttonDefaultLoadouts: { diff --git a/addons/arsenal/functions/fnc_loadoutsChangeTab.sqf b/addons/arsenal/functions/fnc_loadoutsChangeTab.sqf index 9c3038c19f..a27e75a1a6 100644 --- a/addons/arsenal/functions/fnc_loadoutsChangeTab.sqf +++ b/addons/arsenal/functions/fnc_loadoutsChangeTab.sqf @@ -10,6 +10,7 @@ private _shareButtonCtrl = _display displayCtrl IDC_buttonShare; private _saveButtonCtrl = _display displayCtrl IDC_buttonSave; private _loadButtonCtrl = _display displayCtrl IDC_buttonLoad; private _deleteButtonCtrl = _display displayCtrl IDC_buttonDelete; +private _renameButtonCtrl = _display displayCtrl IDC_buttonRename; switch (ctrlIDC _control) do { case IDC_buttonMyLoadouts: { @@ -28,7 +29,7 @@ switch (ctrlIDC _control) do { { _x ctrlEnable false; _x ctrlCommit 0; -} foreach [_shareButtonCtrl, _loadButtonCtrl, _deleteButtonCtrl]; +} foreach [_shareButtonCtrl, _loadButtonCtrl, _deleteButtonCtrl, _renameButtonCtrl]; [_display, _control] call FUNC(fillLoadoutsList); diff --git a/addons/arsenal/functions/fnc_onSelChangedLoadouts.sqf b/addons/arsenal/functions/fnc_onSelChangedLoadouts.sqf index 980583b58a..452e656f49 100644 --- a/addons/arsenal/functions/fnc_onSelChangedLoadouts.sqf +++ b/addons/arsenal/functions/fnc_onSelChangedLoadouts.sqf @@ -9,6 +9,7 @@ private _shareButtonCtrl = _display displayCtrl IDC_buttonShare; private _saveButtonCtrl = _display displayCtrl IDC_buttonSave; private _loadButtonCtrl = _display displayCtrl IDC_buttonLoad; private _deleteButtonCtrl = _display displayCtrl IDC_buttonDelete; +private _renameButtonCtrl = _display displayCtrl IDC_buttonRename; private _textEditBoxCtrl= _display displayCtrl IDC_textEditBox; switch (GVAR(currentLoadoutsTab)) do { @@ -21,8 +22,10 @@ switch (GVAR(currentLoadoutsTab)) do { _shareButtonCtrl ctrlEnable ([false, true] select (GVAR(allowSharedLoadouts))); _shareButtonCtrl ctrlCommit 0; - _deleteButtonCtrl ctrlEnable (_curSel >= 0); - _deleteButtonCtrl ctrlCommit 0; + { + _x ctrlEnable (_curSel >= 0); + _x ctrlCommit 0; + } foreach [_renameButtonCtrl, _deleteButtonCtrl]; _textEditBoxCtrl ctrlSetText (_control lnbText [_curSel, 1]); }; diff --git a/addons/arsenal/ui/RscAttributes.hpp b/addons/arsenal/ui/RscAttributes.hpp index 2447650e70..99f1dbf3be 100644 --- a/addons/arsenal/ui/RscAttributes.hpp +++ b/addons/arsenal/ui/RscAttributes.hpp @@ -755,21 +755,21 @@ class GVAR(loadoutsDisplay) { colorSelect[]={1,1,1,1}; colorSelect2[]={1,1,1,1}; colorPictureRightSelected[]={1,1,1,1}; - columns[]={0, 0.10, 0.45, 0.55, 0.65, 0.75, 0.80, 0.85, 0.90, 0.95}; + columns[]={0, 0.05, 0.40, 0.50, 0.60, 0.70, 0.75, 0.80, 0.85, 0.90}; drawSideArrows=0; disableOverflow=1; onLBSelChanged = QUOTE([ARR_3(ctrlParent (_this select 0), _this select 0, _this select 1)] call FUNC(onSelChangedLoadouts)); x = QUOTE(0); y = QUOTE(5 * GRID_H); w = QUOTE(160 * GRID_W); - h = QUOTE(safezoneH - (67 * GRID_H)); + h = QUOTE(safezoneH - (57 * GRID_H)); sizeEx = QUOTE(7 * GRID_H); }; class textTitle: RscText { idc= -1; text="$STR_DISP_GAME_NAME"; x = QUOTE(5 * GRID_W); - y = QUOTE(safezoneH - (61 * GRID_H)); + y = QUOTE(safezoneH - (51 * GRID_H)); w = QUOTE(15 * GRID_W); h = QUOTE(5 * GRID_H); colorBackground[]={0,0,0,0.2}; @@ -777,44 +777,51 @@ class GVAR(loadoutsDisplay) { class textEditBox: ctrlEdit { idc= IDC_textEditBox; x = QUOTE(20 * GRID_W); - y = QUOTE(safezoneH - (61 * GRID_H)); - w = QUOTE(50 * GRID_W); + y = QUOTE(safezoneH - (51 * GRID_H)); + w = QUOTE(100 * GRID_W); h = QUOTE(5 * GRID_H); }; - class buttonSave: ctrlButton { - idc = IDC_buttonSave; - x = QUOTE(5 * GRID_W); - y = QUOTE(safezoneH - (55 * GRID_H)); - w = QUOTE(30 * GRID_W); - h = QUOTE(10 * GRID_H); - text="Save"; // TBL - tooltip="Save selected loadout"; // TBL - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsSave)); - colorBackground[] = {0,0,0,0.8}; - }; - class buttonLoad: buttonSave { - idc = IDC_buttonLoad; - x = QUOTE(45 * GRID_W); - text="Load"; // TBL - tooltip="Load selected loadout"; // TBL - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsLoad)); - }; - class buttonShare: buttonSave { - idc = IDC_buttonShare; - x = QUOTE(85 * GRID_W); - text="Share"; // TBL - tooltip="Share selected loadout"; // TBL - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsShare)); - }; - class buttonDelete: buttonSave { - idc = IDC_buttonDelete; - x = QUOTE(125 * GRID_W); - text="Delete"; // TBL - tooltip="Delete loadout"; // TBL - onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsDelete)); - }; }; }; + class buttonSave: ctrlButton { + idc = IDC_buttonSave; + x = QUOTE((safezoneW * 0.5) + safezoneX - (75 * GRID_W)); + y = QUOTE(safezoneH + safezoneY - 39 * GRID_H); + w = QUOTE(25 * GRID_W); + h = QUOTE(10 * GRID_H); + text="Save"; // TBL + tooltip="Save selected loadout"; // TBL + onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsSave)); + colorBackground[] = {0,0,0,0.8}; + }; + class buttonRename: buttonSave { + idc = IDC_buttonRename; + x = QUOTE((safezoneW * 0.5) + safezoneX - (45 * GRID_W)); + text="Rename"; // TBL + tooltip="Rename loadout"; // TBL + onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsRename)); + }; + class buttonLoad: buttonSave { + idc = IDC_buttonLoad; + x = QUOTE((safezoneW * 0.5) + safezoneX - (15 * GRID_W)); + text="Load"; // TBL + tooltip="Load selected loadout"; // TBL + onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsLoad)); + }; + class buttonShare: buttonSave { + idc = IDC_buttonShare; + x = QUOTE((safezoneW * 0.5) + safezoneX + (15 * GRID_W)); + text="Share"; // TBL + tooltip="Share selected loadout"; // TBL + onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsShare)); + }; + class buttonDelete: buttonSave { + idc = IDC_buttonDelete; + x = QUOTE((safezoneW * 0.5) + safezoneX + (45 * GRID_W)); + text="Delete"; // TBL + tooltip="Delete loadout"; // TBL + onButtonClick = QUOTE([ARR_2(ctrlparent (_this select 0), _this select 0)] call FUNC(buttonLoadoutsDelete)); + }; class buttonBar: ctrlControlsGroupNoScrollbars { idc = -1; x = QUOTE((safezoneW * 0.5) + safezoneX - (61 * GRID_W));