+ if( m_faceName == "" )
+ {
+ switch( m_family )
+ {
+ case wxDEFAULT :
+ m_macFontNum = ::GetAppFont() ;
+ break ;
+ case wxDECORATIVE :
+ ::GetFNum( "\pTimes" , &m_macFontNum) ;
+ break ;
+ case wxROMAN :
+ ::GetFNum( "\pTimes" , &m_macFontNum) ;
+ break ;
+ case wxSCRIPT :
+ ::GetFNum( "\pTimes" , &m_macFontNum) ;
+ break ;
+ case wxSWISS :
+ ::GetFNum( "\pGeneva" , &m_macFontNum) ;
+ break ;
+ case wxMODERN :
+ ::GetFNum( "\pMonaco" , &m_macFontNum) ;
+ break ;
+ }
+ }
+ else
+ {
+ if ( m_faceName == "systemfont" )
+ m_macFontNum = ::GetSysFont() ;
+ else if ( m_faceName == "applicationfont" )
+ m_macFontNum = ::GetAppFont() ;
+ else
+ {
+#if TARGET_CARBON
+ c2pstrcpy( (StringPtr) wxBuffer, m_faceName ) ;
+#else
+ strcpy( (char *) wxBuffer, m_faceName ) ;
+ c2pstr( (char *) wxBuffer ) ;
+#endif
+ ::GetFNum( (StringPtr) wxBuffer, &m_macFontNum);
+ }
+ }
+
+ m_macFontStyle = 0;
+ if (m_weight == wxBOLD)
+ m_macFontStyle |= bold;
+ if (m_style == wxITALIC || m_style == wxSLANT)
+ m_macFontStyle |= italic;
+ if (m_underlined)
+ m_macFontStyle |= underline;
+ m_macFontSize = m_pointSize ;
+
+ //TODO:if we supply the style as an additional parameter we must make a testing
+ //sequence in order to degrade gracefully while trying to maintain most of the style
+ //information, meanwhile we just take the normal font and apply the features after
+ OSStatus status = ::ATSUFONDtoFontID(m_macFontNum, normal /*qdStyle*/, (UInt32*)&m_macATSUFontID);
+ wxASSERT_MSG( status == noErr , "couldn't retrieve font identifier" ) ;