A popup menu is not a control. A choice% control, however, displays a single value that the user selects from a popup menu. A choice% control’s popup menu is built into the control, and it is not accessible to the programmer.
(new popup-menu% [ [title title] [popdown-callback popdown-callback] [demand-callback demand-callback] [font font]]) → (is-a?/c popup-menu%) title : (or/c label-string? false/c) = #f
((is-a?/c popup-menu%) (is-a?/c control-event%) . -> . any) = (lambda (p e) (void))
demand-callback : ((is-a?/c popup-menu%) . -> . any) = (lambda (p) (void)) font : (is-a?/c font%) = normal-control-font
If title contains &, it is handled specially, the same as for menu% titles. A popup menu mnemonic is not useful, but it is supported for consistency with other menu labels.
The popdown-callback procedure is invoked when a popup menu is dismissed. If the popup menu is dismissed without an item being selected, popdown-callback is given a control-event% object with the event type 'menu-popdown-none. If the popup menu is dismissed via an item selection, the item’s callback is invoked first, and then popdown-callback is given a control-event% object with the event type 'menu-popdown.
The demand-callback procedure is called by the default on-demand method with the object itself.
The font argument determines the font for the popup menu’s items.
The context is set before the on-demand method is called, and it is not removed until after the popup-menu’s callback is invoked. (Consequently, it is also set while an item callback is invoked, if the user selected an item.)