ctrlSetEventHandler: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\[\[Category:[ _]?Scripting[ _]Commands[ _]Arma[ _]3(\|.*)]]" to "{{GameCategory|arma3|Scripting Commands}}")
m (Text replacement - "<sqf>([^↵][^<]*↵[^<]*)<\/sqf>" to "<sqf> $1 </sqf>")
 
(35 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Command|Comments=
{{RV|type=command
____________________________________________________________________________________________


| arma1 |Game name=
|game1= arma1
|version1= 1.00


|1.00|Game version=
|game2= arma2
|version2= 1.00


|gr1= GUI Control - Event Handlers |GROUP1=
|game3= arma2oa
|gr2= Event Handlers |GROUP2=
|version3= 1.50
____________________________________________________________________________________________


| Sets given event handler of given control.
|game4= tkoh
|version4= 1.00


The provided function should return true/false indicating that the event has handled this event fully or not and whether the engine should execute it is default code or not afterwards.  
|game5= arma3
|version5= 0.50


See [[User_Interface_Event_Handlers|User Interface Event Handlers]] for the full list of handler names.
|gr1= GUI Control - Event Handlers
|gr2= Event Handlers


If applicable, see [[DIK_KeyCodes]] for a list of key code constants, which are relevant to key related user interface events like: [[User_Interface_Event_Handlers#onKeyDown|KeyDown]] & [[User_Interface_Event_Handlers#onKeyUp|KeyUp]].
|descr= {{Feature|obsolete|Use [[ctrlAddEventHandler]] instead as it can stack event handlers.|arma2|1.00}}
{{Important|When using the event names listed [[User Interface Event Handlers|here]] with the [[ctrlAddEventHandler]], [[ctrlSetEventHandler]], [[displayAddEventHandler]] or [[displaySetEventHandler]] commands, the prefix "on" in the event name must be removed (e.g. ''''ButtonDown'''' instead of ''''onButtonDown'''').}}|DESCRIPTION=
Sets given event handler of given control: any previously added event handler is removed.
____________________________________________________________________________________________


| controlName '''ctrlSetEventHandler''' [handlerName, function] |SYNTAX=
{{Feature|informative|
* See [[User Interface Event Handlers]] for the full list of handler names
* See also [[DIK KeyCodes]] for a list of key code constants relevant to key-related events like [[User_Interface_Event_Handlers#onKeyDown|KeyDown]] and [[User_Interface_Event_Handlers#onKeyUp|KeyUp]]
}}
 
{{Feature|important|When using the event names listed [[User Interface Event Handlers|here]] with the [[ctrlAddEventHandler]], [[ctrlSetEventHandler]], [[displayAddEventHandler]] or [[displaySetEventHandler]] commands, the prefix "on" in the event name must be removed (e.g. ''''ButtonDown'''' instead of ''''onButtonDown'''').}}
 
|s1= controlName [[ctrlSetEventHandler]] [handlerName, function]


|p1= controlName: [[Control]] |PARAMETER1=
|p1= controlName: [[Control]]


|p2= [handlerName, function]: [[Array]] |PARAMETER2=
|p2= handlerName: [[String]]
|p3= handlerName: [[String]] |PARAMETER3=
|p4= function: [[String]]|PARAMETER4=
| [[Nothing]] |RETURNVALUE=
____________________________________________________________________________________________
 
|x1= <code>_control [[ctrlSetEventHandler]] ["KeyDown", ""]</code> |EXAMPLE1=


|x2= <code>(_display [[displayCtrl]] 108) [[ctrlSetEventHandler]] ["LBSelChanged","['ListChange',_this] [[call]] FireEvents"];</code> |EXAMPLE2=
|p3= function: [[String]] - should return a [[Boolean]] indicating that the event has handled this event fully or not and whether the engine should execute its default code or not afterwards


|r1= [[Nothing]]


____________________________________________________________________________________________
|x1= <sqf>_control ctrlSetEventHandler ["KeyDown", ""];</sqf>


| [[displaySetEventHandler]], [[ctrlAddEventHandler]], [[ctrlRemoveEventHandler]], [[User_Interface_Event_Handlers|UI Event Handlers]], [[DIK_KeyCodes|DIK KeyCodes]] |SEEALSO=
|x2= <sqf>(_display displayCtrl 108) ctrlSetEventHandler ["LBSelChanged","['ListChange',_this] call FireEvents"];</sqf>


|seealso= [[displaySetEventHandler]] [[ctrlAddEventHandler]] [[ctrlRemoveEventHandler]] [[User_Interface_Event_Handlers|UI Event Handlers]] [[DIK KeyCodes]]
}}
}}


[[Category:Scripting Commands|CTRLSETEVENTHANDLER]]
{{Note
{{GameCategory|arma1|Scripting Commands}}
|user= pierremgi
[[Category:Scripting Commands Arma 2|{{uc:{{PAGENAME}}}}]]
|timestamp= 20210428195900
{{GameCategory|arma3|Scripting Commands}}
|text= This command doesn't work on map.
[[Category:Scripting Commands Take On Helicopters|{{uc:{{PAGENAME}}}}]]
<sqf>
waitUntil { !isNull (findDisplay 12 displayCtrl 51) };
(findDisplay 12 displayCtrl 51) ctrlSetEventHandler ["MouseButtonDblClick", "hint str _this; true"]; // doesn't skip the marker dialog as it should.
</sqf>
}}

Latest revision as of 19:43, 3 September 2024

Hover & click on the images for description

Description

Description:
🕖
This information is obsolete as of Arma 2 v1.00. Reason: Use ctrlAddEventHandler instead as it can stack event handlers.

Sets given event handler of given control: any previously added event handler is removed.

When using the event names listed here with the ctrlAddEventHandler, ctrlSetEventHandler, displayAddEventHandler or displaySetEventHandler commands, the prefix "on" in the event name must be removed (e.g. 'ButtonDown' instead of 'onButtonDown').
Groups:
GUI Control - Event HandlersEvent Handlers

Syntax

Syntax:
controlName ctrlSetEventHandler [handlerName, function]
Parameters:
controlName: Control
handlerName: String
function: String - should return a Boolean indicating that the event has handled this event fully or not and whether the engine should execute its default code or not afterwards
Return Value:
Nothing

Examples

Example 1:
_control ctrlSetEventHandler ["KeyDown", ""];
Example 2:
(_display displayCtrl 108) ctrlSetEventHandler ["LBSelChanged","['ListChange',_this] call FireEvents"];

Additional Information

See also:
displaySetEventHandler ctrlAddEventHandler ctrlRemoveEventHandler UI Event Handlers DIK KeyCodes

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
pierremgi - c
Posted on Apr 28, 2021 - 19:59 (UTC)
This command doesn't work on map.
waitUntil { !isNull (findDisplay 12 displayCtrl 51) }; (findDisplay 12 displayCtrl 51) ctrlSetEventHandler ["MouseButtonDblClick", "hint str _this; true"]; // doesn't skip the marker dialog as it should.