changes for supporting more menu shortcuts
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_4_BRANCH@17952 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -46,7 +46,7 @@ int wxMenuItem::MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShort
|
||||
{
|
||||
char *p = (char *) &outMacItemText[1] ;
|
||||
short macModifiers = 0 ;
|
||||
char macShortCut = 0 ;
|
||||
SInt16 macShortCut = 0 ;
|
||||
const char *inItemName ;
|
||||
wxString inItemTextMac ;
|
||||
|
||||
@@ -72,31 +72,6 @@ int wxMenuItem::MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShort
|
||||
{
|
||||
switch ( *inItemName )
|
||||
{
|
||||
// special characters for macintosh menus -> use some replacement
|
||||
case ';' :
|
||||
*p++ = ',' ;
|
||||
break ;
|
||||
case '^' :
|
||||
*p++ = ' ' ;
|
||||
break ;
|
||||
case '!' :
|
||||
*p++ = ' ' ;
|
||||
break ;
|
||||
case '<' :
|
||||
*p++ = '[' ;
|
||||
break ;
|
||||
case '>' :
|
||||
*p++ = ']' ;
|
||||
break ;
|
||||
case '/' :
|
||||
*p++ = '|' ;
|
||||
break ;
|
||||
case '(' :
|
||||
*p++ = '[' ;
|
||||
break ;
|
||||
case ')' :
|
||||
*p++ = ']' ;
|
||||
break ;
|
||||
// shortcuts
|
||||
case '&' :
|
||||
{
|
||||
@@ -115,43 +90,71 @@ int wxMenuItem::MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShort
|
||||
case '\t' :
|
||||
{
|
||||
++inItemName ;
|
||||
while( *inItemName )
|
||||
bool skip = false ;
|
||||
bool explicitCommandKey = false ;
|
||||
while( *inItemName && !skip )
|
||||
{
|
||||
if (strncmp("Ctrl", inItemName, 4) == 0)
|
||||
if (wxStrnicmp("Ctrl", inItemName, 4) == 0)
|
||||
{
|
||||
inItemName = inItemName + 5;
|
||||
macShortCut = *inItemName;
|
||||
explicitCommandKey = true ;
|
||||
}
|
||||
else if (strncmp("Cntrl", inItemName, 5) == 0)
|
||||
else if (wxStrnicmp("Cntrl", inItemName, 5) == 0)
|
||||
{
|
||||
inItemName = inItemName + 6;
|
||||
macShortCut = *inItemName;
|
||||
explicitCommandKey = true ;
|
||||
}
|
||||
else if (strncmp("Alt", inItemName, 3) == 0)
|
||||
else if (wxStrnicmp("Alt", inItemName, 3) == 0)
|
||||
{
|
||||
inItemName = inItemName + 4;
|
||||
macModifiers |= kMenuOptionModifier ;
|
||||
macShortCut = *inItemName ;
|
||||
}
|
||||
else if (strncmp("Shift", inItemName, 5) == 0)
|
||||
else if (wxStrnicmp("Shift", inItemName, 5) == 0)
|
||||
{
|
||||
inItemName = inItemName + 6;
|
||||
macModifiers |= kMenuShiftModifier ;
|
||||
macShortCut = *inItemName ;
|
||||
}
|
||||
else if (strncmp("F", inItemName, 1) == 0)
|
||||
{
|
||||
inItemName += strlen( inItemName ) ;
|
||||
// no function keys at the moment
|
||||
// macModifiers |= kMenuShiftModifier ;
|
||||
// macShortCut = *inItemName ;
|
||||
}
|
||||
else
|
||||
{
|
||||
break ;
|
||||
skip = true ;
|
||||
}
|
||||
}
|
||||
|
||||
if ( *inItemName )
|
||||
{
|
||||
if ( strlen(inItemName) == 1 )
|
||||
{
|
||||
macShortCut = *inItemName;
|
||||
}
|
||||
else if ( !wxStricmp( inItemName , "Delete" ) || !wxStricmp( inItemName , "Del" ) )
|
||||
{
|
||||
macShortCut = WXK_DELETE ;
|
||||
}
|
||||
else if ( !wxStricmp( inItemName , "Back" ) || !wxStricmp( inItemName , "Backspace" ) )
|
||||
{
|
||||
macShortCut = WXK_BACK ;
|
||||
}
|
||||
else if ( !wxStricmp( inItemName , "Return" ) )
|
||||
{
|
||||
macShortCut = WXK_RETURN ;
|
||||
}
|
||||
else if ( !wxStricmp( inItemName , "Enter" ) )
|
||||
{
|
||||
macShortCut = kEnterCharCode ;
|
||||
}
|
||||
else if ( *inItemName == 'F' )
|
||||
{
|
||||
int fkey = atol(inItemName+1) ;
|
||||
if (fkey >= 1 && fkey < 15 )
|
||||
{
|
||||
macShortCut = WXK_F1 + fkey - 1 ;
|
||||
}
|
||||
if ( !explicitCommandKey )
|
||||
macModifiers |= kMenuNoCommandModifier ;
|
||||
}
|
||||
}
|
||||
|
||||
inItemName += strlen( inItemName ) ;
|
||||
|
||||
if ( *inItemName == 0 )
|
||||
--inItemName ;
|
||||
|
||||
|
@@ -237,33 +237,157 @@ void UMAInsertSubMenuItem( MenuRef menu , StringPtr l , MenuItemIndex item , SIn
|
||||
SetMenuItemHierarchicalID( menu , item , id ) ;
|
||||
}
|
||||
|
||||
void UMASetMenuItemShortcut( MenuRef menu , MenuItemIndex item , SInt16 key , UInt8 modifiers )
|
||||
{
|
||||
if ( key )
|
||||
{
|
||||
SInt16 glyph = 0 ;
|
||||
SInt16 macKey = key ;
|
||||
if ( key >= WXK_F1 && key <= WXK_F15 )
|
||||
{
|
||||
macKey = kFunctionKeyCharCode ;
|
||||
glyph = kMenuF1Glyph + ( key - WXK_F1 ) ;
|
||||
if ( key >= WXK_F13 )
|
||||
glyph += 13 ;
|
||||
switch( key )
|
||||
{
|
||||
case WXK_F1 :
|
||||
macKey += ( 0x7a << 8 ) ;
|
||||
break ;
|
||||
case WXK_F2 :
|
||||
macKey += ( 0x78 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F3 :
|
||||
macKey += ( 0x63 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F4 :
|
||||
macKey += ( 0x76 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F5 :
|
||||
macKey += ( 0x60 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F6 :
|
||||
macKey += ( 0x61 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F7 :
|
||||
macKey += ( 0x62 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F8 :
|
||||
macKey += ( 0x64 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F9 :
|
||||
macKey += ( 0x65 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F10 :
|
||||
macKey += ( 0x6D << 8 ) ;
|
||||
break ;
|
||||
case WXK_F11 :
|
||||
macKey += ( 0x67 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F12 :
|
||||
macKey += ( 0x6F << 8 ) ;
|
||||
break ;
|
||||
case WXK_F13 :
|
||||
macKey += ( 0x69 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F14 :
|
||||
macKey += ( 0x6B << 8 ) ;
|
||||
break ;
|
||||
case WXK_F15 :
|
||||
macKey += ( 0x71 << 8 ) ;
|
||||
break ;
|
||||
default :
|
||||
break ;
|
||||
} ;
|
||||
// unfortunately this does not yet trigger the right key ,
|
||||
// for some reason mac justs picks the first function key menu
|
||||
// defined, so we turn this off
|
||||
macKey = 0 ;
|
||||
glyph = 0 ;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch( key )
|
||||
{
|
||||
case WXK_BACK :
|
||||
macKey = kBackspaceCharCode ;
|
||||
glyph = kMenuDeleteLeftGlyph ;
|
||||
break ;
|
||||
case WXK_TAB :
|
||||
macKey = kTabCharCode ;
|
||||
glyph = kMenuTabRightGlyph ;
|
||||
break ;
|
||||
case kEnterCharCode :
|
||||
macKey = kEnterCharCode ;
|
||||
glyph = kMenuEnterGlyph ;
|
||||
break ;
|
||||
case WXK_RETURN :
|
||||
macKey = kReturnCharCode ;
|
||||
glyph = kMenuReturnGlyph ;
|
||||
break ;
|
||||
case WXK_ESCAPE :
|
||||
macKey = kEscapeCharCode ;
|
||||
glyph = kMenuEscapeGlyph ;
|
||||
break ;
|
||||
case WXK_SPACE :
|
||||
macKey = ' ' ;
|
||||
glyph = kMenuSpaceGlyph ;
|
||||
break ;
|
||||
case WXK_DELETE :
|
||||
macKey = kDeleteCharCode ;
|
||||
glyph = kMenuDeleteRightGlyph ;
|
||||
break ;
|
||||
case WXK_CLEAR :
|
||||
macKey = kClearCharCode ;
|
||||
glyph = kMenuClearGlyph ;
|
||||
break ;
|
||||
case WXK_PRIOR : // PAGE UP
|
||||
macKey = kPageUpCharCode ;
|
||||
glyph = kMenuPageUpGlyph ;
|
||||
break ;
|
||||
case WXK_NEXT :
|
||||
macKey = kPageDownCharCode ;
|
||||
glyph = kMenuPageDownGlyph ;
|
||||
break ;
|
||||
case WXK_LEFT :
|
||||
macKey = kLeftArrowCharCode ;
|
||||
glyph = kMenuLeftArrowGlyph ;
|
||||
break ;
|
||||
case WXK_UP :
|
||||
macKey = kUpArrowCharCode ;
|
||||
glyph = kMenuUpArrowGlyph ;
|
||||
break ;
|
||||
case WXK_RIGHT :
|
||||
macKey = kRightArrowCharCode ;
|
||||
glyph = kMenuRightArrowGlyph ;
|
||||
break ;
|
||||
case WXK_DOWN :
|
||||
macKey = kDownArrowCharCode ;
|
||||
glyph = kMenuDownArrowGlyph ;
|
||||
break ;
|
||||
}
|
||||
}
|
||||
|
||||
SetItemCmd( menu, item , macKey );
|
||||
SetMenuItemModifiers(menu, item , modifiers ) ;
|
||||
|
||||
if ( glyph )
|
||||
SetMenuItemKeyGlyph(menu, item , glyph ) ;
|
||||
}
|
||||
}
|
||||
|
||||
void UMAAppendMenuItem( MenuRef menu , StringPtr l , SInt16 key, UInt8 modifiers )
|
||||
{
|
||||
Str255 label ;
|
||||
memcpy( label , l , l[0]+1 ) ;
|
||||
if ( key )
|
||||
{
|
||||
int pos = label[0] ;
|
||||
label[++pos] = '/';
|
||||
label[++pos] = toupper( key );
|
||||
label[0] = pos ;
|
||||
}
|
||||
MacAppendMenu( menu , label ) ;
|
||||
MacAppendMenu(menu, "\pA");
|
||||
SetMenuItemText(menu, (SInt16) ::CountMenuItems(menu), l);
|
||||
UMASetMenuItemShortcut( menu , (SInt16) ::CountMenuItems(menu), key , modifiers ) ;
|
||||
}
|
||||
|
||||
void UMAInsertMenuItem( MenuRef menu , StringPtr l , MenuItemIndex item , SInt16 key, UInt8 modifiers )
|
||||
{
|
||||
Str255 label ;
|
||||
memcpy( label , l , l[0]+1 ) ;
|
||||
if ( key )
|
||||
{
|
||||
int pos = label[0] ;
|
||||
label[++pos] = '/';
|
||||
label[++pos] = toupper( key );
|
||||
label[0] = pos ;
|
||||
}
|
||||
MacInsertMenuItem( menu , label , item) ;
|
||||
MacInsertMenuItem( menu , "\p" , item) ;
|
||||
SetMenuItemText(menu, item , l);
|
||||
UMASetMenuItemShortcut( menu , item , key , modifiers ) ;
|
||||
}
|
||||
|
||||
// quickdraw
|
||||
|
@@ -46,7 +46,7 @@ int wxMenuItem::MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShort
|
||||
{
|
||||
char *p = (char *) &outMacItemText[1] ;
|
||||
short macModifiers = 0 ;
|
||||
char macShortCut = 0 ;
|
||||
SInt16 macShortCut = 0 ;
|
||||
const char *inItemName ;
|
||||
wxString inItemTextMac ;
|
||||
|
||||
@@ -72,31 +72,6 @@ int wxMenuItem::MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShort
|
||||
{
|
||||
switch ( *inItemName )
|
||||
{
|
||||
// special characters for macintosh menus -> use some replacement
|
||||
case ';' :
|
||||
*p++ = ',' ;
|
||||
break ;
|
||||
case '^' :
|
||||
*p++ = ' ' ;
|
||||
break ;
|
||||
case '!' :
|
||||
*p++ = ' ' ;
|
||||
break ;
|
||||
case '<' :
|
||||
*p++ = '[' ;
|
||||
break ;
|
||||
case '>' :
|
||||
*p++ = ']' ;
|
||||
break ;
|
||||
case '/' :
|
||||
*p++ = '|' ;
|
||||
break ;
|
||||
case '(' :
|
||||
*p++ = '[' ;
|
||||
break ;
|
||||
case ')' :
|
||||
*p++ = ']' ;
|
||||
break ;
|
||||
// shortcuts
|
||||
case '&' :
|
||||
{
|
||||
@@ -115,43 +90,71 @@ int wxMenuItem::MacBuildMenuString(StringPtr outMacItemText, SInt16 *outMacShort
|
||||
case '\t' :
|
||||
{
|
||||
++inItemName ;
|
||||
while( *inItemName )
|
||||
bool skip = false ;
|
||||
bool explicitCommandKey = false ;
|
||||
while( *inItemName && !skip )
|
||||
{
|
||||
if (strncmp("Ctrl", inItemName, 4) == 0)
|
||||
if (wxStrnicmp("Ctrl", inItemName, 4) == 0)
|
||||
{
|
||||
inItemName = inItemName + 5;
|
||||
macShortCut = *inItemName;
|
||||
explicitCommandKey = true ;
|
||||
}
|
||||
else if (strncmp("Cntrl", inItemName, 5) == 0)
|
||||
else if (wxStrnicmp("Cntrl", inItemName, 5) == 0)
|
||||
{
|
||||
inItemName = inItemName + 6;
|
||||
macShortCut = *inItemName;
|
||||
explicitCommandKey = true ;
|
||||
}
|
||||
else if (strncmp("Alt", inItemName, 3) == 0)
|
||||
else if (wxStrnicmp("Alt", inItemName, 3) == 0)
|
||||
{
|
||||
inItemName = inItemName + 4;
|
||||
macModifiers |= kMenuOptionModifier ;
|
||||
macShortCut = *inItemName ;
|
||||
}
|
||||
else if (strncmp("Shift", inItemName, 5) == 0)
|
||||
else if (wxStrnicmp("Shift", inItemName, 5) == 0)
|
||||
{
|
||||
inItemName = inItemName + 6;
|
||||
macModifiers |= kMenuShiftModifier ;
|
||||
macShortCut = *inItemName ;
|
||||
}
|
||||
else if (strncmp("F", inItemName, 1) == 0)
|
||||
{
|
||||
inItemName += strlen( inItemName ) ;
|
||||
// no function keys at the moment
|
||||
// macModifiers |= kMenuShiftModifier ;
|
||||
// macShortCut = *inItemName ;
|
||||
}
|
||||
else
|
||||
{
|
||||
break ;
|
||||
skip = true ;
|
||||
}
|
||||
}
|
||||
|
||||
if ( *inItemName )
|
||||
{
|
||||
if ( strlen(inItemName) == 1 )
|
||||
{
|
||||
macShortCut = *inItemName;
|
||||
}
|
||||
else if ( !wxStricmp( inItemName , "Delete" ) || !wxStricmp( inItemName , "Del" ) )
|
||||
{
|
||||
macShortCut = WXK_DELETE ;
|
||||
}
|
||||
else if ( !wxStricmp( inItemName , "Back" ) || !wxStricmp( inItemName , "Backspace" ) )
|
||||
{
|
||||
macShortCut = WXK_BACK ;
|
||||
}
|
||||
else if ( !wxStricmp( inItemName , "Return" ) )
|
||||
{
|
||||
macShortCut = WXK_RETURN ;
|
||||
}
|
||||
else if ( !wxStricmp( inItemName , "Enter" ) )
|
||||
{
|
||||
macShortCut = kEnterCharCode ;
|
||||
}
|
||||
else if ( *inItemName == 'F' )
|
||||
{
|
||||
int fkey = atol(inItemName+1) ;
|
||||
if (fkey >= 1 && fkey < 15 )
|
||||
{
|
||||
macShortCut = WXK_F1 + fkey - 1 ;
|
||||
}
|
||||
if ( !explicitCommandKey )
|
||||
macModifiers |= kMenuNoCommandModifier ;
|
||||
}
|
||||
}
|
||||
|
||||
inItemName += strlen( inItemName ) ;
|
||||
|
||||
if ( *inItemName == 0 )
|
||||
--inItemName ;
|
||||
|
||||
|
164
src/mac/uma.cpp
164
src/mac/uma.cpp
@@ -237,33 +237,157 @@ void UMAInsertSubMenuItem( MenuRef menu , StringPtr l , MenuItemIndex item , SIn
|
||||
SetMenuItemHierarchicalID( menu , item , id ) ;
|
||||
}
|
||||
|
||||
void UMASetMenuItemShortcut( MenuRef menu , MenuItemIndex item , SInt16 key , UInt8 modifiers )
|
||||
{
|
||||
if ( key )
|
||||
{
|
||||
SInt16 glyph = 0 ;
|
||||
SInt16 macKey = key ;
|
||||
if ( key >= WXK_F1 && key <= WXK_F15 )
|
||||
{
|
||||
macKey = kFunctionKeyCharCode ;
|
||||
glyph = kMenuF1Glyph + ( key - WXK_F1 ) ;
|
||||
if ( key >= WXK_F13 )
|
||||
glyph += 13 ;
|
||||
switch( key )
|
||||
{
|
||||
case WXK_F1 :
|
||||
macKey += ( 0x7a << 8 ) ;
|
||||
break ;
|
||||
case WXK_F2 :
|
||||
macKey += ( 0x78 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F3 :
|
||||
macKey += ( 0x63 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F4 :
|
||||
macKey += ( 0x76 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F5 :
|
||||
macKey += ( 0x60 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F6 :
|
||||
macKey += ( 0x61 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F7 :
|
||||
macKey += ( 0x62 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F8 :
|
||||
macKey += ( 0x64 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F9 :
|
||||
macKey += ( 0x65 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F10 :
|
||||
macKey += ( 0x6D << 8 ) ;
|
||||
break ;
|
||||
case WXK_F11 :
|
||||
macKey += ( 0x67 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F12 :
|
||||
macKey += ( 0x6F << 8 ) ;
|
||||
break ;
|
||||
case WXK_F13 :
|
||||
macKey += ( 0x69 << 8 ) ;
|
||||
break ;
|
||||
case WXK_F14 :
|
||||
macKey += ( 0x6B << 8 ) ;
|
||||
break ;
|
||||
case WXK_F15 :
|
||||
macKey += ( 0x71 << 8 ) ;
|
||||
break ;
|
||||
default :
|
||||
break ;
|
||||
} ;
|
||||
// unfortunately this does not yet trigger the right key ,
|
||||
// for some reason mac justs picks the first function key menu
|
||||
// defined, so we turn this off
|
||||
macKey = 0 ;
|
||||
glyph = 0 ;
|
||||
}
|
||||
else
|
||||
{
|
||||
switch( key )
|
||||
{
|
||||
case WXK_BACK :
|
||||
macKey = kBackspaceCharCode ;
|
||||
glyph = kMenuDeleteLeftGlyph ;
|
||||
break ;
|
||||
case WXK_TAB :
|
||||
macKey = kTabCharCode ;
|
||||
glyph = kMenuTabRightGlyph ;
|
||||
break ;
|
||||
case kEnterCharCode :
|
||||
macKey = kEnterCharCode ;
|
||||
glyph = kMenuEnterGlyph ;
|
||||
break ;
|
||||
case WXK_RETURN :
|
||||
macKey = kReturnCharCode ;
|
||||
glyph = kMenuReturnGlyph ;
|
||||
break ;
|
||||
case WXK_ESCAPE :
|
||||
macKey = kEscapeCharCode ;
|
||||
glyph = kMenuEscapeGlyph ;
|
||||
break ;
|
||||
case WXK_SPACE :
|
||||
macKey = ' ' ;
|
||||
glyph = kMenuSpaceGlyph ;
|
||||
break ;
|
||||
case WXK_DELETE :
|
||||
macKey = kDeleteCharCode ;
|
||||
glyph = kMenuDeleteRightGlyph ;
|
||||
break ;
|
||||
case WXK_CLEAR :
|
||||
macKey = kClearCharCode ;
|
||||
glyph = kMenuClearGlyph ;
|
||||
break ;
|
||||
case WXK_PRIOR : // PAGE UP
|
||||
macKey = kPageUpCharCode ;
|
||||
glyph = kMenuPageUpGlyph ;
|
||||
break ;
|
||||
case WXK_NEXT :
|
||||
macKey = kPageDownCharCode ;
|
||||
glyph = kMenuPageDownGlyph ;
|
||||
break ;
|
||||
case WXK_LEFT :
|
||||
macKey = kLeftArrowCharCode ;
|
||||
glyph = kMenuLeftArrowGlyph ;
|
||||
break ;
|
||||
case WXK_UP :
|
||||
macKey = kUpArrowCharCode ;
|
||||
glyph = kMenuUpArrowGlyph ;
|
||||
break ;
|
||||
case WXK_RIGHT :
|
||||
macKey = kRightArrowCharCode ;
|
||||
glyph = kMenuRightArrowGlyph ;
|
||||
break ;
|
||||
case WXK_DOWN :
|
||||
macKey = kDownArrowCharCode ;
|
||||
glyph = kMenuDownArrowGlyph ;
|
||||
break ;
|
||||
}
|
||||
}
|
||||
|
||||
SetItemCmd( menu, item , macKey );
|
||||
SetMenuItemModifiers(menu, item , modifiers ) ;
|
||||
|
||||
if ( glyph )
|
||||
SetMenuItemKeyGlyph(menu, item , glyph ) ;
|
||||
}
|
||||
}
|
||||
|
||||
void UMAAppendMenuItem( MenuRef menu , StringPtr l , SInt16 key, UInt8 modifiers )
|
||||
{
|
||||
Str255 label ;
|
||||
memcpy( label , l , l[0]+1 ) ;
|
||||
if ( key )
|
||||
{
|
||||
int pos = label[0] ;
|
||||
label[++pos] = '/';
|
||||
label[++pos] = toupper( key );
|
||||
label[0] = pos ;
|
||||
}
|
||||
MacAppendMenu( menu , label ) ;
|
||||
MacAppendMenu(menu, "\pA");
|
||||
SetMenuItemText(menu, (SInt16) ::CountMenuItems(menu), l);
|
||||
UMASetMenuItemShortcut( menu , (SInt16) ::CountMenuItems(menu), key , modifiers ) ;
|
||||
}
|
||||
|
||||
void UMAInsertMenuItem( MenuRef menu , StringPtr l , MenuItemIndex item , SInt16 key, UInt8 modifiers )
|
||||
{
|
||||
Str255 label ;
|
||||
memcpy( label , l , l[0]+1 ) ;
|
||||
if ( key )
|
||||
{
|
||||
int pos = label[0] ;
|
||||
label[++pos] = '/';
|
||||
label[++pos] = toupper( key );
|
||||
label[0] = pos ;
|
||||
}
|
||||
MacInsertMenuItem( menu , label , item) ;
|
||||
MacInsertMenuItem( menu , "\p" , item) ;
|
||||
SetMenuItemText(menu, item , l);
|
||||
UMASetMenuItemShortcut( menu , item , key , modifiers ) ;
|
||||
}
|
||||
|
||||
// quickdraw
|
||||
|
Reference in New Issue
Block a user