You are correct, the Link action is not able to execute any ProntoScript that may reside on the target button. Additionally, the Link action will only execute the Action List of the target button in cases where the target button doesn't have ProntoScript enabled. That being said, there is a way to accomplish something similar to the Link action, but for ProntoScript. How is this done one might ask? Well, through the use of more ProntoScript naturally. :-P
If you place ProntoScript within the label of a Panel or Button
(tagged accordingly) you can then reference that ProntoScript at any time throughout your configuration file from other ProntoScript using the eval() function.
I do this quite a bit with my configuration file. Any ProntoScript that I use repeatedly throughout my configuration file I'll consolidate in one place, then reference as needed using the eval() function.
Below is an example of how I reference the ProntoScript I use for checking the power and volume status of my home theater receiver. The ProntoScript includes displaying the appropriate speaker symbol and volume level within the GUI.
eval(CF.widget("doGetStatus","psGetStatus","Macros (Bridge)").label);The ProntoScript for checking the power and volume status of my home theater receiver resides on the label of a Panel with the PS tag, "doGetStatus", on a page with the PS tag, "psGetStatus" under a device with the PS tag, "Macros (Bridge)". The above eval() function is then used throughout my configuration file any time I want to check on the status of my home theater receiver, i.e. execute the ProntoScript on the label of the Panel.
Last edited by Lowpro on December 25, 2018 21:02.