... 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