So in a presentation about XNodes I was asked a question about what were the valid "Reply" options for an XNode ability. Some abilities have a reply as a 1D array of string and it appears to work like a QMH where you provide a list of states to go to and it does them one after another. I didn't know the answer but I knew scripting could help. So I scanned a bunch of XNodes for what strings were on the block diagram going to the reply and here are the abilities, along with the reply strings I've seen used.
AdaptToInputs
UpdateTerms
UpdateImageAndBounds
GenerateCode
ForceAdaptToInputs
Copy
GenerateCode
UpdateTerms
UpdateImageAndBounds
FailTransaction
DoubleClick
FailTransaction
UpdateTerms
UpdateImageAndBounds
GenerateCode
GenerateCode
PreserveUserCodeGUID
GetError
Message
UpdateTerms
UpdateImageAndBounds
GenerateCode
FailTransaction
ForceAdaptToInputs
OnFontChange
UpdateImageAndBounds
UpdateTerms
OnOperateClick
UpdateImageAndBounds
GenerateCode
OnResize
UpdateTerms
UpdateImageAndBounds
GenerateCode
OnDrop
UpdateTerms
UpdateImageAndBounds
GenerateCode
OperateClick
ShowMenu
RefeeChanged
GenerateCode
UpdateImageAndBounds
UpdateTerms
RespondToDrop
GenerateCode
UpdateTerms
UpdateImageAndBounds
SelectMenu
UpdateImageAndBounds
UpdateTerms
GenerateCode
FailTransaction
ReplaceSelf
Size
UpdateImageAndBounds
UpdateTerms
GenerateCode
UpdateState
GenerateCode
ForceAdaptToInputs
IssueWarning
UpdateStateWithRef
UpdateImageAndBounds
UpdateTerms
GenerateCode
ReplaceSelf
So the unique values that I've seen put into the Reply are the following. I am unsure if only some abilities only support some replies.
UpdateTerms
UpdateImageAndBounds
GenerateCode
ForceAdaptToInputs
FailTransaction
PreserverUserCodeGUID
GetError
ShowMenu
ReplaceSelf
IssueWarning
As for what do these do? Well some are more obvious than others, but here is some text I found in one of the XNodes that helps:
FailTransaction:
LabVIEW will abort the current transaction. This will avoid putting transactions in the undo list when the user just hit cancel. GenerateCode:
This will cause a type propagation if appropriate, and will cause the XNode to GenerateCode when type propagation is run. UpdateImage:
LabVIEW will call Image and invalidate the XNode. UpdateImageAndBounds:
LabVIEW will call Bounds and Image and resize and invalidate the XNode. It will not call Size. Size is only called if the user resizes the XNode (so that you may update your state and return this reply). Make sure that if your terminals need to change size or location, you also return UpdateTerms. This reply will set the transaction type. UpdateTerms:
LabVIEW will call Terms and create, delete, and move terms as necessary. ForceAdaptToInput
When mutating an old, unconfigured Express VI, we need to ForceAdaptToInputs before code gets generated. AdaptToInputs used to always get called before GenerateCode. But that is no longer the case in LV2011.