|
|
Line 7: |
Line 7: |
| |gr1 = GUI | | |gr1 = GUI |
|
| |
|
| | A function related to displays that is called on the following occasions: | | | This function is a central part of how BI handles UIs. For a full explanation see [[GUI_Tutorial#BIS_fnc_initDisplay|this page]]. |
| * Game start
| |
| * Display opened
| |
| * Display closed
| |
| | |
| {{Feature|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 {{ic|configFile >> "CfgScriptPaths"}} which in turn points to a folder in which the {{ic|scriptName.sqf}} resides, for example "\a3\ui_f\scripts\GUI\RscDisplayAAR.sqf". The function name of this display's uiNamespace function is therefore {{ic|RscDisplayAAR_script}}.
| |
| <br><br>
| |
| When the display is opened or closed:<br>
| |
| The [[User_Interface_Event_Handlers|User Interface Eventhandlers]] for the onLoad or onUnload 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 ({{ic|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
| |
|
| |
|
| | parameters call [[BIS_fnc_initDisplay]] | | | parameters call [[BIS_fnc_initDisplay]] |