adds a menu bar to a window
INCLUDE 'winlib' menubar(Win, MyId, Menulist, Handle)
menubar(Win, Id, List, Handle) (i,i,i,o)
integer(Win) (i) Handle of the parent window.
void(Id) (i) Id of the process receiving messages.
voidlist(List) (i) List of menu items.
integer(Return) (o) Handle of the created menu.
This predicate creates a menu bar in the
Simple Window
or
graphics window
referred to by Win.
Id is the process id of the receiver of the menu messages.
The item list consists of menuitems of the form:
Identifier, options, text
or popup menus:
text(itemlist)
Identifier is an integer used to return the selection of the item, options is one of the
constants defined in winlib.h or 0, text is a string containing the menu item itself. A
& before a letter in text allows selection by keystroke.
A popup menu item contains another menu as argument of its struct body. The struct's
functor is the title of the popup.
Selection of a menu item by the user results in a message of the form
ret(menu(X))
being sent to the process identified by 'Id', where X is the selected item's identifier.
Note: The exact implementation is host server dependent. Menus are handled similarly on most windows systems, but details may differ.
gotowindow(Win), get_my_id(Id), menubar(Win, Id, ['&File'([ 1,0,'&Open' 2,mf_grayed,'&Close', 3,0,'&Print', 0,mf_separator,' ', 4,0,'E&xit']), 30,0,'&Help'],_), rec_msg(_,ret(menu(X))), domenu(X), killmenu(Win).
No runtime errors
prolog-process, client-server, object
killmenu , gotowindow , servertype , get_my_id