BIS fnc initDisplay: Difference between revisions
(5th parameter) |
(More in-depth explanation) |
||
Line 9: | Line 9: | ||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
| | | A function related to displays that is called on the following occasions: | ||
* Game start | |||
* Display opened | |||
* Display closed | |||
{{Important|This information is only useful for GUIs in an addon, not for mission level GUIs!}} | |||
< | |||
The usual config of a display that uses this function looks like this: | |||
<syntaxhighlight lang=cpp> | |||
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; | |||
//... | |||
</syntaxhighlight> | |||
A macro for easier use is available: | |||
<syntaxhighlight lang=cpp> | |||
#include "\a3\ui_f\hpp\defineCommon.inc" | |||
class RscDisplayAAR | |||
{ | |||
INIT_DISPLAY(RscDisplayAAR,GUI) | |||
idd = 2121; | |||
//... | |||
</syntaxhighlight> | |||
translates to the same partial class as above.<br> | |||
<br> | |||
On game start:<br> | |||
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 {{Inline code|configFile >> "CfgScriptPaths"}} which in turn points to a folder in which the {{Inline code|scriptName.sqf}} resides, for example "\a3\ui_f\scripts\GUI\RscDisplayAAR.sqf". The function name of this display's uiNamespace function is therefore {{Inline code|RscDisplayAAR_script}}. | |||
<br><br> | |||
When the display is opened or closed:<br> | |||
The [[User_Interface_Event_Handlers|User Interface Eventhandlers]] for the onLoad or unLoad event are triggered. The following then happens:<br> | |||
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 ({{Inline code|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: | |||
<code>params ["_mode", "_params", "_class"];</code> | |||
* 0: STRING - Either "onLoad" or "onUnload" for their respective events | |||
* 1: ARRAY - The parameters of the UIEH | |||
* 2: STRING - Config classname of the display | |||
|DESCRIPTION= | |||
____________________________________________________________________________________________ | ____________________________________________________________________________________________ | ||
Revision as of 15:57, 26 November 2020
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 unLoad 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