BIS fnc initDisplay: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - " <h3 style="display:none">Notes</h3> <dl class="command_description"> <!-- Note Section BEGIN --> <!-- Note Section END --> </dl>" to "")
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|Comments=
{{Function


| arma3 |Game name=
| arma3


|1.00|= Game version
|1.00|= Game version


|gr1 = GUI |GROUP1=
|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
|DESCRIPTION=


| parameters call [[BIS_fnc_initDisplay]] |SYNTAX=
 
| 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.
&nbsp; |PARAMETER1=
&nbsp;


| Nothing |RETURNVALUE=
| Nothing


|x1= <code>["onLoad", [[_this]], "RscDisplayAAR", "GUI", true] [[call]] ([[uiNamespace]] [[getVariable]] "[[BIS_fnc_initDisplay]]");</code> |EXAMPLE1=
|x1= <code>["onLoad", [[_this]], "RscDisplayAAR", "GUI", true] [[call]] ([[uiNamespace]] [[getVariable]] "[[BIS_fnc_initDisplay]]");</code>


| |SEEALSO=
|
}}
}}



Revision as of 00:08, 18 January 2021

Hover & click on the images for description

Description

Description:
A function related to displays that is called on the following occasions:
  • Game start
  • Display opened
  • Display closed
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:

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 the scriptName.sqf resides, for example "\a3\ui_f\scripts\GUI\RscDisplayAAR.sqf". The function name of this display's uiNamespace function is therefore RscDisplayAAR_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


Bottom Section