BIS fnc initDisplay: Difference between revisions
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 "") |
Lou Montana (talk | contribs) m (Text replacement - " *\| *([Cc]omments|COMMENTS|[Gg]ame [Nn]ame|Game [Vv]ersion|Game Version \(number surrounded by NO SPACES\)|Multiplayer Arguments \("local" or "global"\)|Multiplayer Effects \("local" or "global"\)|Multiplayer Execution \("server" o...) |
||
Line 1: | Line 1: | ||
{{Function | {{Function | ||
| arma3 | | arma3 | ||
|1.00|= Game version | |1.00|= Game version | ||
|gr1 = GUI | |gr1 = GUI | ||
| A function related to displays that is called on the following occasions: | | A function related to displays that is called on the following occasions: | ||
Line 61: | Line 61: | ||
* 1: ARRAY - The parameters of the UIEH | * 1: ARRAY - The parameters of the UIEH | ||
* 2: STRING - Config classname of the display | * 2: STRING - Config classname of the display | ||
| parameters call [[BIS_fnc_initDisplay]] | |||
| parameters call [[BIS_fnc_initDisplay]] | |||
|p1= parameters: [[Array]] | |p1= parameters: [[Array]] | ||
Line 73: | Line 73: | ||
** scriptPath: [[String]] - script path from CfgScriptPaths | ** scriptPath: [[String]] - script path from CfgScriptPaths | ||
** register: [[Number]] or [[Bool]] - Save variables associated with the display to the uiNamespace. Usually this is <tt>false</tt> when the function is called from a control. | ** register: [[Number]] or [[Bool]] - Save variables associated with the display to the uiNamespace. Usually this is <tt>false</tt> when the function is called from a control. | ||
| | ||
| Nothing | | Nothing | ||
|x1= <code>["onLoad", [[_this]], "RscDisplayAAR", "GUI", true] [[call]] ([[uiNamespace]] [[getVariable]] "[[BIS_fnc_initDisplay]]");</code> | |x1= <code>["onLoad", [[_this]], "RscDisplayAAR", "GUI", true] [[call]] ([[uiNamespace]] [[getVariable]] "[[BIS_fnc_initDisplay]]");</code> | ||
| | | | ||
}} | }} | ||
Revision as of 23:08, 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