buttonSetAction: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - " <!-- (DIS)?CONTINUE Notes -->" to "") |
m (formatting) |
||
Line 1: | Line 1: | ||
{{RV|type=command | {{RV|type=command | ||
| ofp | |game1= ofp | ||
| | |version1= 1.75 | ||
|game2= ofpe | |||
|version2= 1.00 | |||
|game3= arma1 | |||
|version3= 1.00 | |||
|game4= arma2 | |||
|version4= 1.00 | |||
|game5= arma2oa | |||
|version5= 1.51 | |||
|game6= tkoh | |||
|version6= 1.00 | |||
|game7= arma3 | |||
|version7= 0.50 | |||
|gr1= GUI Control | |gr1= GUI Control | ||
Line 11: | Line 35: | ||
|eff= local | |eff= local | ||
| Set the action of a control of the currently active user dialog. The script statement is executed on button release and <tt>_this</tt> is available, but contains ""; See [[Arma: GUI Configuration]] for more information about user dialogs. Works with: | |descr= Set the action of a control of the currently active user dialog. The script statement is executed on button release and <tt>_this</tt> is available, but contains ""; See [[Arma: GUI Configuration]] for more information about user dialogs. Works with: | ||
* CT_BUTTON | * [[CT_BUTTON]] | ||
* CT_XBUTTON | * [[CT_XBUTTON]] | ||
* CT_ACTIVETEXT | * [[CT_ACTIVETEXT]] | ||
* CT_SHORTCUTBUTTON | * [[CT_SHORTCUTBUTTON]] | ||
|s1= '''buttonSetAction''' [idc, action] | |||
|p1= idc: [[Number]] - Button IDC | |||
|p2= action: [[String]] - '''[[SQS Syntax|SQS]]''' code body that should be executed when the button/active text is clicked | |||
| | |r1= [[Nothing]] | ||
|s2= control '''buttonSetAction''' action | |s2= control '''buttonSetAction''' action | ||
|p21= control: [[Control]] - | |p21= control: [[Control]] - Button control | ||
|p22= action: [[String]] - [[SQS Syntax|SQS]] code body that should be executed when the button/active text is clicked | |||
|p22= action: [[String]] - '''[[SQS Syntax|SQS]]''' code body that should be executed when the button/active text is clicked | |||
|r2= [[Nothing]] | |r2= [[Nothing]] | ||
|x1= <code>[[buttonSetAction]] [100, "[[player]] [[exec]] ""reply.sqs"""];</code> | |x1= <code>[[buttonSetAction]] [100, "[[player]] [[exec]] ""reply.sqs"""];</code> | ||
|x2= <code>_ctrl [[buttonSetAction]] "[[if]] ([[alive]] bob) [[then]] {[[hint]] 'alive'} [[else]] {[[hint]] 'dead'}"; // SQF but SQS compatible, see [[SQS Syntax|SQS]]</code> | |x2= <code>_ctrl [[buttonSetAction]] "[[if]] ([[alive]] bob) [[then]] {[[hint]] 'alive'} [[else]] {[[hint]] 'dead'}"; // SQF but SQS compatible, see [[SQS Syntax|SQS]]</code> | ||
|x3= Script is SQS<code>_control [[buttonSetAction]] "[[hint]] [[format]] ['Is SQS: %1', ![[isNil]] '_time']";</code> | |x3= Script is SQS<code>_control [[buttonSetAction]] "[[hint]] [[format]] ['Is SQS: %1', ![[isNil]] '_time']";</code> | ||
|seealso= [[buttonAction | |seealso= [[buttonAction]] | ||
}} | }} | ||
Line 41: | Line 70: | ||
<dt class="note">[[User:Kungtotte|kungtotte]]<dd class="note"> | <dt class="note">[[User:Kungtotte|kungtotte]]<dd class="note"> | ||
When using buttonSetAction for an ActiveText control from a script, you cannot use any variables local to the script in it. | When using buttonSetAction for an ActiveText control from a script, you cannot use any variables local to the script in it. | ||
< | <code>/* This will print 'any bar' in the hint box, | ||
/* This will print 'any bar' in the hint box, | |||
since _foo has no value according to buttonSetAction */ | since _foo has no value according to buttonSetAction */ | ||
_foo = "foo"; | _foo = "foo"; | ||
buttonSetAction [100, "hint format[""%1 bar"", _foo];"];</ | [[buttonSetAction]] [100, "[[hint]] [[format]] [""%1 bar"", _foo];"];</code> | ||
</dl> | </dl> | ||
<dl class="command_description"> | <dl class="command_description"> | ||
Line 65: | Line 83: | ||
<dt class="note">[[User:Molaron|Molaron]]</dt> | <dt class="note">[[User:Molaron|Molaron]]</dt> | ||
<dd class="note"> | <dd class="note"> | ||
This command does not | This command does not overwrite the button's action that was set via "action" in the .hpp of the dialog | ||
</dd> | </dd> | ||
<dt><dt> | <dt><dt> | ||
Line 73: | Line 91: | ||
To use variables local to the defining script, a syntax like the one below needs to be used: | To use variables local to the defining script, a syntax like the one below needs to be used: | ||
<code>_foo = "foo"; | <code>_foo = "foo"; | ||
buttonSetAction [100, format["hint '%1 bar'", _foo]]; | buttonSetAction [100, [[format]] ["[[hint]] '%1 bar'", _foo]];</code> | ||
</code> | |||
works! thanks to Kronzky for commenting this workaround in the VBS wiki | works! thanks to Kronzky for commenting this workaround in the VBS wiki | ||
</dd> | </dd> | ||
</dl> | </dl> |
Revision as of 14:15, 16 April 2021
Description
- Description:
- 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:
- Groups:
- GUI Control
Syntax
- Syntax:
- buttonSetAction [idc, action]
- Parameters:
- idc: Number - Button IDC
- action: String - SQS code body that should be executed when the button/active text is clicked
- Return Value:
- Nothing
Alternative Syntax
- Syntax:
- control buttonSetAction action
- Parameters:
- control: Control - Button control
- action: String - SQS code body that should be executed when the button/active text is clicked
- Return Value:
- Nothing
Examples
- Example 1:
buttonSetAction [100, "player exec ""reply.sqs"""];
- Example 2:
_ctrl buttonSetAction "if (alive bob) then {hint 'alive'} else {hint 'dead'}"; // SQF but SQS compatible, see SQS
- Example 3:
- Script is SQS
_control buttonSetAction "hint format ['Is SQS: %1', !isNil '_time']";
Additional Information
- See also:
- buttonAction
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
- Posted on October 5, 2009 - 16:23
- kungtotte
-
When using buttonSetAction for an ActiveText control from a script, you cannot use any variables local to the script in it.
/* This will print 'any bar' in the hint box, since _foo has no value according to buttonSetAction */ _foo = "foo"; buttonSetAction [100, "hint format [""%1 bar"", _foo];"];
- Posted on February 15, 2016 - 10:15 (UTC)
- Molaron
- This command does not overwrite the button's action that was set via "action" in the .hpp of the dialog
- Posted on June 11, 2016 - 19:24 (UTC)
- Nomisum
-
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
Categories:
- Scripting Commands
- Introduced with Operation Flashpoint version 1.75
- Operation Flashpoint: New Scripting Commands
- Operation Flashpoint: Scripting Commands
- Operation Flashpoint: Elite: Scripting Commands
- ArmA: Armed Assault: Scripting Commands
- Arma 2: Scripting Commands
- Arma 2: Operation Arrowhead: Scripting Commands
- Take On Helicopters: Scripting Commands
- Arma 3: Scripting Commands
- Command Group: GUI Control
- Scripting Commands: Local Effect