Warning
This command is deprecated. Use ctrlAddEventHandler instead.
Description
Caution
This information is obsolete. Use ctrlAddEventHandler instead.
Set the action of a control of the currently active user dialog. The script statement is executed on button release and _this is available, but contains ""; See Arma: GUI Configuration for more information about user dialogs. Works with:
Syntax
Syntax 1
buttonSetAction [idc, action]
Parameters:
idc: Number - button IDC
action: String - SQS code body that should be executed when the button/active text is clicked
Returns: Nothing
Syntax 2
control buttonSetAction action
Parameters:
control: Control - button control
action: String - SQS code body that should be executed when the button/active text is clicked
Returns: Nothing
Examples
Example 1
buttonSetAction [100, "player exec ""reply.sqs"""];
Example 2
_ctrl buttonSetAction "if (alive bob) then {hint 'alive'} else {hint 'dead'}";
Example 3
Script is SQS:
_control buttonSetAction "hint format ['Is SQS: %1', !isNil '_time']"
See also
buttonAction
When using buttonSetAction for an ActiveText control from a script, you cannot use any variables local to the script in it.
_foo = "foo";
buttonSetAction [100, "hint format [""%1 bar"", _foo];"];
This command does not overwrite the button's action that was set via "action" in the .hpp of the dialog.
To use variables local to the defining script, a syntax like the one below needs to be used:
_foo = "foo";
buttonSetAction [100, format ["hint '%1 bar'", _foo]];
works! thanks to Kronzky for commenting this workaround in the VBS wiki