buttonSetAction: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
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]]
{{Feature | Warning | The action code is expected to be in '''[[SQS Syntax|SQS]]''' format}}
 
|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


| '''buttonSetAction''' [idc, action]
|r1= [[Nothing]]
|p1= [idc, action]: [[Array]]
|p2= idc: [[Number]] - control ID
|p3= action: [[String]] - [[SQS Syntax|SQS]] code body that should be executed when the button/active text is clicked
| [[Nothing]]


|s2= control '''buttonSetAction''' action
|s2= control '''buttonSetAction''' action


|p21= control:  [[Control]] - button 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]], [[ctrlActivate]]
|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.
<pre><nowiki>
<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];"];</nowiki></pre>
[[buttonSetAction]] [100, "[[hint]] [[format]] [""%1 bar"", _foo];"];</code>


</dl>
</dl>
{{GameCategory|arma1|Scripting Commands}}
{{GameCategory|arma2|Scripting Commands}}
{{GameCategory|arma2|Scripting Commands}}
{{GameCategory|arma3|Scripting Commands}}
{{GameCategory|tkoh|Scripting Commands}}


<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 overwride the buttonaction which was set via "action" in the hpp of the dialog
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 15:15, 16 April 2021

Hover & click on the images for description

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