+ case WXK_UP :
+ macKey = kUpArrowCharCode ;
+ glyph = kMenuUpArrowGlyph ;
+ break ;
+
+ case WXK_RIGHT :
+ macKey = kRightArrowCharCode ;
+ glyph = kMenuRightArrowGlyph ;
+ break ;
+
+ case WXK_DOWN :
+ macKey = kDownArrowCharCode ;
+ glyph = kMenuDownArrowGlyph ;
+ break ;
+
+ default :
+ macKey = toupper( key ) ;
+ break ;
+ }
+
+ // we now allow non command key shortcuts
+ // remove in case this gives problems
+ if ( !explicitCommandKey )
+ modifiers |= kMenuNoCommandModifier ;
+ }
+
+ // 1d and 1e have special meaning to SetItemCmd, so
+ // do not use for these character codes.
+ if (key != WXK_UP && key != WXK_RIGHT)
+ SetItemCmd( menu, item , macKey );
+
+ SetMenuItemModifiers( menu, item , modifiers ) ;
+
+ if ( glyph )
+ SetMenuItemKeyGlyph( menu, item , glyph ) ;
+ }
+}
+
+void UMAAppendMenuItem( MenuRef menu , const wxString& title, wxFontEncoding encoding , wxAcceleratorEntry *entry )
+{
+ MacAppendMenu(menu, "\pA");
+
+ // don't attempt to interpret metacharacters like a '-' at the beginning (would become a separator otherwise)
+ ChangeMenuItemAttributes( menu , ::CountMenuItems(menu), kMenuItemAttrIgnoreMeta , 0 ) ;
+ UMASetMenuItemText(menu, (SInt16) ::CountMenuItems(menu), title , encoding );
+ UMASetMenuItemShortcut( menu , (SInt16) ::CountMenuItems(menu), entry ) ;
+}
+
+void UMAInsertMenuItem( MenuRef menu , const wxString& title, wxFontEncoding encoding , MenuItemIndex item , wxAcceleratorEntry *entry )