X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/03e11df5470fd64d9d9a669d0b50b84c2d714736..24174c30e0fe2fe0bdbe6e54b98c084b38e53494:/src/mac/carbon/font.cpp diff --git a/src/mac/carbon/font.cpp b/src/mac/carbon/font.cpp index d425b3cf95..d1b4798cc4 100644 --- a/src/mac/carbon/font.cpp +++ b/src/mac/carbon/font.cpp @@ -22,6 +22,9 @@ #include "wx/fontutil.h" +#include "wx/mac/private.h" +#include "ATSUnicode.h" + #if !USE_SHARED_LIBRARIES IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) #endif @@ -51,9 +54,9 @@ void wxFontRefData::Init(int pointSize, m_faceName = faceName; m_encoding = encoding; - m_macFontNum = 0 ; - m_macFontSize = 0; - m_macFontStyle = 0; + m_macFontNum = 0 ; + m_macFontSize = 0; + m_macFontStyle = 0; m_fontId = 0; } @@ -86,6 +89,10 @@ void wxFontRefData::MacFindFont() ::GetFNum( "\pMonaco" , &m_macFontNum) ; break ; } + Str255 name ; + GetFontName( m_macFontNum , name ) ; + CopyPascalStringToC( name , (char*) name ) ; + m_faceName = (char*) name ; } else { @@ -113,6 +120,16 @@ void wxFontRefData::MacFindFont() 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); + /* + status = ATSUFindFontFromName ( (Ptr) m_faceName , strlen( m_faceName ) , + kFontFullName, kFontMacintoshPlatform, kFontRomanScript , kFontNoLanguage , (UInt32*)&m_macATSUFontID ) ; + */ + wxASSERT_MSG( status == noErr , "couldn't retrieve font identifier" ) ; } // ---------------------------------------------------------------------------- @@ -121,8 +138,6 @@ void wxFontRefData::MacFindFont() void wxFont::Init() { - if ( wxTheFontList ) - wxTheFontList->Append(this); } bool wxFont::Create(const wxNativeFontInfo& info) @@ -157,8 +172,6 @@ bool wxFont::Create(int pointSize, wxFont::~wxFont() { - if (wxTheFontList) - wxTheFontList->DeleteObject(this); } bool wxFont::RealizeResource()