createMacro: Difference between revisions

From RPTools Wiki
Jump to navigation Jump to search
m (added warning about JSON key "index")
mNo edit summary
Line 31: Line 31:
{{param|props|A [[String Property List]] or [[JSON Object]] containing the properties for the button.
{{param|props|A [[String Property List]] or [[JSON Object]] containing the properties for the button.
** {{code|applyToSelected}} - Should the macro be applied to the selected tokens.
** {{code|applyToSelected}} - Should the macro be applied to the selected tokens.
** {{code|autoExec}} - If the macro will be automatically executed when the button is clicked, accepts {{true}} or {{false}}.
** {{code|autoExecute}} - If the macro will be automatically executed when the button is clicked, accepts {{true}} or {{false}}.
** {{code|color}} - The name of the color for the button.
** {{code|color}} - The name of the color for the button.
** {{code|command}} - The command for the macro (only when using JSON version of function).
** {{code|command}} - The command for the macro (only when using JSON version of function).
Line 46: Line 46:
** {{code|compare}} - Takes a [[JSON Array]] which can contain one or more of the following keywords (only usable with JSON version of the function).
** {{code|compare}} - Takes a [[JSON Array]] which can contain one or more of the following keywords (only usable with JSON version of the function).
*** {{code|applyToSelected}} - Use the macro applyToSelected for common macro comparisons.
*** {{code|applyToSelected}} - Use the macro applyToSelected for common macro comparisons.
*** {{code|autoExec}} - Use the macro autoExec for common macro comparisons.
*** {{code|autoExecute}} - Use the macro autoExec for common macro comparisons.
*** {{code|command}} - Use the macro command for common macro comparisons.
*** {{code|command}} - Use the macro command for common macro comparisons.
*** {{code|group}} - Use the macro group for common macro comparisons.
*** {{code|group}} - Use the macro group for common macro comparisons.
Line 58: Line 58:
|example=
|example=
<source lang="mtmacro" line>
<source lang="mtmacro" line>
[createMacro("Test", "this is a test", "autoExec=true;color=blue", ";") ]
[createMacro("Test", "this is a test", "autoExecute=true;color=blue", ";") ]
[createMacro("Another Test", "this is a test",  
[createMacro("Another Test", "this is a test",  
             "autoExec=true;color=red;fontColor=white", ";") ]
             "autoExecute=true;color=red;fontColor=white", ";") ]
</source>
</source>
Will create the following buttons on the current token.
Will create the following buttons on the current token.

Revision as of 21:51, 23 July 2009

 This article is a stub, you can help the RPTools Wiki project by contributing content to expand this article.
 This article needs: Examples using the new functionality.

createMacro() Function

Introduced in version 1.3b48
Creates a macro button for the Current Token and returns the index of the newly created button.

Usage

createMacro(label, command)
createMacro(label, command, props)
createMacro(label, command, props, delim)
createMacro(label, command, props, delim, id)

JSON-only syntax

createMacro(props)
createMacro(props, id)

Parameters

  • label - The label for the macro button.
  • command - The command to run when the macro button is clicked, or the macro is called.
  • props - A String Property List or JSON Object containing the properties for the button.
    • applyToSelected - Should the macro be applied to the selected tokens.
    • autoExecute - If the macro will be automatically executed when the button is clicked, accepts true(1) or false(0).
    • color - The name of the color for the button.
    • command - The command for the macro (only when using JSON version of function).
    • fontColor - The name of the font color for the button.
    • fontSize - The size of the font for the button.
    • includeLabel - If the label will be output when the button is clicked. Accepts true(1) or false(0).
    • group - The name of the group that the button belongs to.
    • sortBy - The sort by value of the macro button.
    • label - The label for the button.
    • maxWidth - The maximum width of the button.
    • minWidth - The minimum width of the button.
    • playerEditable - Is the button player editable, accepts true(1) or false(0).
    • tooltip - The tool tip for the macro button.
    • compare - Takes a JSON Array which can contain one or more of the following keywords (only usable with JSON version of the function).
      • applyToSelected - Use the macro applyToSelected for common macro comparisons.
      • autoExecute - Use the macro autoExec for common macro comparisons.
      • command - Use the macro command for common macro comparisons.
      • group - Use the macro group for common macro comparisons.
      • includeLabel - Use the macro includeLabel for common macro comparisons.
      • sortPrefix - Use the macro sortPrefix for common macro comparisons.
  • delim - The delimiter used in the String Property List that is sent to the props parameter, defaults to ";". If you are sending a JSON Object to the props parameter, and using the id parameter, you can set this to "json".
  • id - The token id of the token that the macro is created on.

     Note: This parameter can only be used in a Trusted Macro

Note: It appears that if a JSON object is passed as props that contains a key of index and that macro index already exists in the destination token, the existing macro will be overwritten. A workaround is to remove that key from the JSON object prior to calling this function.

Example

[createMacro("Test", "this is a test", "autoExecute=true;color=blue", ";") ]
[createMacro("Another Test", "this is a test", 
             "autoExecute=true;color=red;fontColor=white", ";") ]

Will create the following buttons on the current token.


Version Changes

  • 1.3b49 - Added json delimiter option.
  • 1.3b51 - Added id parameter option, and JSON-only parameter syntax.
  • 1.3b53 - Added ability for command, compare, playerEditable, applyToSelected, autoExec, group, and tooltip parameters.