BIS fnc initDisplay: Difference between revisions
Lou Montana (talk | contribs) m (Text replacement - "_{10,} " to "") |
Lou Montana (talk | contribs) m (Text replacement - " <h3 style="display:none">Notes</h3> <dl class="command_description"> <!-- Note Section BEGIN --> <!-- Note Section END --> </dl>" to "") |
||
Line 82: | Line 82: | ||
}} | }} | ||
<h3 style="display:none">Bottom Section</h3> | <h3 style="display:none">Bottom Section</h3> |
Revision as of 06:14, 17 January 2021
Description
- Description:
- A function related to displays that is called on the following occasions:
- Game start
- Display opened
- Display closed
The usual config of a display that uses this function looks like this:
class RscDisplayAAR { scriptName = "RscDisplayAAR"; scriptPath = "GUI"; onLoad = "[""onLoad"",_this,""RscDisplayAAR"",'GUI'] call (uinamespace getvariable 'BIS_fnc_initDisplay')"; onUnload = "[""onUnload"",_this,""RscDisplayAAR"",'GUI'] call (uinamespace getvariable 'BIS_fnc_initDisplay')"; idd = 2121; //...
A macro for easier use is available:
#include "\a3\ui_f\hpp\defineCommon.inc" class RscDisplayAAR { INIT_DISPLAY(RscDisplayAAR,GUI) idd = 2121; //...
translates to the same partial class as above.
On game start:
The function searches for "scriptName" and "scriptPath" entries in the subclasses of the following configs:- configFile
- configFile >> "RscTitles"
- configFile >> "RscInGameUI"
- configFile >> "Cfg3DEN" >> "Attributes"
If both of these attributes are defined (and the attribute "scriptIsInternal" is not defined or 0) then the display function is compiled into the uiNamespace in the following way: The "scriptPath" attribute points to a config attribute in
configFile >> "CfgScriptPaths"
which in turn points to a folder in which thescriptName.sqf
resides, for example "\a3\ui_f\scripts\GUI\RscDisplayAAR.sqf". The function name of this display's uiNamespace function is thereforeRscDisplayAAR_script
.
When the display is opened or closed:
The User Interface Eventhandlers for the onLoad or onUnload event are triggered. The following then happens:
onLoad:- Display is registred:
- The config class of the display (eg. RscDisplayAAR) is saved as "BIS_fnc_initDisplay_configClass" to the display
- A list of open UIs (
uiNamespace getVariable ["PATH_displays", []]
) is updated with the display, where PATH is the afformentioned scriptPath, eg GUI_displays
- The display's script (eg. RscDisplayAAR_script) is executed in uiNamespace
onUnload:
- The display is removed from the list of open displays
- The display's script (eg. RscDisplayAAR_script) is executed in uiNamespace
In both events the following arguments are passed to the display's script:
params ["_mode", "_params", "_class"];
- 0: STRING - Either "onLoad" or "onUnload" for their respective events
- 1: ARRAY - The parameters of the UIEH
- 2: STRING - Config classname of the display
- Execution:
- call
- Groups:
- GUI
Syntax
- Syntax:
- parameters call BIS_fnc_initDisplay
- Parameters:
- parameters: Array
- [ ] (empty array) - init displays during preStart
- [mode, params, displayClass, scriptPath, register]
- mode: String - mode, can be "onLoad" or "onUnload"
- params: Array - params passed from onLoad or onUnload UI event handler
- displayClass: String - Display class, usually to format "RscDisplayXXX"
- scriptPath: String - script path from CfgScriptPaths
- register: Number or Bool - Save variables associated with the display to the uiNamespace. Usually this is false when the function is called from a control.
- Return Value:
- Nothing
Examples
- Example 1:
["onLoad", _this, "RscDisplayAAR", "GUI", true] call (uiNamespace getVariable "BIS_fnc_initDisplay");
Additional Information
- See also:
- See also needed
Notes
-
Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note