- for (node = menu->GetMenuItems().GetFirst(); node; node = node->GetNext())
- {
- item = (wxMenuItem *)node->GetData();
- subMenu = item->GetSubMenu() ;
- if (subMenu)
- {
- // we don't support hierarchical menus in the help menu yet
- }
- else
- {
- if ( item->GetId() != wxApp::s_macAboutMenuItemId )
- {
- // we have found a user help menu and an item other than the about item,
- // so we can create the mac help menu now, if we haven't created it yet
- if ( helpMenuHandle == NULL )
- {
- if ( UMAGetHelpMenu( &helpMenuHandle , &firstUserHelpMenuItem) != noErr )
- {
- helpMenuHandle = NULL ;
- break ;
- }
- }
- }
-
- if ( item->IsSeparator() )
- {
- if ( helpMenuHandle )
- AppendMenuItemTextWithCFString( helpMenuHandle,
- CFSTR(""), kMenuItemAttrSeparator, 0,NULL);
- }
- else
- {
- wxAcceleratorEntry*
- entry = wxAcceleratorEntry::Create( item->GetItemLabel() ) ;
-
- if ( item->GetId() == wxApp::s_macAboutMenuItemId )
- {
- // this will be taken care of below
- }
- else
- {
- if ( helpMenuHandle )
- {
- UMAAppendMenuItem(helpMenuHandle, wxStripMenuCodes(item->GetItemLabel()) , wxFont::GetDefaultEncoding(), entry);
- SetMenuItemCommandID( helpMenuHandle , CountMenuItems(helpMenuHandle) , wxIdToMacCommand ( item->GetId() ) ) ;
- SetMenuItemRefCon( helpMenuHandle , CountMenuItems(helpMenuHandle) , (URefCon) item ) ;
- }
- }
-
- delete entry ;
- }
- }
- }
- }
-
- else if ( ( m_titles[i] == wxT("Window") || m_titles[i] == wxT("&Window") )
- && GetAutoWindowMenu() )
- {
- if ( MacGetWindowMenuHMenu() == NULL )
- {
- CreateStandardWindowMenu( 0 , (MenuHandle*) &s_macWindowMenuHandle ) ;
- }
-
- MenuRef wm = (MenuRef)MacGetWindowMenuHMenu();
- if ( wm == NULL )
- break;
-
- // get the insertion point in the standard menu
- MenuItemIndex winListStart;
- GetIndMenuItemWithCommandID(wm,
- kHICommandWindowListSeparator, 1, NULL, &winListStart);
-
- // add a separator so that the standard items and the custom items
- // aren't mixed together, but only if this is the first run
- OSStatus err = GetIndMenuItemWithCommandID(wm,
- 'WXWM', 1, NULL, NULL);
-
- if ( err == menuItemNotFoundErr )