X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5b781a6729859abc77e6ca5b1f81cbaad974a78f..5541d1fda4b73af86e42b2f43724f0c063a352d0:/src/mac/carbon/font.cpp?ds=inline diff --git a/src/mac/carbon/font.cpp b/src/mac/carbon/font.cpp index 79d93657fb..ab906cad67 100644 --- a/src/mac/carbon/font.cpp +++ b/src/mac/carbon/font.cpp @@ -18,9 +18,13 @@ #include "wx/font.h" #include "wx/fontutil.h" #include "wx/gdicmn.h" +#include "wx/utils.h" #include "wx/fontutil.h" +#include "wx/mac/private.h" +#include "ATSUnicode.h" + #if !USE_SHARED_LIBRARIES IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject) #endif @@ -94,9 +98,13 @@ void wxFontRefData::MacFindFont() m_macFontNum = ::GetAppFont() ; else { - strcpy(wxBuffer, m_faceName); - C2PStr(wxBuffer); - ::GetFNum( (unsigned char*) wxBuffer, &m_macFontNum); +#if TARGET_CARBON + c2pstrcpy( (StringPtr) wxBuffer, m_faceName ) ; +#else + strcpy( (char *) wxBuffer, m_faceName ) ; + c2pstr( (char *) wxBuffer ) ; +#endif + ::GetFNum( (StringPtr) wxBuffer, &m_macFontNum); } } @@ -108,6 +116,12 @@ 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); + wxASSERT_MSG( status == noErr , "couldn't retrieve font identifier" ) ; } // ---------------------------------------------------------------------------- @@ -116,8 +130,6 @@ void wxFontRefData::MacFindFont() void wxFont::Init() { - if ( wxTheFontList ) - wxTheFontList->Append(this); } bool wxFont::Create(const wxNativeFontInfo& info) @@ -152,8 +164,6 @@ bool wxFont::Create(int pointSize, wxFont::~wxFont() { - if (wxTheFontList) - wxTheFontList->DeleteObject(this); } bool wxFont::RealizeResource()