// the (popup) menu title has this special id
static const int idMenuTitle = -2;
-static int formerHelpMenuItems = 0 ;
+static MenuItemIndex firstUserHelpMenuItem = 0 ;
const short kwxMacMenuBarResource = 1 ;
const short kwxMacAppleMenuId = 1 ;
#ifndef __DARWIN__
else if ( macMenuId == kHMHelpMenuID )
{
- int menuItem = formerHelpMenuItems ;
+ int menuItem = firstUserHelpMenuItem-1 ;
for (pos = 0, node = GetMenuItems().First(); node; node = node->Next(), pos++)
{
wxMenuItem * pItem = (wxMenuItem *) node->Data() ;
int pos ;
wxMenu* menu = m_menus[i] , *subMenu = NULL ;
-#if !TARGET_CARBON
- /* the help menu does not exist in CARBON anymore */
if( m_titles[i] == "?" || m_titles[i] == "&?" || m_titles[i] == wxApp::s_macHelpMenuTitleName )
{
MenuHandle mh = NULL ;
- if ( HMGetHelpMenuHandle( &mh ) != noErr )
- {
- continue ;
- }
- if ( formerHelpMenuItems == 0 )
- {
- if( mh )
- formerHelpMenuItems = CountMenuItems( mh ) ;
- }
+ if ( UMAGetHelpMenu( &mh , &firstUserHelpMenuItem) != noErr )
+ {
+ continue ;
+ }
for (pos = 0 , node = menu->GetMenuItems().First(); node; node = node->Next(), pos++)
{
}
}
}
-#else
- if( m_titles[i] == "?" || m_titles[i] == "&?" || m_titles[i] == wxApp::s_macHelpMenuTitleName )
- {
- wxMenuItem::MacBuildMenuString( label, NULL , NULL , m_titles[i] , false );
- UMASetMenuTitle( menu->GetHMenu() , label ) ;
-
- wxArrayPtrVoid submenus ;
-
- for (pos = 0 , node = menu->GetMenuItems().First(); node; node = node->Next(), pos++)
- {
- item = (wxMenuItem *)node->Data();
- subMenu = item->GetSubMenu() ;
- if (subMenu)
- {
- submenus.Add(subMenu) ;
- }
- else
- {
- if ( item->GetId() == wxApp::s_macAboutMenuItemId )
- {
- Str255 label ;
- UInt8 modifiers ;
- SInt16 key ;
- wxMenuItem::MacBuildMenuString( label, &key , &modifiers , item->GetText(), item->GetId() != wxApp::s_macAboutMenuItemId); // no shortcut in about menu
- ::SetMenuItemText( GetMenuHandle( kwxMacAppleMenuId ) , 1 , label );
- UMAEnableMenuItem( GetMenuHandle( kwxMacAppleMenuId ) , 1 );
- }
- }
- }
- ::InsertMenu(m_menus[i]->GetHMenu(), 0);
- for ( int i = 0 ; i < submenus.GetCount() ; ++i )
- {
- wxMenu* submenu = (wxMenu*) submenus[i] ;
- wxNode *subnode;
- wxMenuItem *subitem;
- int subpos ;
- for ( subpos = 0 , subnode = submenu->GetMenuItems().First(); subnode; subnode = subnode->Next(), subpos++)
- {
- subitem = (wxMenuItem *)subnode->Data();
- wxMenu* itsSubMenu = subitem->GetSubMenu() ;
- if (itsSubMenu)
- {
- submenus.Add(itsSubMenu) ;
- }
- }
- ::InsertMenu( submenu->GetHMenu() , -1 ) ;
- }
- }
-#endif
else
{
wxMenuItem::MacBuildMenuString( label, NULL , NULL , m_titles[i] , false );
#include "wx/defs.h"
#include "wx/dc.h"
#include "wx/mac/uma.h"
+#include <MacTextEditor.h>
#ifndef __DARWIN__
#include <Navigation.h>
// windows manager, control manager, navigation services etc. are
// present
+#define wxUSE_MLTE 0
+
static bool sUMAHasAppearance = false ;
static long sUMAAppearanceVersion = 0 ;
extern int gAGABackgroundColor ;
{
NavUnload() ;
}
+#if wxUSE_MLTE
+ TXNTerminateTextension( ) ;
+#endif
}
void UMAInitToolbox( UInt16 inMoreMastersCalls )
{
{
NavLoad() ;
}
+
+#if wxUSE_MLTE
+ TXNMacOSPreferredFontDescription defaults;
+ defaults.fontID = kFontIDGeneva ;
+ defaults.pointSize = (10 << 16) ;
+ defaults.fontStyle = kTXNDefaultFontStyle;
+ defaults.encoding = kTXNSystemDefaultEncoding;
+ TXNInitTextension(&defaults, 1, (kTXNAlwaysUseQuickDrawTextMask | kTXNWantMoviesMask | kTXNWantSoundMask | kTXNWantGraphicsMask));
+#endif
}
// process manager
SetControlVisibility( inControl , false , false ) ;
Rect ctrlBounds ;
InvalWindowRect(GetControlOwner(inControl),GetControlBounds(inControl,&ctrlBounds) ) ;
- }
+ }
::SizeControl( inControl , x , y ) ;
if ( visible ) {
SetControlVisibility( inControl , true , false ) ;
return ::DrawThemePlacard( inRect , inState ) ;
}
+static OSStatus helpMenuStatus = noErr ;
+static MenuRef helpMenuHandle = NULL ;
+static MenuItemIndex firstCustomItemIndex = 0 ;
+
+OSStatus UMAGetHelpMenu(
+ MenuRef * outHelpMenu,
+ MenuItemIndex * outFirstCustomItemIndex)
+{
+#if TARGET_CARBON
+ return HMGetHelpMenu( outHelpMenu , outFirstCustomItemIndex ) ;
+#else
+ if ( helpMenuHandle == NULL )
+ {
+ helpMenuStatus = HMGetHelpMenuHandle( &helpMenuHandle ) ;
+ if ( helpMenuStatus == noErr )
+ {
+ firstCustomItemIndex = CountMenuItems( helpMenuHandle ) + 1 ;
+ }
+ }
+ if ( outFirstCustomItemIndex )
+ {
+ *outFirstCustomItemIndex = firstCustomItemIndex ;
+ }
+ *outHelpMenu = helpMenuHandle ;
+ return helpMenuStatus ;
+#endif
+}
// the (popup) menu title has this special id
static const int idMenuTitle = -2;
-static int formerHelpMenuItems = 0 ;
+static MenuItemIndex firstUserHelpMenuItem = 0 ;
const short kwxMacMenuBarResource = 1 ;
const short kwxMacAppleMenuId = 1 ;
#ifndef __DARWIN__
else if ( macMenuId == kHMHelpMenuID )
{
- int menuItem = formerHelpMenuItems ;
+ int menuItem = firstUserHelpMenuItem-1 ;
for (pos = 0, node = GetMenuItems().First(); node; node = node->Next(), pos++)
{
wxMenuItem * pItem = (wxMenuItem *) node->Data() ;
int pos ;
wxMenu* menu = m_menus[i] , *subMenu = NULL ;
-#if !TARGET_CARBON
- /* the help menu does not exist in CARBON anymore */
if( m_titles[i] == "?" || m_titles[i] == "&?" || m_titles[i] == wxApp::s_macHelpMenuTitleName )
{
MenuHandle mh = NULL ;
- if ( HMGetHelpMenuHandle( &mh ) != noErr )
- {
- continue ;
- }
- if ( formerHelpMenuItems == 0 )
- {
- if( mh )
- formerHelpMenuItems = CountMenuItems( mh ) ;
- }
+ if ( UMAGetHelpMenu( &mh , &firstUserHelpMenuItem) != noErr )
+ {
+ continue ;
+ }
for (pos = 0 , node = menu->GetMenuItems().First(); node; node = node->Next(), pos++)
{
}
}
}
-#else
- if( m_titles[i] == "?" || m_titles[i] == "&?" || m_titles[i] == wxApp::s_macHelpMenuTitleName )
- {
- wxMenuItem::MacBuildMenuString( label, NULL , NULL , m_titles[i] , false );
- UMASetMenuTitle( menu->GetHMenu() , label ) ;
-
- wxArrayPtrVoid submenus ;
-
- for (pos = 0 , node = menu->GetMenuItems().First(); node; node = node->Next(), pos++)
- {
- item = (wxMenuItem *)node->Data();
- subMenu = item->GetSubMenu() ;
- if (subMenu)
- {
- submenus.Add(subMenu) ;
- }
- else
- {
- if ( item->GetId() == wxApp::s_macAboutMenuItemId )
- {
- Str255 label ;
- UInt8 modifiers ;
- SInt16 key ;
- wxMenuItem::MacBuildMenuString( label, &key , &modifiers , item->GetText(), item->GetId() != wxApp::s_macAboutMenuItemId); // no shortcut in about menu
- ::SetMenuItemText( GetMenuHandle( kwxMacAppleMenuId ) , 1 , label );
- UMAEnableMenuItem( GetMenuHandle( kwxMacAppleMenuId ) , 1 );
- }
- }
- }
- ::InsertMenu(m_menus[i]->GetHMenu(), 0);
- for ( int i = 0 ; i < submenus.GetCount() ; ++i )
- {
- wxMenu* submenu = (wxMenu*) submenus[i] ;
- wxNode *subnode;
- wxMenuItem *subitem;
- int subpos ;
- for ( subpos = 0 , subnode = submenu->GetMenuItems().First(); subnode; subnode = subnode->Next(), subpos++)
- {
- subitem = (wxMenuItem *)subnode->Data();
- wxMenu* itsSubMenu = subitem->GetSubMenu() ;
- if (itsSubMenu)
- {
- submenus.Add(itsSubMenu) ;
- }
- }
- ::InsertMenu( submenu->GetHMenu() , -1 ) ;
- }
- }
-#endif
else
{
wxMenuItem::MacBuildMenuString( label, NULL , NULL , m_titles[i] , false );
#include "wx/defs.h"
#include "wx/dc.h"
#include "wx/mac/uma.h"
+#include <MacTextEditor.h>
#ifndef __DARWIN__
#include <Navigation.h>
// windows manager, control manager, navigation services etc. are
// present
+#define wxUSE_MLTE 0
+
static bool sUMAHasAppearance = false ;
static long sUMAAppearanceVersion = 0 ;
extern int gAGABackgroundColor ;
{
NavUnload() ;
}
+#if wxUSE_MLTE
+ TXNTerminateTextension( ) ;
+#endif
}
void UMAInitToolbox( UInt16 inMoreMastersCalls )
{
{
NavLoad() ;
}
+
+#if wxUSE_MLTE
+ TXNMacOSPreferredFontDescription defaults;
+ defaults.fontID = kFontIDGeneva ;
+ defaults.pointSize = (10 << 16) ;
+ defaults.fontStyle = kTXNDefaultFontStyle;
+ defaults.encoding = kTXNSystemDefaultEncoding;
+ TXNInitTextension(&defaults, 1, (kTXNAlwaysUseQuickDrawTextMask | kTXNWantMoviesMask | kTXNWantSoundMask | kTXNWantGraphicsMask));
+#endif
}
// process manager
SetControlVisibility( inControl , false , false ) ;
Rect ctrlBounds ;
InvalWindowRect(GetControlOwner(inControl),GetControlBounds(inControl,&ctrlBounds) ) ;
- }
+ }
::SizeControl( inControl , x , y ) ;
if ( visible ) {
SetControlVisibility( inControl , true , false ) ;
return ::DrawThemePlacard( inRect , inState ) ;
}
+static OSStatus helpMenuStatus = noErr ;
+static MenuRef helpMenuHandle = NULL ;
+static MenuItemIndex firstCustomItemIndex = 0 ;
+
+OSStatus UMAGetHelpMenu(
+ MenuRef * outHelpMenu,
+ MenuItemIndex * outFirstCustomItemIndex)
+{
+#if TARGET_CARBON
+ return HMGetHelpMenu( outHelpMenu , outFirstCustomItemIndex ) ;
+#else
+ if ( helpMenuHandle == NULL )
+ {
+ helpMenuStatus = HMGetHelpMenuHandle( &helpMenuHandle ) ;
+ if ( helpMenuStatus == noErr )
+ {
+ firstCustomItemIndex = CountMenuItems( helpMenuHandle ) + 1 ;
+ }
+ }
+ if ( outFirstCustomItemIndex )
+ {
+ *outFirstCustomItemIndex = firstCustomItemIndex ;
+ }
+ *outHelpMenu = helpMenuHandle ;
+ return helpMenuStatus ;
+#endif
+}