>>> #N A I X# document on interactive help for menus >>> by Steven Haslam
>>> Public Domain NOTE: Most of the information contained below was given by Ben Harris, to whom
my thanks.

... Handling interactive help on menu choices ...

This is an extension of the existing &502/&503 protocol. &502 gives you a "window handle" that you won't recognise (it's the window handle of the menu the pointer is over). So, what you do is you call "Wimp_GetMenuState" (SWI &400f4, Wimp_PaletteChange+1), with these params: Entry: R0 = 1 (Neither Ben nor I know what this means)
R1 = output block
R2 = window handle

       R3 = icon handle

The Wimp (presumably) looks up the window handle, finds it is a menu, and traces it back up the menu tree until it gets to the menu passed to "Wimp_CreateMenu". It then updates the block with a list of choices, just like you get from Wimp_Poll, the Menu_Selection event, terminated by -1. You can use this to determine which choice is currently highlighted (e.g. by using Wimp_DecodeMenu) and thence to determine what the help message is: this is sent back with message &503 as normal. Note: You need to have passed at least 300 in R0 to Wimp_Initialise to
enable this. But do not do this unless you know the side-effects of passing 300 to Wimp_Initiliase...

>>> Steven Haslam, The #N A I X# >>> JamBoree 3rd 1993