mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Add key handling to 3DEN attribute (#6622)
This commit is contained in:
parent
9b6aa4c8c2
commit
50e233c22c
@ -8,7 +8,7 @@ class Cfg3DEN {
|
|||||||
class GVAR(DefaultLoadoutsListAttribute) {
|
class GVAR(DefaultLoadoutsListAttribute) {
|
||||||
property = QGVAR(DefaultLoadoutsListAttribute);
|
property = QGVAR(DefaultLoadoutsListAttribute);
|
||||||
value = 0;
|
value = 0;
|
||||||
expression = QUOTE(if (!is3DEN) then {GVAR(defaultLoadoutsList) = _value};);
|
expression = QUOTE(if (!is3DEN) then {GVAR(defaultLoadoutsList) = _value});
|
||||||
defaultValue = "[]";
|
defaultValue = "[]";
|
||||||
validate = "none";
|
validate = "none";
|
||||||
wikiType = "[[Array]]";
|
wikiType = "[[Array]]";
|
||||||
@ -102,6 +102,8 @@ class Cfg3DEN {
|
|||||||
idcLeft = IDC_ATTRIBUTE_LIST_LEFT;
|
idcLeft = IDC_ATTRIBUTE_LIST_LEFT;
|
||||||
idcRight = IDC_ATTRIBUTE_LIST_RIGHT;
|
idcRight = IDC_ATTRIBUTE_LIST_RIGHT;
|
||||||
onLBDblClick = QUOTE(_this call FUNC(attributeDblClick));
|
onLBDblClick = QUOTE(_this call FUNC(attributeDblClick));
|
||||||
|
onSetFocus = QUOTE(SETUVAR(QGVAR(attributeFocus),ctrlParentControlsGroup (_this select 0)));
|
||||||
|
onKillFocus = QUOTE(SETUVAR(QGVAR(attributeFocus),nil));
|
||||||
x = QUOTE(5 * ATTRIBUTE_W);
|
x = QUOTE(5 * ATTRIBUTE_W);
|
||||||
y = QUOTE(35.83 * ATTRIBUTE_H);
|
y = QUOTE(35.83 * ATTRIBUTE_H);
|
||||||
w = QUOTE(125 * ATTRIBUTE_W);
|
w = QUOTE(125 * ATTRIBUTE_W);
|
||||||
|
34
addons/arsenal/Display3DEN.hpp
Normal file
34
addons/arsenal/Display3DEN.hpp
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
class Display3DEN {
|
||||||
|
class ContextMenu: ctrlMenu {
|
||||||
|
class Items {
|
||||||
|
class Arsenal {
|
||||||
|
items[]= {"aceArsenal", "virtualArsenal"};
|
||||||
|
};
|
||||||
|
class virtualArsenal {
|
||||||
|
text = "BI Virtual Arsenal";
|
||||||
|
action = QUOTE(['arsenal'] call bis_fnc_3DENEntityMenu);
|
||||||
|
value = 0;
|
||||||
|
data = "Arsenal";
|
||||||
|
opensNewWindow = 1;
|
||||||
|
};
|
||||||
|
class aceArsenal: virtualArsenal {
|
||||||
|
text = "ACE Arsenal";
|
||||||
|
action = QUOTE(call FUNC(open3DEN));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
class Controls {
|
||||||
|
class MenuStrip: ctrlMenuStrip {
|
||||||
|
class Items {
|
||||||
|
class Tools {
|
||||||
|
items[] += {"ACE_arsenal_portVALoadouts"};
|
||||||
|
};
|
||||||
|
class ACE_arsenal_portVALoadouts {
|
||||||
|
text = CSTRING(portLoadoutsText);
|
||||||
|
picture = QPATHTOEF(common,data\logo_ace3_ca.paa);
|
||||||
|
action = "call ace_arsenal_fnc_portVALoadouts;";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
@ -6,6 +6,7 @@ PREP(attributeAddItems);
|
|||||||
PREP(attributeClear);
|
PREP(attributeClear);
|
||||||
PREP(attributeDblClick);
|
PREP(attributeDblClick);
|
||||||
PREP(attributeInit);
|
PREP(attributeInit);
|
||||||
|
PREP(attributeKeyDown);
|
||||||
PREP(attributeLoad);
|
PREP(attributeLoad);
|
||||||
PREP(attributeMode);
|
PREP(attributeMode);
|
||||||
PREP(attributeSelect);
|
PREP(attributeSelect);
|
||||||
|
@ -15,6 +15,7 @@ class CfgPatches {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#include "ui\RscAttributes.hpp"
|
#include "ui\RscAttributes.hpp"
|
||||||
|
#include "Display3DEN.hpp"
|
||||||
#include "Cfg3DEN.hpp"
|
#include "Cfg3DEN.hpp"
|
||||||
#include "CfgEventHandlers.hpp"
|
#include "CfgEventHandlers.hpp"
|
||||||
#include "RscDisplayMain.hpp"
|
#include "RscDisplayMain.hpp"
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
* [CONTROL, 0] call ace_arsenal_fnc_attributeAddItems
|
* [CONTROL] call ace_arsenal_fnc_attributeAddItems
|
||||||
*
|
*
|
||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
|
39
addons/arsenal/functions/fnc_attributeKeyDown.sqf
Normal file
39
addons/arsenal/functions/fnc_attributeKeyDown.sqf
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
#include "\a3\ui_f\hpp\defineDIKCodes.inc"
|
||||||
|
/*
|
||||||
|
* Author: mharis001
|
||||||
|
* Handles keyboard input for the 3DEN attribute.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: Display <DISPLAY>
|
||||||
|
* 1: Key code <NUMBER>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* Handled <BOOL>
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* [DISPLAY, 0] call ace_arsenal_fnc_attributeKeyDown
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
params ["_display", "_keyCode"];
|
||||||
|
TRACE_2("Attribute key down",_display,_keyCode);
|
||||||
|
|
||||||
|
// Exit if attribute is not in focus
|
||||||
|
private _controlsGroup = uiNamespace getVariable QGVAR(attributeFocus);
|
||||||
|
if (isNil "_controlsGroup") exitWith {false};
|
||||||
|
|
||||||
|
switch (_keyCode) do {
|
||||||
|
case DIK_LEFT;
|
||||||
|
case DIK_NUMPADMINUS: {
|
||||||
|
[_controlsGroup, false] call FUNC(attributeSelect);
|
||||||
|
true
|
||||||
|
};
|
||||||
|
case DIK_RIGHT;
|
||||||
|
case DIK_NUMPADPLUS: {
|
||||||
|
[_controlsGroup, true] call FUNC(attributeSelect);
|
||||||
|
true
|
||||||
|
};
|
||||||
|
default {false};
|
||||||
|
};
|
@ -23,6 +23,11 @@ TRACE_1("Initializing 3DEN attribute",_value);
|
|||||||
// Store working attribute value
|
// Store working attribute value
|
||||||
uiNamespace setVariable [QGVAR(attributeValue), _value];
|
uiNamespace setVariable [QGVAR(attributeValue), _value];
|
||||||
|
|
||||||
|
// Add keyDown EH to display
|
||||||
|
// Does not work properly when added to controls group
|
||||||
|
private _display = ctrlParent _controlsGroup;
|
||||||
|
_display displayAddEventHandler ["KeyDown", {call FUNC(attributeKeyDown)}];
|
||||||
|
|
||||||
// Handle selected mode
|
// Handle selected mode
|
||||||
if (_value select 1 > 0) then {
|
if (_value select 1 > 0) then {
|
||||||
(_controlsGroup controlsGroupCtrl IDC_ATTRIBUTE_MODE) lbSetCurSel 1;
|
(_controlsGroup controlsGroupCtrl IDC_ATTRIBUTE_MODE) lbSetCurSel 1;
|
||||||
|
@ -266,38 +266,3 @@ class ctrlMapEmpty;
|
|||||||
class ctrlMapMain;
|
class ctrlMapMain;
|
||||||
class ctrlListNBox;
|
class ctrlListNBox;
|
||||||
class ctrlCheckboxToolbar;
|
class ctrlCheckboxToolbar;
|
||||||
|
|
||||||
class Display3DEN {
|
|
||||||
class ContextMenu :ctrlMenu {
|
|
||||||
class Items {
|
|
||||||
class Arsenal {
|
|
||||||
items[]= {"aceArsenal", "virtualArsenal"};
|
|
||||||
};
|
|
||||||
class virtualArsenal {
|
|
||||||
text = "BI Virtual Arsenal";
|
|
||||||
action= QUOTE(['arsenal'] call bis_fnc_3DENEntityMenu);
|
|
||||||
value=0;
|
|
||||||
data="Arsenal";
|
|
||||||
opensNewWindow=1;
|
|
||||||
};
|
|
||||||
class aceArsenal: virtualArsenal {
|
|
||||||
text = "ACE Arsenal";
|
|
||||||
action= QUOTE(call FUNC(open3DEN));
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
class Controls {
|
|
||||||
class MenuStrip: ctrlMenuStrip {
|
|
||||||
class Items {
|
|
||||||
class Tools {
|
|
||||||
items[] += {"ACE_arsenal_portVALoadouts"};
|
|
||||||
};
|
|
||||||
class ACE_arsenal_portVALoadouts {
|
|
||||||
text = CSTRING(portLoadoutsText);
|
|
||||||
picture = QPATHTOEF(common,data\logo_ace3_ca.paa);
|
|
||||||
action = "call ace_arsenal_fnc_portVALoadouts;";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
Loading…
Reference in New Issue
Block a user