ron@oscvax.UUCP (Ron Janzen) (07/29/88)
I was recently playing with hierarchical menus on our Mac II running System Version 5.0 and ran into some problems. I was trying to attach an existing hierarchical menu to another menu using the following piece of code: SetItemCmd( theMenu, submenuItem, hMenuCmd ); SetItemMark( theMenu, submenuItem, submenuId ); where submenuItem is the item number of the menu entry to which I wanted to attach the submenu, submenuId is the menu id of the hierarchical menu that I want to attach there and hMenuCmd is the special command code defined in "Menus.h" to indicate that this is a hierarchical menu. When I did this it did not work. There was garbage where the command key equivalents and check marks usually go. After many different attempts I finally narrowed it down to the definition of the SetItemCmd() function in "Menus.h". This is how they are defined in the original v2.0.2 "Menus.h": pascal void GetItemCmd(menu, item, cmdChar) MenuHandle menu; short item; char *cmdChar; extern 0xA84E; pascal void SetItemCmd(menu, item, cmdChar) MenuHandle menu; short item; char cmdChar; extern 0xA84F; I discovered that if cmdChar is defined as a short instead of a char it works perfectly. I have therefore changed the definitions of cmdChar in my version of "Menus.h" to short *cmdChar; and short cmdChar; respectively. I have a feeling that this may have already been mentioned in this forum before but just in case it hasn't I thought I would mention it. -- Ron Janzen Ontario Science Centre, Toronto ...!{allegra,ihnp4,decvax,pyramid}!utzoo!oscvax!ron