fix so wxMenu::InsertItem actually inserts rather than overwrites
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20974 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
c69279ef70
commit
58751a8685
@ -69,7 +69,7 @@ void wxMenu::Init()
|
|||||||
m_startRadioGroup = -1;
|
m_startRadioGroup = -1;
|
||||||
|
|
||||||
// create the menu
|
// create the menu
|
||||||
m_macMenuId = s_macNextMenuId++;
|
m_macMenuId = s_macNextMenuId++;
|
||||||
m_hMenu = UMANewMenu(m_macMenuId, m_title);
|
m_hMenu = UMANewMenu(m_macMenuId, m_title);
|
||||||
|
|
||||||
if ( !m_hMenu )
|
if ( !m_hMenu )
|
||||||
@ -116,19 +116,19 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
|
|||||||
else
|
else
|
||||||
MacInsertMenuItem(MAC_WXHMENU(m_hMenu), "\p-" , pos);
|
MacInsertMenuItem(MAC_WXHMENU(m_hMenu), "\p-" , pos);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wxMenu *pSubMenu = pItem->GetSubMenu() ;
|
wxMenu *pSubMenu = pItem->GetSubMenu() ;
|
||||||
if ( pSubMenu != NULL )
|
if ( pSubMenu != NULL )
|
||||||
{
|
{
|
||||||
wxASSERT_MSG( pSubMenu->m_hMenu != NULL , wxT("invalid submenu added"));
|
wxASSERT_MSG( pSubMenu->m_hMenu != NULL , wxT("invalid submenu added"));
|
||||||
pSubMenu->m_menuParent = this ;
|
pSubMenu->m_menuParent = this ;
|
||||||
|
|
||||||
if (wxMenuBar::MacGetInstalledMenuBar() == m_menuBar)
|
if (wxMenuBar::MacGetInstalledMenuBar() == m_menuBar)
|
||||||
{
|
{
|
||||||
pSubMenu->MacBeforeDisplay( true ) ;
|
pSubMenu->MacBeforeDisplay( true ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( pos == (size_t)-1 )
|
if ( pos == (size_t)-1 )
|
||||||
UMAAppendSubMenuItem(MAC_WXHMENU(m_hMenu), pItem->GetText(), pSubMenu->m_macMenuId);
|
UMAAppendSubMenuItem(MAC_WXHMENU(m_hMenu), pItem->GetText(), pSubMenu->m_macMenuId);
|
||||||
else
|
else
|
||||||
@ -148,12 +148,12 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
|
|||||||
UMAInsertMenuItem(MAC_WXHMENU(m_hMenu), wxT("a") , pos);
|
UMAInsertMenuItem(MAC_WXHMENU(m_hMenu), wxT("a") , pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
SetMenuItemCommandID( MAC_WXHMENU(m_hMenu) , pos , pItem->GetId() ) ;
|
SetMenuItemCommandID( MAC_WXHMENU(m_hMenu) , pos+1 , pItem->GetId() ) ;
|
||||||
pItem->UpdateItemText() ;
|
pItem->UpdateItemText() ;
|
||||||
pItem->UpdateItemBitmap() ;
|
pItem->UpdateItemBitmap() ;
|
||||||
pItem->UpdateItemStatus() ;
|
pItem->UpdateItemStatus() ;
|
||||||
|
|
||||||
if ( pItem->GetId() == idMenuTitle )
|
if ( pItem->GetId() == idMenuTitle )
|
||||||
{
|
{
|
||||||
UMAEnableMenuItem(MAC_WXHMENU(m_hMenu) , pos , false ) ;
|
UMAEnableMenuItem(MAC_WXHMENU(m_hMenu) , pos , false ) ;
|
||||||
}
|
}
|
||||||
@ -311,10 +311,10 @@ wxWindow *wxMenu::GetWindow() const
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
// helper functions returning the mac menu position for a certain item, note that this is
|
// helper functions returning the mac menu position for a certain item, note that this is
|
||||||
// mac-wise 1 - based, i.e. the first item has index 1 whereas on MSWin it has pos 0
|
// mac-wise 1 - based, i.e. the first item has index 1 whereas on MSWin it has pos 0
|
||||||
|
|
||||||
int wxMenu::MacGetIndexFromId( int id )
|
int wxMenu::MacGetIndexFromId( int id )
|
||||||
{
|
{
|
||||||
size_t pos;
|
size_t pos;
|
||||||
wxMenuItemList::Node *node = GetMenuItems().GetFirst();
|
wxMenuItemList::Node *node = GetMenuItems().GetFirst();
|
||||||
@ -325,14 +325,14 @@ int wxMenu::MacGetIndexFromId( int id )
|
|||||||
|
|
||||||
node = node->GetNext();
|
node = node->GetNext();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!node)
|
if (!node)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return pos + 1 ;
|
return pos + 1 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxMenu::MacGetIndexFromItem( wxMenuItem *pItem )
|
int wxMenu::MacGetIndexFromItem( wxMenuItem *pItem )
|
||||||
{
|
{
|
||||||
size_t pos;
|
size_t pos;
|
||||||
wxMenuItemList::Node *node = GetMenuItems().GetFirst();
|
wxMenuItemList::Node *node = GetMenuItems().GetFirst();
|
||||||
@ -346,31 +346,31 @@ int wxMenu::MacGetIndexFromItem( wxMenuItem *pItem )
|
|||||||
|
|
||||||
if (!node)
|
if (!node)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return pos + 1 ;
|
return pos + 1 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMenu::MacEnableMenu( bool bDoEnable )
|
void wxMenu::MacEnableMenu( bool bDoEnable )
|
||||||
{
|
{
|
||||||
UMAEnableMenuItem(MAC_WXHMENU(m_hMenu) , 0 , bDoEnable ) ;
|
UMAEnableMenuItem(MAC_WXHMENU(m_hMenu) , 0 , bDoEnable ) ;
|
||||||
|
|
||||||
::DrawMenuBar() ;
|
::DrawMenuBar() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// MacOS needs to know about submenus somewhere within this menu
|
// MacOS needs to know about submenus somewhere within this menu
|
||||||
// before it can be displayed , also hide special menu items like preferences
|
// before it can be displayed , also hide special menu items like preferences
|
||||||
// that are handled by the OS
|
// that are handled by the OS
|
||||||
void wxMenu::MacBeforeDisplay( bool isSubMenu )
|
void wxMenu::MacBeforeDisplay( bool isSubMenu )
|
||||||
{
|
{
|
||||||
wxMenuItem* previousItem = NULL ;
|
wxMenuItem* previousItem = NULL ;
|
||||||
size_t pos ;
|
size_t pos ;
|
||||||
wxMenuItemList::Node *node;
|
wxMenuItemList::Node *node;
|
||||||
wxMenuItem *item;
|
wxMenuItem *item;
|
||||||
for (pos = 0, node = GetMenuItems().GetFirst(); node; node = node->GetNext(), pos++)
|
for (pos = 0, node = GetMenuItems().GetFirst(); node; node = node->GetNext(), pos++)
|
||||||
{
|
{
|
||||||
item = (wxMenuItem *)node->GetData();
|
item = (wxMenuItem *)node->GetData();
|
||||||
wxMenu* subMenu = item->GetSubMenu() ;
|
wxMenu* subMenu = item->GetSubMenu() ;
|
||||||
if (subMenu)
|
if (subMenu)
|
||||||
{
|
{
|
||||||
subMenu->MacBeforeDisplay( true ) ;
|
subMenu->MacBeforeDisplay( true ) ;
|
||||||
}
|
}
|
||||||
@ -390,7 +390,7 @@ void wxMenu::MacBeforeDisplay( bool isSubMenu )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
previousItem = item ;
|
previousItem = item ;
|
||||||
}
|
}
|
||||||
@ -400,7 +400,7 @@ void wxMenu::MacBeforeDisplay( bool isSubMenu )
|
|||||||
|
|
||||||
}
|
}
|
||||||
// undo all changes from the MacBeforeDisplay call
|
// undo all changes from the MacBeforeDisplay call
|
||||||
void wxMenu::MacAfterDisplay( bool isSubMenu )
|
void wxMenu::MacAfterDisplay( bool isSubMenu )
|
||||||
{
|
{
|
||||||
if ( isSubMenu )
|
if ( isSubMenu )
|
||||||
::DeleteMenu(MacGetMenuId());
|
::DeleteMenu(MacGetMenuId());
|
||||||
@ -409,11 +409,11 @@ void wxMenu::MacAfterDisplay( bool isSubMenu )
|
|||||||
int pos ;
|
int pos ;
|
||||||
wxMenuItemList::Node *node;
|
wxMenuItemList::Node *node;
|
||||||
wxMenuItem *item;
|
wxMenuItem *item;
|
||||||
for (pos = 0, node = GetMenuItems().GetFirst(); node; node = node->GetNext(), pos++)
|
for (pos = 0, node = GetMenuItems().GetFirst(); node; node = node->GetNext(), pos++)
|
||||||
{
|
{
|
||||||
item = (wxMenuItem *)node->GetData();
|
item = (wxMenuItem *)node->GetData();
|
||||||
wxMenu* subMenu = item->GetSubMenu() ;
|
wxMenu* subMenu = item->GetSubMenu() ;
|
||||||
if (subMenu)
|
if (subMenu)
|
||||||
{
|
{
|
||||||
subMenu->MacAfterDisplay( true ) ;
|
subMenu->MacAfterDisplay( true ) ;
|
||||||
}
|
}
|
||||||
@ -427,7 +427,7 @@ void wxMenu::MacAfterDisplay( bool isSubMenu )
|
|||||||
|
|
||||||
// Menu Bar
|
// Menu Bar
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
Mac Implementation note :
|
Mac Implementation note :
|
||||||
|
|
||||||
@ -435,11 +435,11 @@ The Mac has only one global menubar, so we attempt to install the currently
|
|||||||
active menubar from a frame, we currently don't take into account mdi-frames
|
active menubar from a frame, we currently don't take into account mdi-frames
|
||||||
which would ask for menu-merging
|
which would ask for menu-merging
|
||||||
|
|
||||||
Secondly there is no mac api for changing a menubar that is not the current
|
Secondly there is no mac api for changing a menubar that is not the current
|
||||||
menubar, so we have to wait for preparing the actual menubar until the
|
menubar, so we have to wait for preparing the actual menubar until the
|
||||||
wxMenubar is to be used
|
wxMenubar is to be used
|
||||||
|
|
||||||
We can in subsequent versions use MacInstallMenuBar to provide some sort of
|
We can in subsequent versions use MacInstallMenuBar to provide some sort of
|
||||||
auto-merge for MDI in case this will be necessary
|
auto-merge for MDI in case this will be necessary
|
||||||
|
|
||||||
*/
|
*/
|
||||||
@ -496,13 +496,13 @@ void wxMenuBar::Refresh(bool WXUNUSED(eraseBackground), const wxRect *WXUNUSED(r
|
|||||||
DrawMenuBar();
|
DrawMenuBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMenuBar::MacInstallMenuBar()
|
void wxMenuBar::MacInstallMenuBar()
|
||||||
{
|
{
|
||||||
if ( s_macInstalledMenuBar == this )
|
if ( s_macInstalledMenuBar == this )
|
||||||
return ;
|
return ;
|
||||||
|
|
||||||
wxStAppResource resload ;
|
wxStAppResource resload ;
|
||||||
|
|
||||||
Handle menubar = ::GetNewMBar( kwxMacMenuBarResource ) ;
|
Handle menubar = ::GetNewMBar( kwxMacMenuBarResource ) ;
|
||||||
wxString message ;
|
wxString message ;
|
||||||
wxCHECK_RET( menubar != NULL, wxT("can't read MBAR resource") );
|
wxCHECK_RET( menubar != NULL, wxT("can't read MBAR resource") );
|
||||||
@ -520,7 +520,7 @@ void wxMenuBar::MacInstallMenuBar()
|
|||||||
::AppendResMenu(menu, 'DRVR');
|
::AppendResMenu(menu, 'DRVR');
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// clean-up the help menu before adding new items
|
// clean-up the help menu before adding new items
|
||||||
MenuHandle mh = NULL ;
|
MenuHandle mh = NULL ;
|
||||||
if ( UMAGetHelpMenu( &mh , &firstUserHelpMenuItem) == noErr )
|
if ( UMAGetHelpMenu( &mh , &firstUserHelpMenuItem) == noErr )
|
||||||
@ -557,16 +557,16 @@ void wxMenuBar::MacInstallMenuBar()
|
|||||||
{
|
{
|
||||||
continue ;
|
continue ;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (pos = 0 , node = menu->GetMenuItems().GetFirst(); node; node = node->GetNext(), pos++)
|
for (pos = 0 , node = menu->GetMenuItems().GetFirst(); node; node = node->GetNext(), pos++)
|
||||||
{
|
{
|
||||||
item = (wxMenuItem *)node->GetData();
|
item = (wxMenuItem *)node->GetData();
|
||||||
subMenu = item->GetSubMenu() ;
|
subMenu = item->GetSubMenu() ;
|
||||||
if (subMenu)
|
if (subMenu)
|
||||||
{
|
{
|
||||||
// we don't support hierarchical menus in the help menu yet
|
// we don't support hierarchical menus in the help menu yet
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( item->IsSeparator() )
|
if ( item->IsSeparator() )
|
||||||
{
|
{
|
||||||
@ -578,7 +578,7 @@ void wxMenuBar::MacInstallMenuBar()
|
|||||||
wxAcceleratorEntry* entry = wxGetAccelFromString( item->GetText() ) ;
|
wxAcceleratorEntry* entry = wxGetAccelFromString( item->GetText() ) ;
|
||||||
|
|
||||||
if ( item->GetId() == wxApp::s_macAboutMenuItemId )
|
if ( item->GetId() == wxApp::s_macAboutMenuItemId )
|
||||||
{
|
{
|
||||||
UMASetMenuItemText( GetMenuHandle( kwxMacAppleMenuId ) , 1 , item->GetText() );
|
UMASetMenuItemText( GetMenuHandle( kwxMacAppleMenuId ) , 1 , item->GetText() );
|
||||||
UMAEnableMenuItem( GetMenuHandle( kwxMacAppleMenuId ) , 1 , true );
|
UMAEnableMenuItem( GetMenuHandle( kwxMacAppleMenuId ) , 1 , true );
|
||||||
SetMenuItemCommandID( GetMenuHandle( kwxMacAppleMenuId ) , 1 , item->GetId() ) ;
|
SetMenuItemCommandID( GetMenuHandle( kwxMacAppleMenuId ) , 1 , item->GetId() ) ;
|
||||||
@ -592,7 +592,7 @@ void wxMenuBar::MacInstallMenuBar()
|
|||||||
SetMenuItemCommandID( mh , CountMenuItems(mh) , item->GetId() ) ;
|
SetMenuItemCommandID( mh , CountMenuItems(mh) , item->GetId() ) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delete entry ;
|
delete entry ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -652,7 +652,7 @@ int wxMenuBar::FindMenu(const wxString& title)
|
|||||||
{
|
{
|
||||||
wxString title = wxStripMenuCodes(m_titles[i]);
|
wxString title = wxStripMenuCodes(m_titles[i]);
|
||||||
if ( menuTitle == title )
|
if ( menuTitle == title )
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
return wxNOT_FOUND;
|
return wxNOT_FOUND;
|
||||||
@ -762,7 +762,7 @@ bool wxMenuBar::Append(wxMenu *menu, const wxString& title)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
m_titles.Add(title);
|
m_titles.Add(title);
|
||||||
|
|
||||||
UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , title ) ;
|
UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , title ) ;
|
||||||
|
|
||||||
if ( IsAttached() )
|
if ( IsAttached() )
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
// since we have decided that we only support 8.6 upwards we are
|
// since we have decided that we only support 8.6 upwards we are
|
||||||
// checking for these minimum requirements in the startup code of
|
// checking for these minimum requirements in the startup code of
|
||||||
// the application so all wxWindows code can safely assume that appearance 1.1
|
// the application so all wxWindows code can safely assume that appearance 1.1
|
||||||
// windows manager, control manager, navigation services etc. are
|
// windows manager, control manager, navigation services etc. are
|
||||||
// present
|
// present
|
||||||
|
|
||||||
static bool sUMAHasAppearance = false ;
|
static bool sUMAHasAppearance = false ;
|
||||||
@ -90,7 +90,7 @@ void UMAInitToolbox( UInt16 inMoreMastersCalls )
|
|||||||
|
|
||||||
if ( Gestalt(gestaltSystemVersion, &sUMASystemVersion) != noErr)
|
if ( Gestalt(gestaltSystemVersion, &sUMASystemVersion) != noErr)
|
||||||
sUMASystemVersion = 0x0000 ;
|
sUMASystemVersion = 0x0000 ;
|
||||||
|
|
||||||
long theAppearance ;
|
long theAppearance ;
|
||||||
if ( Gestalt( gestaltAppearanceAttr, &theAppearance ) == noErr )
|
if ( Gestalt( gestaltAppearanceAttr, &theAppearance ) == noErr )
|
||||||
{
|
{
|
||||||
@ -109,7 +109,7 @@ void UMAInitToolbox( UInt16 inMoreMastersCalls )
|
|||||||
{
|
{
|
||||||
sUMAHasWindowManager = sUMAWindowManagerAttr & gestaltWindowMgrPresent ;
|
sUMAHasWindowManager = sUMAWindowManagerAttr & gestaltWindowMgrPresent ;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
// Call currently implicitely done : InitFloatingWindows() ;
|
// Call currently implicitely done : InitFloatingWindows() ;
|
||||||
#else
|
#else
|
||||||
@ -130,7 +130,7 @@ void UMAInitToolbox( UInt16 inMoreMastersCalls )
|
|||||||
sUMAHasAquaLayout = true ;
|
sUMAHasAquaLayout = true ;
|
||||||
|
|
||||||
if ( TXNInitTextension != (void*) kUnresolvedCFragSymbolAddress )
|
if ( TXNInitTextension != (void*) kUnresolvedCFragSymbolAddress )
|
||||||
{
|
{
|
||||||
FontFamilyID fontId ;
|
FontFamilyID fontId ;
|
||||||
Str255 fontName ;
|
Str255 fontName ;
|
||||||
SInt16 fontSize ;
|
SInt16 fontSize ;
|
||||||
@ -143,7 +143,7 @@ void UMAInitToolbox( UInt16 inMoreMastersCalls )
|
|||||||
{ fontId , (fontSize << 16) ,kTXNDefaultFontStyle, kTXNSystemDefaultEncoding } ,
|
{ fontId , (fontSize << 16) ,kTXNDefaultFontStyle, kTXNSystemDefaultEncoding } ,
|
||||||
} ;
|
} ;
|
||||||
int noOfFontDescriptions = sizeof( fontDescriptions ) / sizeof(TXNMacOSPreferredFontDescription) ;
|
int noOfFontDescriptions = sizeof( fontDescriptions ) / sizeof(TXNMacOSPreferredFontDescription) ;
|
||||||
#if 0 // TARGET_CARBON
|
#if 0 // TARGET_CARBON
|
||||||
--noOfFontDescriptions ;
|
--noOfFontDescriptions ;
|
||||||
#endif
|
#endif
|
||||||
// kTXNAlwaysUseQuickDrawTextMask might be desirable because of speed increases but it crashes the app under OS X upon key stroke
|
// kTXNAlwaysUseQuickDrawTextMask might be desirable because of speed increases but it crashes the app under OS X upon key stroke
|
||||||
@ -171,12 +171,12 @@ Boolean CanUseATSUI()
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
// process manager
|
// process manager
|
||||||
long UMAGetProcessMode()
|
long UMAGetProcessMode()
|
||||||
{
|
{
|
||||||
OSErr err ;
|
OSErr err ;
|
||||||
ProcessInfoRec processinfo;
|
ProcessInfoRec processinfo;
|
||||||
ProcessSerialNumber procno ;
|
ProcessSerialNumber procno ;
|
||||||
|
|
||||||
procno.highLongOfPSN = NULL ;
|
procno.highLongOfPSN = NULL ;
|
||||||
procno.lowLongOfPSN = kCurrentProcess ;
|
procno.lowLongOfPSN = kCurrentProcess ;
|
||||||
processinfo.processInfoLength = sizeof(ProcessInfoRec);
|
processinfo.processInfoLength = sizeof(ProcessInfoRec);
|
||||||
@ -188,7 +188,7 @@ long UMAGetProcessMode()
|
|||||||
return processinfo.processMode ;
|
return processinfo.processMode ;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UMAGetProcessModeDoesActivateOnFGSwitch()
|
bool UMAGetProcessModeDoesActivateOnFGSwitch()
|
||||||
{
|
{
|
||||||
return UMAGetProcessMode() & modeDoesActivateOnFGSwitch ;
|
return UMAGetProcessMode() & modeDoesActivateOnFGSwitch ;
|
||||||
}
|
}
|
||||||
@ -222,7 +222,7 @@ void UMASetMenuTitle( MenuRef menu , const wxString& title )
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMASetMenuItemText( MenuRef menu, MenuItemIndex item, const wxString& title )
|
void UMASetMenuItemText( MenuRef menu, MenuItemIndex item, const wxString& title )
|
||||||
{
|
{
|
||||||
wxString str = wxStripMenuCodes( title ) ;
|
wxString str = wxStripMenuCodes( title ) ;
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
@ -240,7 +240,7 @@ UInt32 UMAMenuEvent( EventRecord *inEvent )
|
|||||||
return MenuEvent( inEvent ) ;
|
return MenuEvent( inEvent ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAEnableMenuItem( MenuRef inMenu , MenuItemIndex inItem , bool enable)
|
void UMAEnableMenuItem( MenuRef inMenu , MenuItemIndex inItem , bool enable)
|
||||||
{
|
{
|
||||||
if ( enable )
|
if ( enable )
|
||||||
EnableMenuItem( inMenu , inItem ) ;
|
EnableMenuItem( inMenu , inItem ) ;
|
||||||
@ -248,14 +248,14 @@ void UMAEnableMenuItem( MenuRef inMenu , MenuItemIndex inItem , bool enable)
|
|||||||
DisableMenuItem( inMenu , inItem ) ;
|
DisableMenuItem( inMenu , inItem ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAAppendSubMenuItem( MenuRef menu , const wxString& title , SInt16 id )
|
void UMAAppendSubMenuItem( MenuRef menu , const wxString& title , SInt16 id )
|
||||||
{
|
{
|
||||||
MacAppendMenu(menu, "\pA");
|
MacAppendMenu(menu, "\pA");
|
||||||
UMASetMenuItemText(menu, (SInt16) ::CountMenuItems(menu), title );
|
UMASetMenuItemText(menu, (SInt16) ::CountMenuItems(menu), title );
|
||||||
SetMenuItemHierarchicalID( menu , CountMenuItems( menu ) , id ) ;
|
SetMenuItemHierarchicalID( menu , CountMenuItems( menu ) , id ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAInsertSubMenuItem( MenuRef menu , const wxString& title , MenuItemIndex item , SInt16 id )
|
void UMAInsertSubMenuItem( MenuRef menu , const wxString& title , MenuItemIndex item , SInt16 id )
|
||||||
{
|
{
|
||||||
MacInsertMenuItem(menu, "\pA" , item);
|
MacInsertMenuItem(menu, "\pA" , item);
|
||||||
UMASetMenuItemText(menu, item , title );
|
UMASetMenuItemText(menu, item , title );
|
||||||
@ -266,24 +266,24 @@ void UMASetMenuItemShortcut( MenuRef menu , MenuItemIndex item , wxAcceleratorEn
|
|||||||
{
|
{
|
||||||
if ( !entry )
|
if ( !entry )
|
||||||
return ;
|
return ;
|
||||||
|
|
||||||
UInt8 modifiers = 0 ;
|
UInt8 modifiers = 0 ;
|
||||||
SInt16 key = entry->GetKeyCode() ;
|
SInt16 key = entry->GetKeyCode() ;
|
||||||
if ( key )
|
if ( key )
|
||||||
{
|
{
|
||||||
bool explicitCommandKey = false ;
|
bool explicitCommandKey = false ;
|
||||||
|
|
||||||
if ( entry->GetFlags() & wxACCEL_CTRL )
|
if ( entry->GetFlags() & wxACCEL_CTRL )
|
||||||
{
|
{
|
||||||
explicitCommandKey = true ;
|
explicitCommandKey = true ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry->GetFlags() & wxACCEL_ALT )
|
if (entry->GetFlags() & wxACCEL_ALT )
|
||||||
{
|
{
|
||||||
modifiers |= kMenuOptionModifier ;
|
modifiers |= kMenuOptionModifier ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry->GetFlags() & wxACCEL_SHIFT)
|
if (entry->GetFlags() & wxACCEL_SHIFT)
|
||||||
{
|
{
|
||||||
modifiers |= kMenuShiftModifier ;
|
modifiers |= kMenuShiftModifier ;
|
||||||
}
|
}
|
||||||
@ -298,7 +298,7 @@ void UMASetMenuItemShortcut( MenuRef menu , MenuItemIndex item , wxAcceleratorEn
|
|||||||
glyph += 13 ;
|
glyph += 13 ;
|
||||||
if ( !explicitCommandKey )
|
if ( !explicitCommandKey )
|
||||||
modifiers |= kMenuNoCommandModifier ;
|
modifiers |= kMenuNoCommandModifier ;
|
||||||
|
|
||||||
switch( key )
|
switch( key )
|
||||||
{
|
{
|
||||||
case WXK_F1 :
|
case WXK_F1 :
|
||||||
@ -426,18 +426,18 @@ void UMASetMenuItemShortcut( MenuRef menu , MenuItemIndex item , wxAcceleratorEn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAAppendMenuItem( MenuRef menu , const wxString& title , wxAcceleratorEntry *entry )
|
void UMAAppendMenuItem( MenuRef menu , const wxString& title , wxAcceleratorEntry *entry )
|
||||||
{
|
{
|
||||||
MacAppendMenu(menu, "\pA");
|
MacAppendMenu(menu, "\pA");
|
||||||
UMASetMenuItemText(menu, (SInt16) ::CountMenuItems(menu), title );
|
UMASetMenuItemText(menu, (SInt16) ::CountMenuItems(menu), title );
|
||||||
UMASetMenuItemShortcut( menu , (SInt16) ::CountMenuItems(menu), entry ) ;
|
UMASetMenuItemShortcut( menu , (SInt16) ::CountMenuItems(menu), entry ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAInsertMenuItem( MenuRef menu , const wxString& title , MenuItemIndex item , wxAcceleratorEntry *entry )
|
void UMAInsertMenuItem( MenuRef menu , const wxString& title , MenuItemIndex item , wxAcceleratorEntry *entry )
|
||||||
{
|
{
|
||||||
MacInsertMenuItem( menu , "\p" , item) ;
|
MacInsertMenuItem( menu , "\pA" , item) ;
|
||||||
UMASetMenuItemText(menu, item , title );
|
UMASetMenuItemText(menu, item+1 , title );
|
||||||
UMASetMenuItemShortcut( menu , item , entry ) ;
|
UMASetMenuItemShortcut( menu , item+1 , entry ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// quickdraw
|
// quickdraw
|
||||||
@ -481,7 +481,7 @@ pascal QDGlobalsPtr GetQDGlobalsPtr (void)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void UMAShowWatchCursor()
|
void UMAShowWatchCursor()
|
||||||
{
|
{
|
||||||
OSErr err = noErr;
|
OSErr err = noErr;
|
||||||
|
|
||||||
@ -497,14 +497,14 @@ void UMAShowWatchCursor()
|
|||||||
// SetQDGlobalsArrow (*watchFob);
|
// SetQDGlobalsArrow (*watchFob);
|
||||||
// InitCursor ( );
|
// InitCursor ( );
|
||||||
// SetQDGlobalsArrow (&preservedArrow);
|
// SetQDGlobalsArrow (&preservedArrow);
|
||||||
SetCursor (*watchFob);
|
SetCursor (*watchFob);
|
||||||
#else
|
#else
|
||||||
SetCursor (*watchFob);
|
SetCursor (*watchFob);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAShowArrowCursor()
|
void UMAShowArrowCursor()
|
||||||
{
|
{
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
Cursor arrow;
|
Cursor arrow;
|
||||||
@ -516,23 +516,23 @@ void UMAShowArrowCursor()
|
|||||||
|
|
||||||
// window manager
|
// window manager
|
||||||
|
|
||||||
GrafPtr UMAGetWindowPort( WindowRef inWindowRef )
|
GrafPtr UMAGetWindowPort( WindowRef inWindowRef )
|
||||||
{
|
{
|
||||||
wxASSERT( inWindowRef != NULL ) ;
|
wxASSERT( inWindowRef != NULL ) ;
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
return (GrafPtr) GetWindowPort( inWindowRef ) ;
|
return (GrafPtr) GetWindowPort( inWindowRef ) ;
|
||||||
#else
|
#else
|
||||||
return (GrafPtr) inWindowRef ;
|
return (GrafPtr) inWindowRef ;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMADisposeWindow( WindowRef inWindowRef )
|
void UMADisposeWindow( WindowRef inWindowRef )
|
||||||
{
|
{
|
||||||
wxASSERT( inWindowRef != NULL ) ;
|
wxASSERT( inWindowRef != NULL ) ;
|
||||||
DisposeWindow( inWindowRef ) ;
|
DisposeWindow( inWindowRef ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMASetWTitle( WindowRef inWindowRef , const wxString& title )
|
void UMASetWTitle( WindowRef inWindowRef , const wxString& title )
|
||||||
{
|
{
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
SetWindowTitleWithCFString( inWindowRef , wxMacCFStringHolder(title) ) ;
|
SetWindowTitleWithCFString( inWindowRef , wxMacCFStringHolder(title) ) ;
|
||||||
@ -543,7 +543,7 @@ void UMASetWTitle( WindowRef inWindowRef , const wxString& title )
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAGetWTitleC( WindowRef inWindowRef , char *title )
|
void UMAGetWTitleC( WindowRef inWindowRef , char *title )
|
||||||
{
|
{
|
||||||
GetWTitle( inWindowRef , (unsigned char*)title ) ;
|
GetWTitle( inWindowRef , (unsigned char*)title ) ;
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
@ -555,7 +555,7 @@ void UMAGetWTitleC( WindowRef inWindowRef , char *title )
|
|||||||
|
|
||||||
// appearance additions
|
// appearance additions
|
||||||
|
|
||||||
void UMASetControlTitle( ControlHandle inControl , const wxString& title )
|
void UMASetControlTitle( ControlHandle inControl , const wxString& title )
|
||||||
{
|
{
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
SetControlTitleWithCFString( inControl , wxMacCFStringHolder(title) ) ;
|
SetControlTitleWithCFString( inControl , wxMacCFStringHolder(title) ) ;
|
||||||
@ -566,7 +566,7 @@ void UMASetControlTitle( ControlHandle inControl , const wxString& title )
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAActivateControl( ControlHandle inControl )
|
void UMAActivateControl( ControlHandle inControl )
|
||||||
{
|
{
|
||||||
// we have to add the control after again to the update rgn
|
// we have to add the control after again to the update rgn
|
||||||
// otherwise updates get lost
|
// otherwise updates get lost
|
||||||
@ -584,7 +584,7 @@ void UMAActivateControl( ControlHandle inControl )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMADrawControl( ControlHandle inControl )
|
void UMADrawControl( ControlHandle inControl )
|
||||||
{
|
{
|
||||||
WindowRef theWindow = GetControlOwner(inControl) ;
|
WindowRef theWindow = GetControlOwner(inControl) ;
|
||||||
RgnHandle updateRgn = NewRgn() ;
|
RgnHandle updateRgn = NewRgn() ;
|
||||||
@ -597,7 +597,7 @@ void UMADrawControl( ControlHandle inControl )
|
|||||||
DisposeRgn( updateRgn ) ;
|
DisposeRgn( updateRgn ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAMoveControl( ControlHandle inControl , short x , short y )
|
void UMAMoveControl( ControlHandle inControl , short x , short y )
|
||||||
{
|
{
|
||||||
bool visible = IsControlVisible( inControl ) ;
|
bool visible = IsControlVisible( inControl ) ;
|
||||||
if ( visible ) {
|
if ( visible ) {
|
||||||
@ -613,14 +613,14 @@ void UMAMoveControl( ControlHandle inControl , short x , short y )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMASizeControl( ControlHandle inControl , short x , short y )
|
void UMASizeControl( ControlHandle inControl , short x , short y )
|
||||||
{
|
{
|
||||||
bool visible = IsControlVisible( inControl ) ;
|
bool visible = IsControlVisible( inControl ) ;
|
||||||
if ( visible ) {
|
if ( visible ) {
|
||||||
SetControlVisibility( inControl , false , false ) ;
|
SetControlVisibility( inControl , false , false ) ;
|
||||||
Rect ctrlBounds ;
|
Rect ctrlBounds ;
|
||||||
InvalWindowRect(GetControlOwner(inControl),GetControlBounds(inControl,&ctrlBounds) ) ;
|
InvalWindowRect(GetControlOwner(inControl),GetControlBounds(inControl,&ctrlBounds) ) ;
|
||||||
}
|
}
|
||||||
::SizeControl( inControl , x , y ) ;
|
::SizeControl( inControl , x , y ) ;
|
||||||
if ( visible ) {
|
if ( visible ) {
|
||||||
SetControlVisibility( inControl , true , false ) ;
|
SetControlVisibility( inControl , true , false ) ;
|
||||||
@ -629,7 +629,7 @@ void UMASizeControl( ControlHandle inControl , short x , short y )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMADeactivateControl( ControlHandle inControl )
|
void UMADeactivateControl( ControlHandle inControl )
|
||||||
{
|
{
|
||||||
// we have to add the control after again to the update rgn
|
// we have to add the control after again to the update rgn
|
||||||
// otherwise updates get lost
|
// otherwise updates get lost
|
||||||
@ -676,32 +676,32 @@ OSErr UMASetKeyboardFocus (WindowPtr inWindow,
|
|||||||
|
|
||||||
|
|
||||||
// events
|
// events
|
||||||
void UMAUpdateControls( WindowPtr inWindow , RgnHandle inRgn )
|
void UMAUpdateControls( WindowPtr inWindow , RgnHandle inRgn )
|
||||||
{
|
{
|
||||||
RgnHandle updateRgn = NewRgn() ;
|
RgnHandle updateRgn = NewRgn() ;
|
||||||
GetWindowUpdateRgn( inWindow , updateRgn ) ;
|
GetWindowUpdateRgn( inWindow , updateRgn ) ;
|
||||||
|
|
||||||
Point zero = { 0 , 0 } ;
|
Point zero = { 0 , 0 } ;
|
||||||
LocalToGlobal( &zero ) ;
|
LocalToGlobal( &zero ) ;
|
||||||
OffsetRgn( updateRgn , -zero.h , -zero.v ) ;
|
OffsetRgn( updateRgn , -zero.h , -zero.v ) ;
|
||||||
|
|
||||||
UpdateControls( inWindow , inRgn ) ;
|
UpdateControls( inWindow , inRgn ) ;
|
||||||
InvalWindowRgn( inWindow, updateRgn) ;
|
InvalWindowRgn( inWindow, updateRgn) ;
|
||||||
DisposeRgn( updateRgn ) ;
|
DisposeRgn( updateRgn ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UMAIsWindowFloating( WindowRef inWindow )
|
bool UMAIsWindowFloating( WindowRef inWindow )
|
||||||
{
|
{
|
||||||
WindowClass cl ;
|
WindowClass cl ;
|
||||||
|
|
||||||
GetWindowClass( inWindow , &cl ) ;
|
GetWindowClass( inWindow , &cl ) ;
|
||||||
return cl == kFloatingWindowClass ;
|
return cl == kFloatingWindowClass ;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UMAIsWindowModal( WindowRef inWindow )
|
bool UMAIsWindowModal( WindowRef inWindow )
|
||||||
{
|
{
|
||||||
WindowClass cl ;
|
WindowClass cl ;
|
||||||
|
|
||||||
GetWindowClass( inWindow , &cl ) ;
|
GetWindowClass( inWindow , &cl ) ;
|
||||||
return cl < kFloatingWindowClass ;
|
return cl < kFloatingWindowClass ;
|
||||||
}
|
}
|
||||||
@ -726,12 +726,12 @@ void UMAHighlightAndActivateWindow( WindowRef inWindowRef , bool inActivate )
|
|||||||
UMAActivateControl( control ) ;
|
UMAActivateControl( control ) ;
|
||||||
else
|
else
|
||||||
UMADeactivateControl( control ) ;
|
UMADeactivateControl( control ) ;
|
||||||
}
|
}
|
||||||
SetPort( port ) ;
|
SetPort( port ) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
OSStatus UMADrawThemePlacard( const Rect *inRect , ThemeDrawState inState )
|
OSStatus UMADrawThemePlacard( const Rect *inRect , ThemeDrawState inState )
|
||||||
{
|
{
|
||||||
return ::DrawThemePlacard( inRect , inState ) ;
|
return ::DrawThemePlacard( inRect , inState ) ;
|
||||||
}
|
}
|
||||||
@ -763,7 +763,7 @@ OSStatus UMAGetHelpMenu(
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
wxMacPortStateHelper::wxMacPortStateHelper( GrafPtr newport)
|
wxMacPortStateHelper::wxMacPortStateHelper( GrafPtr newport)
|
||||||
{
|
{
|
||||||
m_clip = NULL ;
|
m_clip = NULL ;
|
||||||
Setup( newport ) ;
|
Setup( newport ) ;
|
||||||
@ -784,7 +784,7 @@ void wxMacPortStateHelper::Setup( GrafPtr newport )
|
|||||||
m_textFont = GetPortTextFont( (CGrafPtr) newport);
|
m_textFont = GetPortTextFont( (CGrafPtr) newport);
|
||||||
m_textSize = GetPortTextSize( (CGrafPtr) newport);
|
m_textSize = GetPortTextSize( (CGrafPtr) newport);
|
||||||
m_textStyle = GetPortTextFace( (CGrafPtr) newport);
|
m_textStyle = GetPortTextFace( (CGrafPtr) newport);
|
||||||
m_textMode = GetPortTextMode( (CGrafPtr) newport);
|
m_textMode = GetPortTextMode( (CGrafPtr) newport);
|
||||||
GetThemeDrawingState( &m_drawingState ) ;
|
GetThemeDrawingState( &m_drawingState ) ;
|
||||||
m_currentPort = newport ;
|
m_currentPort = newport ;
|
||||||
}
|
}
|
||||||
@ -821,7 +821,7 @@ OSStatus UMAPutScrap( Size size , OSType type , void *data )
|
|||||||
err = PutScrap( size , type , data ) ;
|
err = PutScrap( size , type , data ) ;
|
||||||
#else
|
#else
|
||||||
ScrapRef scrap;
|
ScrapRef scrap;
|
||||||
err = GetCurrentScrap (&scrap);
|
err = GetCurrentScrap (&scrap);
|
||||||
if ( !err )
|
if ( !err )
|
||||||
{
|
{
|
||||||
err = PutScrapFlavor (scrap, type , 0, size, data);
|
err = PutScrapFlavor (scrap, type , 0, size, data);
|
||||||
|
@ -69,7 +69,7 @@ void wxMenu::Init()
|
|||||||
m_startRadioGroup = -1;
|
m_startRadioGroup = -1;
|
||||||
|
|
||||||
// create the menu
|
// create the menu
|
||||||
m_macMenuId = s_macNextMenuId++;
|
m_macMenuId = s_macNextMenuId++;
|
||||||
m_hMenu = UMANewMenu(m_macMenuId, m_title);
|
m_hMenu = UMANewMenu(m_macMenuId, m_title);
|
||||||
|
|
||||||
if ( !m_hMenu )
|
if ( !m_hMenu )
|
||||||
@ -116,19 +116,19 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
|
|||||||
else
|
else
|
||||||
MacInsertMenuItem(MAC_WXHMENU(m_hMenu), "\p-" , pos);
|
MacInsertMenuItem(MAC_WXHMENU(m_hMenu), "\p-" , pos);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wxMenu *pSubMenu = pItem->GetSubMenu() ;
|
wxMenu *pSubMenu = pItem->GetSubMenu() ;
|
||||||
if ( pSubMenu != NULL )
|
if ( pSubMenu != NULL )
|
||||||
{
|
{
|
||||||
wxASSERT_MSG( pSubMenu->m_hMenu != NULL , wxT("invalid submenu added"));
|
wxASSERT_MSG( pSubMenu->m_hMenu != NULL , wxT("invalid submenu added"));
|
||||||
pSubMenu->m_menuParent = this ;
|
pSubMenu->m_menuParent = this ;
|
||||||
|
|
||||||
if (wxMenuBar::MacGetInstalledMenuBar() == m_menuBar)
|
if (wxMenuBar::MacGetInstalledMenuBar() == m_menuBar)
|
||||||
{
|
{
|
||||||
pSubMenu->MacBeforeDisplay( true ) ;
|
pSubMenu->MacBeforeDisplay( true ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( pos == (size_t)-1 )
|
if ( pos == (size_t)-1 )
|
||||||
UMAAppendSubMenuItem(MAC_WXHMENU(m_hMenu), pItem->GetText(), pSubMenu->m_macMenuId);
|
UMAAppendSubMenuItem(MAC_WXHMENU(m_hMenu), pItem->GetText(), pSubMenu->m_macMenuId);
|
||||||
else
|
else
|
||||||
@ -148,12 +148,12 @@ bool wxMenu::DoInsertOrAppend(wxMenuItem *pItem, size_t pos)
|
|||||||
UMAInsertMenuItem(MAC_WXHMENU(m_hMenu), wxT("a") , pos);
|
UMAInsertMenuItem(MAC_WXHMENU(m_hMenu), wxT("a") , pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
SetMenuItemCommandID( MAC_WXHMENU(m_hMenu) , pos , pItem->GetId() ) ;
|
SetMenuItemCommandID( MAC_WXHMENU(m_hMenu) , pos+1 , pItem->GetId() ) ;
|
||||||
pItem->UpdateItemText() ;
|
pItem->UpdateItemText() ;
|
||||||
pItem->UpdateItemBitmap() ;
|
pItem->UpdateItemBitmap() ;
|
||||||
pItem->UpdateItemStatus() ;
|
pItem->UpdateItemStatus() ;
|
||||||
|
|
||||||
if ( pItem->GetId() == idMenuTitle )
|
if ( pItem->GetId() == idMenuTitle )
|
||||||
{
|
{
|
||||||
UMAEnableMenuItem(MAC_WXHMENU(m_hMenu) , pos , false ) ;
|
UMAEnableMenuItem(MAC_WXHMENU(m_hMenu) , pos , false ) ;
|
||||||
}
|
}
|
||||||
@ -311,10 +311,10 @@ wxWindow *wxMenu::GetWindow() const
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
// helper functions returning the mac menu position for a certain item, note that this is
|
// helper functions returning the mac menu position for a certain item, note that this is
|
||||||
// mac-wise 1 - based, i.e. the first item has index 1 whereas on MSWin it has pos 0
|
// mac-wise 1 - based, i.e. the first item has index 1 whereas on MSWin it has pos 0
|
||||||
|
|
||||||
int wxMenu::MacGetIndexFromId( int id )
|
int wxMenu::MacGetIndexFromId( int id )
|
||||||
{
|
{
|
||||||
size_t pos;
|
size_t pos;
|
||||||
wxMenuItemList::Node *node = GetMenuItems().GetFirst();
|
wxMenuItemList::Node *node = GetMenuItems().GetFirst();
|
||||||
@ -325,14 +325,14 @@ int wxMenu::MacGetIndexFromId( int id )
|
|||||||
|
|
||||||
node = node->GetNext();
|
node = node->GetNext();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!node)
|
if (!node)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return pos + 1 ;
|
return pos + 1 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxMenu::MacGetIndexFromItem( wxMenuItem *pItem )
|
int wxMenu::MacGetIndexFromItem( wxMenuItem *pItem )
|
||||||
{
|
{
|
||||||
size_t pos;
|
size_t pos;
|
||||||
wxMenuItemList::Node *node = GetMenuItems().GetFirst();
|
wxMenuItemList::Node *node = GetMenuItems().GetFirst();
|
||||||
@ -346,31 +346,31 @@ int wxMenu::MacGetIndexFromItem( wxMenuItem *pItem )
|
|||||||
|
|
||||||
if (!node)
|
if (!node)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return pos + 1 ;
|
return pos + 1 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMenu::MacEnableMenu( bool bDoEnable )
|
void wxMenu::MacEnableMenu( bool bDoEnable )
|
||||||
{
|
{
|
||||||
UMAEnableMenuItem(MAC_WXHMENU(m_hMenu) , 0 , bDoEnable ) ;
|
UMAEnableMenuItem(MAC_WXHMENU(m_hMenu) , 0 , bDoEnable ) ;
|
||||||
|
|
||||||
::DrawMenuBar() ;
|
::DrawMenuBar() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// MacOS needs to know about submenus somewhere within this menu
|
// MacOS needs to know about submenus somewhere within this menu
|
||||||
// before it can be displayed , also hide special menu items like preferences
|
// before it can be displayed , also hide special menu items like preferences
|
||||||
// that are handled by the OS
|
// that are handled by the OS
|
||||||
void wxMenu::MacBeforeDisplay( bool isSubMenu )
|
void wxMenu::MacBeforeDisplay( bool isSubMenu )
|
||||||
{
|
{
|
||||||
wxMenuItem* previousItem = NULL ;
|
wxMenuItem* previousItem = NULL ;
|
||||||
size_t pos ;
|
size_t pos ;
|
||||||
wxMenuItemList::Node *node;
|
wxMenuItemList::Node *node;
|
||||||
wxMenuItem *item;
|
wxMenuItem *item;
|
||||||
for (pos = 0, node = GetMenuItems().GetFirst(); node; node = node->GetNext(), pos++)
|
for (pos = 0, node = GetMenuItems().GetFirst(); node; node = node->GetNext(), pos++)
|
||||||
{
|
{
|
||||||
item = (wxMenuItem *)node->GetData();
|
item = (wxMenuItem *)node->GetData();
|
||||||
wxMenu* subMenu = item->GetSubMenu() ;
|
wxMenu* subMenu = item->GetSubMenu() ;
|
||||||
if (subMenu)
|
if (subMenu)
|
||||||
{
|
{
|
||||||
subMenu->MacBeforeDisplay( true ) ;
|
subMenu->MacBeforeDisplay( true ) ;
|
||||||
}
|
}
|
||||||
@ -390,7 +390,7 @@ void wxMenu::MacBeforeDisplay( bool isSubMenu )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
previousItem = item ;
|
previousItem = item ;
|
||||||
}
|
}
|
||||||
@ -400,7 +400,7 @@ void wxMenu::MacBeforeDisplay( bool isSubMenu )
|
|||||||
|
|
||||||
}
|
}
|
||||||
// undo all changes from the MacBeforeDisplay call
|
// undo all changes from the MacBeforeDisplay call
|
||||||
void wxMenu::MacAfterDisplay( bool isSubMenu )
|
void wxMenu::MacAfterDisplay( bool isSubMenu )
|
||||||
{
|
{
|
||||||
if ( isSubMenu )
|
if ( isSubMenu )
|
||||||
::DeleteMenu(MacGetMenuId());
|
::DeleteMenu(MacGetMenuId());
|
||||||
@ -409,11 +409,11 @@ void wxMenu::MacAfterDisplay( bool isSubMenu )
|
|||||||
int pos ;
|
int pos ;
|
||||||
wxMenuItemList::Node *node;
|
wxMenuItemList::Node *node;
|
||||||
wxMenuItem *item;
|
wxMenuItem *item;
|
||||||
for (pos = 0, node = GetMenuItems().GetFirst(); node; node = node->GetNext(), pos++)
|
for (pos = 0, node = GetMenuItems().GetFirst(); node; node = node->GetNext(), pos++)
|
||||||
{
|
{
|
||||||
item = (wxMenuItem *)node->GetData();
|
item = (wxMenuItem *)node->GetData();
|
||||||
wxMenu* subMenu = item->GetSubMenu() ;
|
wxMenu* subMenu = item->GetSubMenu() ;
|
||||||
if (subMenu)
|
if (subMenu)
|
||||||
{
|
{
|
||||||
subMenu->MacAfterDisplay( true ) ;
|
subMenu->MacAfterDisplay( true ) ;
|
||||||
}
|
}
|
||||||
@ -427,7 +427,7 @@ void wxMenu::MacAfterDisplay( bool isSubMenu )
|
|||||||
|
|
||||||
// Menu Bar
|
// Menu Bar
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
Mac Implementation note :
|
Mac Implementation note :
|
||||||
|
|
||||||
@ -435,11 +435,11 @@ The Mac has only one global menubar, so we attempt to install the currently
|
|||||||
active menubar from a frame, we currently don't take into account mdi-frames
|
active menubar from a frame, we currently don't take into account mdi-frames
|
||||||
which would ask for menu-merging
|
which would ask for menu-merging
|
||||||
|
|
||||||
Secondly there is no mac api for changing a menubar that is not the current
|
Secondly there is no mac api for changing a menubar that is not the current
|
||||||
menubar, so we have to wait for preparing the actual menubar until the
|
menubar, so we have to wait for preparing the actual menubar until the
|
||||||
wxMenubar is to be used
|
wxMenubar is to be used
|
||||||
|
|
||||||
We can in subsequent versions use MacInstallMenuBar to provide some sort of
|
We can in subsequent versions use MacInstallMenuBar to provide some sort of
|
||||||
auto-merge for MDI in case this will be necessary
|
auto-merge for MDI in case this will be necessary
|
||||||
|
|
||||||
*/
|
*/
|
||||||
@ -496,13 +496,13 @@ void wxMenuBar::Refresh(bool WXUNUSED(eraseBackground), const wxRect *WXUNUSED(r
|
|||||||
DrawMenuBar();
|
DrawMenuBar();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxMenuBar::MacInstallMenuBar()
|
void wxMenuBar::MacInstallMenuBar()
|
||||||
{
|
{
|
||||||
if ( s_macInstalledMenuBar == this )
|
if ( s_macInstalledMenuBar == this )
|
||||||
return ;
|
return ;
|
||||||
|
|
||||||
wxStAppResource resload ;
|
wxStAppResource resload ;
|
||||||
|
|
||||||
Handle menubar = ::GetNewMBar( kwxMacMenuBarResource ) ;
|
Handle menubar = ::GetNewMBar( kwxMacMenuBarResource ) ;
|
||||||
wxString message ;
|
wxString message ;
|
||||||
wxCHECK_RET( menubar != NULL, wxT("can't read MBAR resource") );
|
wxCHECK_RET( menubar != NULL, wxT("can't read MBAR resource") );
|
||||||
@ -520,7 +520,7 @@ void wxMenuBar::MacInstallMenuBar()
|
|||||||
::AppendResMenu(menu, 'DRVR');
|
::AppendResMenu(menu, 'DRVR');
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// clean-up the help menu before adding new items
|
// clean-up the help menu before adding new items
|
||||||
MenuHandle mh = NULL ;
|
MenuHandle mh = NULL ;
|
||||||
if ( UMAGetHelpMenu( &mh , &firstUserHelpMenuItem) == noErr )
|
if ( UMAGetHelpMenu( &mh , &firstUserHelpMenuItem) == noErr )
|
||||||
@ -557,16 +557,16 @@ void wxMenuBar::MacInstallMenuBar()
|
|||||||
{
|
{
|
||||||
continue ;
|
continue ;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (pos = 0 , node = menu->GetMenuItems().GetFirst(); node; node = node->GetNext(), pos++)
|
for (pos = 0 , node = menu->GetMenuItems().GetFirst(); node; node = node->GetNext(), pos++)
|
||||||
{
|
{
|
||||||
item = (wxMenuItem *)node->GetData();
|
item = (wxMenuItem *)node->GetData();
|
||||||
subMenu = item->GetSubMenu() ;
|
subMenu = item->GetSubMenu() ;
|
||||||
if (subMenu)
|
if (subMenu)
|
||||||
{
|
{
|
||||||
// we don't support hierarchical menus in the help menu yet
|
// we don't support hierarchical menus in the help menu yet
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( item->IsSeparator() )
|
if ( item->IsSeparator() )
|
||||||
{
|
{
|
||||||
@ -578,7 +578,7 @@ void wxMenuBar::MacInstallMenuBar()
|
|||||||
wxAcceleratorEntry* entry = wxGetAccelFromString( item->GetText() ) ;
|
wxAcceleratorEntry* entry = wxGetAccelFromString( item->GetText() ) ;
|
||||||
|
|
||||||
if ( item->GetId() == wxApp::s_macAboutMenuItemId )
|
if ( item->GetId() == wxApp::s_macAboutMenuItemId )
|
||||||
{
|
{
|
||||||
UMASetMenuItemText( GetMenuHandle( kwxMacAppleMenuId ) , 1 , item->GetText() );
|
UMASetMenuItemText( GetMenuHandle( kwxMacAppleMenuId ) , 1 , item->GetText() );
|
||||||
UMAEnableMenuItem( GetMenuHandle( kwxMacAppleMenuId ) , 1 , true );
|
UMAEnableMenuItem( GetMenuHandle( kwxMacAppleMenuId ) , 1 , true );
|
||||||
SetMenuItemCommandID( GetMenuHandle( kwxMacAppleMenuId ) , 1 , item->GetId() ) ;
|
SetMenuItemCommandID( GetMenuHandle( kwxMacAppleMenuId ) , 1 , item->GetId() ) ;
|
||||||
@ -592,7 +592,7 @@ void wxMenuBar::MacInstallMenuBar()
|
|||||||
SetMenuItemCommandID( mh , CountMenuItems(mh) , item->GetId() ) ;
|
SetMenuItemCommandID( mh , CountMenuItems(mh) , item->GetId() ) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delete entry ;
|
delete entry ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -652,7 +652,7 @@ int wxMenuBar::FindMenu(const wxString& title)
|
|||||||
{
|
{
|
||||||
wxString title = wxStripMenuCodes(m_titles[i]);
|
wxString title = wxStripMenuCodes(m_titles[i]);
|
||||||
if ( menuTitle == title )
|
if ( menuTitle == title )
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
return wxNOT_FOUND;
|
return wxNOT_FOUND;
|
||||||
@ -762,7 +762,7 @@ bool wxMenuBar::Append(wxMenu *menu, const wxString& title)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
m_titles.Add(title);
|
m_titles.Add(title);
|
||||||
|
|
||||||
UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , title ) ;
|
UMASetMenuTitle( MAC_WXHMENU(menu->GetHMenu()) , title ) ;
|
||||||
|
|
||||||
if ( IsAttached() )
|
if ( IsAttached() )
|
||||||
|
104
src/mac/uma.cpp
104
src/mac/uma.cpp
@ -33,7 +33,7 @@
|
|||||||
// since we have decided that we only support 8.6 upwards we are
|
// since we have decided that we only support 8.6 upwards we are
|
||||||
// checking for these minimum requirements in the startup code of
|
// checking for these minimum requirements in the startup code of
|
||||||
// the application so all wxWindows code can safely assume that appearance 1.1
|
// the application so all wxWindows code can safely assume that appearance 1.1
|
||||||
// windows manager, control manager, navigation services etc. are
|
// windows manager, control manager, navigation services etc. are
|
||||||
// present
|
// present
|
||||||
|
|
||||||
static bool sUMAHasAppearance = false ;
|
static bool sUMAHasAppearance = false ;
|
||||||
@ -90,7 +90,7 @@ void UMAInitToolbox( UInt16 inMoreMastersCalls )
|
|||||||
|
|
||||||
if ( Gestalt(gestaltSystemVersion, &sUMASystemVersion) != noErr)
|
if ( Gestalt(gestaltSystemVersion, &sUMASystemVersion) != noErr)
|
||||||
sUMASystemVersion = 0x0000 ;
|
sUMASystemVersion = 0x0000 ;
|
||||||
|
|
||||||
long theAppearance ;
|
long theAppearance ;
|
||||||
if ( Gestalt( gestaltAppearanceAttr, &theAppearance ) == noErr )
|
if ( Gestalt( gestaltAppearanceAttr, &theAppearance ) == noErr )
|
||||||
{
|
{
|
||||||
@ -109,7 +109,7 @@ void UMAInitToolbox( UInt16 inMoreMastersCalls )
|
|||||||
{
|
{
|
||||||
sUMAHasWindowManager = sUMAWindowManagerAttr & gestaltWindowMgrPresent ;
|
sUMAHasWindowManager = sUMAWindowManagerAttr & gestaltWindowMgrPresent ;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
// Call currently implicitely done : InitFloatingWindows() ;
|
// Call currently implicitely done : InitFloatingWindows() ;
|
||||||
#else
|
#else
|
||||||
@ -130,7 +130,7 @@ void UMAInitToolbox( UInt16 inMoreMastersCalls )
|
|||||||
sUMAHasAquaLayout = true ;
|
sUMAHasAquaLayout = true ;
|
||||||
|
|
||||||
if ( TXNInitTextension != (void*) kUnresolvedCFragSymbolAddress )
|
if ( TXNInitTextension != (void*) kUnresolvedCFragSymbolAddress )
|
||||||
{
|
{
|
||||||
FontFamilyID fontId ;
|
FontFamilyID fontId ;
|
||||||
Str255 fontName ;
|
Str255 fontName ;
|
||||||
SInt16 fontSize ;
|
SInt16 fontSize ;
|
||||||
@ -143,7 +143,7 @@ void UMAInitToolbox( UInt16 inMoreMastersCalls )
|
|||||||
{ fontId , (fontSize << 16) ,kTXNDefaultFontStyle, kTXNSystemDefaultEncoding } ,
|
{ fontId , (fontSize << 16) ,kTXNDefaultFontStyle, kTXNSystemDefaultEncoding } ,
|
||||||
} ;
|
} ;
|
||||||
int noOfFontDescriptions = sizeof( fontDescriptions ) / sizeof(TXNMacOSPreferredFontDescription) ;
|
int noOfFontDescriptions = sizeof( fontDescriptions ) / sizeof(TXNMacOSPreferredFontDescription) ;
|
||||||
#if 0 // TARGET_CARBON
|
#if 0 // TARGET_CARBON
|
||||||
--noOfFontDescriptions ;
|
--noOfFontDescriptions ;
|
||||||
#endif
|
#endif
|
||||||
// kTXNAlwaysUseQuickDrawTextMask might be desirable because of speed increases but it crashes the app under OS X upon key stroke
|
// kTXNAlwaysUseQuickDrawTextMask might be desirable because of speed increases but it crashes the app under OS X upon key stroke
|
||||||
@ -171,12 +171,12 @@ Boolean CanUseATSUI()
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
// process manager
|
// process manager
|
||||||
long UMAGetProcessMode()
|
long UMAGetProcessMode()
|
||||||
{
|
{
|
||||||
OSErr err ;
|
OSErr err ;
|
||||||
ProcessInfoRec processinfo;
|
ProcessInfoRec processinfo;
|
||||||
ProcessSerialNumber procno ;
|
ProcessSerialNumber procno ;
|
||||||
|
|
||||||
procno.highLongOfPSN = NULL ;
|
procno.highLongOfPSN = NULL ;
|
||||||
procno.lowLongOfPSN = kCurrentProcess ;
|
procno.lowLongOfPSN = kCurrentProcess ;
|
||||||
processinfo.processInfoLength = sizeof(ProcessInfoRec);
|
processinfo.processInfoLength = sizeof(ProcessInfoRec);
|
||||||
@ -188,7 +188,7 @@ long UMAGetProcessMode()
|
|||||||
return processinfo.processMode ;
|
return processinfo.processMode ;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UMAGetProcessModeDoesActivateOnFGSwitch()
|
bool UMAGetProcessModeDoesActivateOnFGSwitch()
|
||||||
{
|
{
|
||||||
return UMAGetProcessMode() & modeDoesActivateOnFGSwitch ;
|
return UMAGetProcessMode() & modeDoesActivateOnFGSwitch ;
|
||||||
}
|
}
|
||||||
@ -222,7 +222,7 @@ void UMASetMenuTitle( MenuRef menu , const wxString& title )
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMASetMenuItemText( MenuRef menu, MenuItemIndex item, const wxString& title )
|
void UMASetMenuItemText( MenuRef menu, MenuItemIndex item, const wxString& title )
|
||||||
{
|
{
|
||||||
wxString str = wxStripMenuCodes( title ) ;
|
wxString str = wxStripMenuCodes( title ) ;
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
@ -240,7 +240,7 @@ UInt32 UMAMenuEvent( EventRecord *inEvent )
|
|||||||
return MenuEvent( inEvent ) ;
|
return MenuEvent( inEvent ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAEnableMenuItem( MenuRef inMenu , MenuItemIndex inItem , bool enable)
|
void UMAEnableMenuItem( MenuRef inMenu , MenuItemIndex inItem , bool enable)
|
||||||
{
|
{
|
||||||
if ( enable )
|
if ( enable )
|
||||||
EnableMenuItem( inMenu , inItem ) ;
|
EnableMenuItem( inMenu , inItem ) ;
|
||||||
@ -248,14 +248,14 @@ void UMAEnableMenuItem( MenuRef inMenu , MenuItemIndex inItem , bool enable)
|
|||||||
DisableMenuItem( inMenu , inItem ) ;
|
DisableMenuItem( inMenu , inItem ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAAppendSubMenuItem( MenuRef menu , const wxString& title , SInt16 id )
|
void UMAAppendSubMenuItem( MenuRef menu , const wxString& title , SInt16 id )
|
||||||
{
|
{
|
||||||
MacAppendMenu(menu, "\pA");
|
MacAppendMenu(menu, "\pA");
|
||||||
UMASetMenuItemText(menu, (SInt16) ::CountMenuItems(menu), title );
|
UMASetMenuItemText(menu, (SInt16) ::CountMenuItems(menu), title );
|
||||||
SetMenuItemHierarchicalID( menu , CountMenuItems( menu ) , id ) ;
|
SetMenuItemHierarchicalID( menu , CountMenuItems( menu ) , id ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAInsertSubMenuItem( MenuRef menu , const wxString& title , MenuItemIndex item , SInt16 id )
|
void UMAInsertSubMenuItem( MenuRef menu , const wxString& title , MenuItemIndex item , SInt16 id )
|
||||||
{
|
{
|
||||||
MacInsertMenuItem(menu, "\pA" , item);
|
MacInsertMenuItem(menu, "\pA" , item);
|
||||||
UMASetMenuItemText(menu, item , title );
|
UMASetMenuItemText(menu, item , title );
|
||||||
@ -266,24 +266,24 @@ void UMASetMenuItemShortcut( MenuRef menu , MenuItemIndex item , wxAcceleratorEn
|
|||||||
{
|
{
|
||||||
if ( !entry )
|
if ( !entry )
|
||||||
return ;
|
return ;
|
||||||
|
|
||||||
UInt8 modifiers = 0 ;
|
UInt8 modifiers = 0 ;
|
||||||
SInt16 key = entry->GetKeyCode() ;
|
SInt16 key = entry->GetKeyCode() ;
|
||||||
if ( key )
|
if ( key )
|
||||||
{
|
{
|
||||||
bool explicitCommandKey = false ;
|
bool explicitCommandKey = false ;
|
||||||
|
|
||||||
if ( entry->GetFlags() & wxACCEL_CTRL )
|
if ( entry->GetFlags() & wxACCEL_CTRL )
|
||||||
{
|
{
|
||||||
explicitCommandKey = true ;
|
explicitCommandKey = true ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry->GetFlags() & wxACCEL_ALT )
|
if (entry->GetFlags() & wxACCEL_ALT )
|
||||||
{
|
{
|
||||||
modifiers |= kMenuOptionModifier ;
|
modifiers |= kMenuOptionModifier ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (entry->GetFlags() & wxACCEL_SHIFT)
|
if (entry->GetFlags() & wxACCEL_SHIFT)
|
||||||
{
|
{
|
||||||
modifiers |= kMenuShiftModifier ;
|
modifiers |= kMenuShiftModifier ;
|
||||||
}
|
}
|
||||||
@ -298,7 +298,7 @@ void UMASetMenuItemShortcut( MenuRef menu , MenuItemIndex item , wxAcceleratorEn
|
|||||||
glyph += 13 ;
|
glyph += 13 ;
|
||||||
if ( !explicitCommandKey )
|
if ( !explicitCommandKey )
|
||||||
modifiers |= kMenuNoCommandModifier ;
|
modifiers |= kMenuNoCommandModifier ;
|
||||||
|
|
||||||
switch( key )
|
switch( key )
|
||||||
{
|
{
|
||||||
case WXK_F1 :
|
case WXK_F1 :
|
||||||
@ -426,18 +426,18 @@ void UMASetMenuItemShortcut( MenuRef menu , MenuItemIndex item , wxAcceleratorEn
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAAppendMenuItem( MenuRef menu , const wxString& title , wxAcceleratorEntry *entry )
|
void UMAAppendMenuItem( MenuRef menu , const wxString& title , wxAcceleratorEntry *entry )
|
||||||
{
|
{
|
||||||
MacAppendMenu(menu, "\pA");
|
MacAppendMenu(menu, "\pA");
|
||||||
UMASetMenuItemText(menu, (SInt16) ::CountMenuItems(menu), title );
|
UMASetMenuItemText(menu, (SInt16) ::CountMenuItems(menu), title );
|
||||||
UMASetMenuItemShortcut( menu , (SInt16) ::CountMenuItems(menu), entry ) ;
|
UMASetMenuItemShortcut( menu , (SInt16) ::CountMenuItems(menu), entry ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAInsertMenuItem( MenuRef menu , const wxString& title , MenuItemIndex item , wxAcceleratorEntry *entry )
|
void UMAInsertMenuItem( MenuRef menu , const wxString& title , MenuItemIndex item , wxAcceleratorEntry *entry )
|
||||||
{
|
{
|
||||||
MacInsertMenuItem( menu , "\p" , item) ;
|
MacInsertMenuItem( menu , "\pA" , item) ;
|
||||||
UMASetMenuItemText(menu, item , title );
|
UMASetMenuItemText(menu, item+1 , title );
|
||||||
UMASetMenuItemShortcut( menu , item , entry ) ;
|
UMASetMenuItemShortcut( menu , item+1 , entry ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
// quickdraw
|
// quickdraw
|
||||||
@ -481,7 +481,7 @@ pascal QDGlobalsPtr GetQDGlobalsPtr (void)
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void UMAShowWatchCursor()
|
void UMAShowWatchCursor()
|
||||||
{
|
{
|
||||||
OSErr err = noErr;
|
OSErr err = noErr;
|
||||||
|
|
||||||
@ -497,14 +497,14 @@ void UMAShowWatchCursor()
|
|||||||
// SetQDGlobalsArrow (*watchFob);
|
// SetQDGlobalsArrow (*watchFob);
|
||||||
// InitCursor ( );
|
// InitCursor ( );
|
||||||
// SetQDGlobalsArrow (&preservedArrow);
|
// SetQDGlobalsArrow (&preservedArrow);
|
||||||
SetCursor (*watchFob);
|
SetCursor (*watchFob);
|
||||||
#else
|
#else
|
||||||
SetCursor (*watchFob);
|
SetCursor (*watchFob);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAShowArrowCursor()
|
void UMAShowArrowCursor()
|
||||||
{
|
{
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
Cursor arrow;
|
Cursor arrow;
|
||||||
@ -516,23 +516,23 @@ void UMAShowArrowCursor()
|
|||||||
|
|
||||||
// window manager
|
// window manager
|
||||||
|
|
||||||
GrafPtr UMAGetWindowPort( WindowRef inWindowRef )
|
GrafPtr UMAGetWindowPort( WindowRef inWindowRef )
|
||||||
{
|
{
|
||||||
wxASSERT( inWindowRef != NULL ) ;
|
wxASSERT( inWindowRef != NULL ) ;
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
return (GrafPtr) GetWindowPort( inWindowRef ) ;
|
return (GrafPtr) GetWindowPort( inWindowRef ) ;
|
||||||
#else
|
#else
|
||||||
return (GrafPtr) inWindowRef ;
|
return (GrafPtr) inWindowRef ;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMADisposeWindow( WindowRef inWindowRef )
|
void UMADisposeWindow( WindowRef inWindowRef )
|
||||||
{
|
{
|
||||||
wxASSERT( inWindowRef != NULL ) ;
|
wxASSERT( inWindowRef != NULL ) ;
|
||||||
DisposeWindow( inWindowRef ) ;
|
DisposeWindow( inWindowRef ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMASetWTitle( WindowRef inWindowRef , const wxString& title )
|
void UMASetWTitle( WindowRef inWindowRef , const wxString& title )
|
||||||
{
|
{
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
SetWindowTitleWithCFString( inWindowRef , wxMacCFStringHolder(title) ) ;
|
SetWindowTitleWithCFString( inWindowRef , wxMacCFStringHolder(title) ) ;
|
||||||
@ -543,7 +543,7 @@ void UMASetWTitle( WindowRef inWindowRef , const wxString& title )
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAGetWTitleC( WindowRef inWindowRef , char *title )
|
void UMAGetWTitleC( WindowRef inWindowRef , char *title )
|
||||||
{
|
{
|
||||||
GetWTitle( inWindowRef , (unsigned char*)title ) ;
|
GetWTitle( inWindowRef , (unsigned char*)title ) ;
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
@ -555,7 +555,7 @@ void UMAGetWTitleC( WindowRef inWindowRef , char *title )
|
|||||||
|
|
||||||
// appearance additions
|
// appearance additions
|
||||||
|
|
||||||
void UMASetControlTitle( ControlHandle inControl , const wxString& title )
|
void UMASetControlTitle( ControlHandle inControl , const wxString& title )
|
||||||
{
|
{
|
||||||
#if TARGET_CARBON
|
#if TARGET_CARBON
|
||||||
SetControlTitleWithCFString( inControl , wxMacCFStringHolder(title) ) ;
|
SetControlTitleWithCFString( inControl , wxMacCFStringHolder(title) ) ;
|
||||||
@ -566,7 +566,7 @@ void UMASetControlTitle( ControlHandle inControl , const wxString& title )
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAActivateControl( ControlHandle inControl )
|
void UMAActivateControl( ControlHandle inControl )
|
||||||
{
|
{
|
||||||
// we have to add the control after again to the update rgn
|
// we have to add the control after again to the update rgn
|
||||||
// otherwise updates get lost
|
// otherwise updates get lost
|
||||||
@ -584,7 +584,7 @@ void UMAActivateControl( ControlHandle inControl )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMADrawControl( ControlHandle inControl )
|
void UMADrawControl( ControlHandle inControl )
|
||||||
{
|
{
|
||||||
WindowRef theWindow = GetControlOwner(inControl) ;
|
WindowRef theWindow = GetControlOwner(inControl) ;
|
||||||
RgnHandle updateRgn = NewRgn() ;
|
RgnHandle updateRgn = NewRgn() ;
|
||||||
@ -597,7 +597,7 @@ void UMADrawControl( ControlHandle inControl )
|
|||||||
DisposeRgn( updateRgn ) ;
|
DisposeRgn( updateRgn ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMAMoveControl( ControlHandle inControl , short x , short y )
|
void UMAMoveControl( ControlHandle inControl , short x , short y )
|
||||||
{
|
{
|
||||||
bool visible = IsControlVisible( inControl ) ;
|
bool visible = IsControlVisible( inControl ) ;
|
||||||
if ( visible ) {
|
if ( visible ) {
|
||||||
@ -613,14 +613,14 @@ void UMAMoveControl( ControlHandle inControl , short x , short y )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMASizeControl( ControlHandle inControl , short x , short y )
|
void UMASizeControl( ControlHandle inControl , short x , short y )
|
||||||
{
|
{
|
||||||
bool visible = IsControlVisible( inControl ) ;
|
bool visible = IsControlVisible( inControl ) ;
|
||||||
if ( visible ) {
|
if ( visible ) {
|
||||||
SetControlVisibility( inControl , false , false ) ;
|
SetControlVisibility( inControl , false , false ) ;
|
||||||
Rect ctrlBounds ;
|
Rect ctrlBounds ;
|
||||||
InvalWindowRect(GetControlOwner(inControl),GetControlBounds(inControl,&ctrlBounds) ) ;
|
InvalWindowRect(GetControlOwner(inControl),GetControlBounds(inControl,&ctrlBounds) ) ;
|
||||||
}
|
}
|
||||||
::SizeControl( inControl , x , y ) ;
|
::SizeControl( inControl , x , y ) ;
|
||||||
if ( visible ) {
|
if ( visible ) {
|
||||||
SetControlVisibility( inControl , true , false ) ;
|
SetControlVisibility( inControl , true , false ) ;
|
||||||
@ -629,7 +629,7 @@ void UMASizeControl( ControlHandle inControl , short x , short y )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void UMADeactivateControl( ControlHandle inControl )
|
void UMADeactivateControl( ControlHandle inControl )
|
||||||
{
|
{
|
||||||
// we have to add the control after again to the update rgn
|
// we have to add the control after again to the update rgn
|
||||||
// otherwise updates get lost
|
// otherwise updates get lost
|
||||||
@ -676,32 +676,32 @@ OSErr UMASetKeyboardFocus (WindowPtr inWindow,
|
|||||||
|
|
||||||
|
|
||||||
// events
|
// events
|
||||||
void UMAUpdateControls( WindowPtr inWindow , RgnHandle inRgn )
|
void UMAUpdateControls( WindowPtr inWindow , RgnHandle inRgn )
|
||||||
{
|
{
|
||||||
RgnHandle updateRgn = NewRgn() ;
|
RgnHandle updateRgn = NewRgn() ;
|
||||||
GetWindowUpdateRgn( inWindow , updateRgn ) ;
|
GetWindowUpdateRgn( inWindow , updateRgn ) ;
|
||||||
|
|
||||||
Point zero = { 0 , 0 } ;
|
Point zero = { 0 , 0 } ;
|
||||||
LocalToGlobal( &zero ) ;
|
LocalToGlobal( &zero ) ;
|
||||||
OffsetRgn( updateRgn , -zero.h , -zero.v ) ;
|
OffsetRgn( updateRgn , -zero.h , -zero.v ) ;
|
||||||
|
|
||||||
UpdateControls( inWindow , inRgn ) ;
|
UpdateControls( inWindow , inRgn ) ;
|
||||||
InvalWindowRgn( inWindow, updateRgn) ;
|
InvalWindowRgn( inWindow, updateRgn) ;
|
||||||
DisposeRgn( updateRgn ) ;
|
DisposeRgn( updateRgn ) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UMAIsWindowFloating( WindowRef inWindow )
|
bool UMAIsWindowFloating( WindowRef inWindow )
|
||||||
{
|
{
|
||||||
WindowClass cl ;
|
WindowClass cl ;
|
||||||
|
|
||||||
GetWindowClass( inWindow , &cl ) ;
|
GetWindowClass( inWindow , &cl ) ;
|
||||||
return cl == kFloatingWindowClass ;
|
return cl == kFloatingWindowClass ;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool UMAIsWindowModal( WindowRef inWindow )
|
bool UMAIsWindowModal( WindowRef inWindow )
|
||||||
{
|
{
|
||||||
WindowClass cl ;
|
WindowClass cl ;
|
||||||
|
|
||||||
GetWindowClass( inWindow , &cl ) ;
|
GetWindowClass( inWindow , &cl ) ;
|
||||||
return cl < kFloatingWindowClass ;
|
return cl < kFloatingWindowClass ;
|
||||||
}
|
}
|
||||||
@ -726,12 +726,12 @@ void UMAHighlightAndActivateWindow( WindowRef inWindowRef , bool inActivate )
|
|||||||
UMAActivateControl( control ) ;
|
UMAActivateControl( control ) ;
|
||||||
else
|
else
|
||||||
UMADeactivateControl( control ) ;
|
UMADeactivateControl( control ) ;
|
||||||
}
|
}
|
||||||
SetPort( port ) ;
|
SetPort( port ) ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
OSStatus UMADrawThemePlacard( const Rect *inRect , ThemeDrawState inState )
|
OSStatus UMADrawThemePlacard( const Rect *inRect , ThemeDrawState inState )
|
||||||
{
|
{
|
||||||
return ::DrawThemePlacard( inRect , inState ) ;
|
return ::DrawThemePlacard( inRect , inState ) ;
|
||||||
}
|
}
|
||||||
@ -763,7 +763,7 @@ OSStatus UMAGetHelpMenu(
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
wxMacPortStateHelper::wxMacPortStateHelper( GrafPtr newport)
|
wxMacPortStateHelper::wxMacPortStateHelper( GrafPtr newport)
|
||||||
{
|
{
|
||||||
m_clip = NULL ;
|
m_clip = NULL ;
|
||||||
Setup( newport ) ;
|
Setup( newport ) ;
|
||||||
@ -784,7 +784,7 @@ void wxMacPortStateHelper::Setup( GrafPtr newport )
|
|||||||
m_textFont = GetPortTextFont( (CGrafPtr) newport);
|
m_textFont = GetPortTextFont( (CGrafPtr) newport);
|
||||||
m_textSize = GetPortTextSize( (CGrafPtr) newport);
|
m_textSize = GetPortTextSize( (CGrafPtr) newport);
|
||||||
m_textStyle = GetPortTextFace( (CGrafPtr) newport);
|
m_textStyle = GetPortTextFace( (CGrafPtr) newport);
|
||||||
m_textMode = GetPortTextMode( (CGrafPtr) newport);
|
m_textMode = GetPortTextMode( (CGrafPtr) newport);
|
||||||
GetThemeDrawingState( &m_drawingState ) ;
|
GetThemeDrawingState( &m_drawingState ) ;
|
||||||
m_currentPort = newport ;
|
m_currentPort = newport ;
|
||||||
}
|
}
|
||||||
@ -821,7 +821,7 @@ OSStatus UMAPutScrap( Size size , OSType type , void *data )
|
|||||||
err = PutScrap( size , type , data ) ;
|
err = PutScrap( size , type , data ) ;
|
||||||
#else
|
#else
|
||||||
ScrapRef scrap;
|
ScrapRef scrap;
|
||||||
err = GetCurrentScrap (&scrap);
|
err = GetCurrentScrap (&scrap);
|
||||||
if ( !err )
|
if ( !err )
|
||||||
{
|
{
|
||||||
err = PutScrapFlavor (scrap, type , 0, size, data);
|
err = PutScrapFlavor (scrap, type , 0, size, data);
|
||||||
|
Loading…
Reference in New Issue
Block a user