public:
wxFontRefData()
{
- Init(10, wxDEFAULT, wxNORMAL, wxNORMAL,
+ Init(10, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL,
false, wxT("applicationfont"), wxFONTENCODING_DEFAULT);
}
}
wxFontRefData(int size,
- int family,
- int style,
- int weight,
+ wxFontFamily family,
+ wxFontStyle style,
+ wxFontWeight weight,
bool underlined,
const wxString& faceName,
wxFontEncoding encoding)
int GetPointSize() const { return m_pointSize; }
- void SetFamily( int family )
+ void SetFamily( wxFontFamily family )
{
m_family = family;
MacInvalidateNativeFont();
}
- int GetFamily() const { return m_family; }
+ wxFontFamily GetFamily() const { return m_family; }
- void SetStyle( int style )
+ void SetStyle( wxFontStyle style )
{
m_style = style;
MacInvalidateNativeFont();
}
- int GetStyle() const { return m_style; }
+ wxFontStyle GetStyle() const { return m_style; }
- void SetWeight( int weight )
+ void SetWeight( wxFontWeight weight )
{
m_weight = weight;
MacInvalidateNativeFont();
}
- int GetWeight() const { return m_weight; }
+ wxFontWeight GetWeight() const { return m_weight; }
void SetUnderlined( bool u )
{
protected:
// common part of all ctors
void Init(int size,
- int family,
- int style,
- int weight,
+ wxFontFamily family,
+ wxFontStyle style,
+ wxFontWeight weight,
bool underlined,
const wxString& faceName,
wxFontEncoding encoding);
#endif
// font characterstics
int m_pointSize;
- int m_family;
- int m_style;
- int m_weight;
+ wxFontFamily m_family;
+ wxFontStyle m_style;
+ wxFontWeight m_weight;
bool m_underlined;
wxString m_faceName;
wxFontEncoding m_encoding;
// ----------------------------------------------------------------------------
void wxFontRefData::Init(int pointSize,
- int family,
- int style,
- int weight,
+ wxFontFamily family,
+ wxFontStyle style,
+ wxFontWeight weight,
bool underlined,
const wxString& faceName,
wxFontEncoding encoding)
void wxFontRefData::Init( CTFontRef font )
{
- Init(10, wxDEFAULT, wxNORMAL, wxNORMAL,
+ Init(10, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL,
false, wxT("applicationfont"), wxFONTENCODING_DEFAULT);
m_ctFont.reset( font );
#if wxOSX_USE_CORE_TEXT
if ( UMAGetSystemVersion() >= 0x1050 )
{
- if ( m_faceName.empty() && m_family == wxDEFAULT )
+ if ( m_faceName.empty() && m_family == wxFONTFAMILY_DEFAULT )
{
m_ctFont.reset(CTFontCreateUIFontForLanguage( kCTFontSystemFontType, 0.0, NULL ));
}
m_pointSize = CTFontGetSize(m_ctFont) ;
CTFontSymbolicTraits traits = CTFontGetSymbolicTraits( m_ctFont );
if ( traits & kCTFontItalicTrait )
- m_style = wxITALIC;
+ m_style = wxFONTSTYLE_ITALIC;
if ( traits & kCTFontBoldTrait )
- m_weight = wxBOLD ;
+ m_weight = wxFONTWEIGHT_BOLD ;
}
else
{
{
switch ( m_family )
{
- case wxSCRIPT :
- case wxROMAN :
- case wxDECORATIVE :
+ case wxFONTFAMILY_SCRIPT :
+ case wxFONTFAMILY_ROMAN :
+ case wxFONTFAMILY_DECORATIVE :
m_faceName = wxT("Times");
break ;
- case wxSWISS :
+ case wxFONTFAMILY_SWISS :
m_faceName = wxT("Helvetica");
break ;
- case wxMODERN :
- case wxTELETYPE:
+ case wxFONTFAMILY_MODERN :
+ case wxFONTFAMILY_TELETYPE:
m_faceName = wxT("Courier");
- if ( m_style == wxITALIC && m_weight == wxNORMAL )
+ if ( m_style == wxFONTSTYLE_ITALIC && m_weight == wxFONTWEIGHT_NORMAL )
{
- m_style = wxITALIC;
+ m_style = wxFONTSTYLE_ITALIC;
}
break ;
}
}
-
+
CTFontSymbolicTraits traits = 0;
- if (m_weight == wxBOLD)
+ if (m_weight == wxFONTWEIGHT_BOLD)
traits |= kCTFontBoldTrait;
- if (m_style == wxITALIC || m_style == wxSLANT)
+ if (m_style == wxFONTSTYLE_ITALIC || m_style == wxFONTSTYLE_SLANT)
traits |= kCTFontItalicTrait;
-
+
// use font caching
wxString lookupnameWithSize = wxString::Format( "%s_%ld_%ld", m_faceName.c_str(), traits, m_pointSize );
-
+
static std::map< std::wstring , wxCFRef< CTFontRef > > fontcache ;
m_ctFont = fontcache[ std::wstring(lookupnameWithSize.wc_str()) ];
if ( !m_ctFont )
// QD selection algorithm is the fastest by orders of magnitude on 10.5
if ( m_faceName.IsAscii() )
{
- uint8 qdstyle = 0;
- if (m_weight == wxBOLD)
+ uint8_t qdstyle = 0;
+ if (m_weight == wxFONTWEIGHT_BOLD)
qdstyle |= bold;
- if (m_style == wxITALIC || m_style == wxSLANT)
+ if (m_style == wxFONTSTYLE_ITALIC || m_style == wxFONTSTYLE_SLANT)
qdstyle |= italic;
-
+
Str255 qdFontName ;
wxMacStringToPascal( m_faceName , qdFontName );
m_ctFont.reset( CTFontCreateWithQuickdrawInstance(qdFontName, 0 , qdstyle, m_pointSize) );
// TODO further fallbacks, synthesizing bold and italic, trying direct PostScript names etc
}
}
-
+
fontcache[ std::wstring(lookupnameWithSize.wc_str()) ] = m_ctFont;
#if 1 // debugging coretext font matching
CTFontSymbolicTraits received = CTFontGetSymbolicTraits( m_ctFont ) & 0x03;
CFShow( dict );
CFRelease( dict );
}
-#endif
+#endif
}
}
&fmfont ,
&atsuSize ,
&kHorizontal,
- (m_weight == wxBOLD) ? &kTrue : &kFalse ,
- (m_style == wxITALIC || m_style == wxSLANT) ? &kTrue : &kFalse ,
+ (m_weight == wxFONTWEIGHT_BOLD) ? &kTrue : &kFalse ,
+ (m_style == wxFONTSTYLE_ITALIC || m_style == wxFONTSTYLE_SLANT) ? &kTrue : &kFalse ,
(m_underlined) ? &kTrue : &kFalse ,
};
m_macFontStyle = style ;
m_faceName = wxMacMakeStringFromPascal( qdFontName );
if ( m_macFontStyle & bold )
- m_weight = wxBOLD ;
+ m_weight = wxFONTWEIGHT_BOLD ;
else
- m_weight = wxNORMAL ;
+ m_weight = wxFONTWEIGHT_NORMAL ;
if ( m_macFontStyle & italic )
- m_style = wxITALIC ;
+ m_style = wxFONTSTYLE_ITALIC ;
if ( m_macFontStyle & underline )
m_underlined = true ;
m_pointSize = m_macFontSize ;
{
if ( m_faceName.empty() )
{
- if ( m_family == wxDEFAULT )
+ if ( m_family == wxFONTFAMILY_DEFAULT )
{
m_macFontFamily = GetAppFont();
FMGetFontFamilyName(m_macFontFamily,qdFontName);
{
switch ( m_family )
{
- case wxSCRIPT :
- case wxROMAN :
- case wxDECORATIVE :
+ case wxFONTFAMILY_SCRIPT :
+ case wxFONTFAMILY_ROMAN :
+ case wxFONTFAMILY_DECORATIVE :
m_faceName = wxT("Times");
break ;
- case wxSWISS :
+ case wxFONTFAMILY_SWISS :
m_faceName = wxT("Helvetica");
break ;
- case wxMODERN :
- case wxTELETYPE:
+ case wxFONTFAMILY_MODERN :
+ case wxFONTFAMILY_TELETYPE:
m_faceName = wxT("Courier");
break ;
}
m_macFontStyle = 0;
- if (m_weight == wxBOLD)
+ if (m_weight == wxFONTWEIGHT_BOLD)
m_macFontStyle |= bold;
- if (m_style == wxITALIC || m_style == wxSLANT)
+ if (m_style == wxFONTSTYLE_ITALIC || m_style == wxFONTSTYLE_SLANT)
m_macFontStyle |= italic;
if (m_underlined)
m_macFontStyle |= underline;
}
bool wxFont::Create(int pointSize,
- int family,
- int style,
- int weight,
- bool underlined,
- const wxString& faceName,
- wxFontEncoding encoding)
+ wxFontFamily family,
+ wxFontStyle style,
+ wxFontWeight weight,
+ bool underlined,
+ const wxString& faceName,
+ wxFontEncoding encoding)
{
UnRef();
#endif
-#if wxOSX_USE_CARBON
+#if wxOSX_USE_ATSU_TEXT
bool wxFont::MacCreateFromThemeFont(wxUint16 themeFontID)
{
#if wxOSX_USE_CORE_TEXT
return MacCreateFromUIFont(HIThemeGetUIFontType(themeFontID));
}
#endif
-#if wxOSX_USE_ATSU_TEXT
{
UnRef();
m_refData = new wxFontRefData(
- 12, wxDEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL,
+ 12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL,
false, wxEmptyString, wxFONTENCODING_DEFAULT );
M_FONTDATA->m_macThemeFontID = themeFontID ;
RealizeResource();
return true;
}
-#endif
return false;
}
#endif
wxGDIRefData *wxFont::CloneGDIRefData(const wxGDIRefData *data) const
{
- return new wxFontRefData(*wx_static_cast(const wxFontRefData *, data));
+ return new wxFontRefData(*static_cast<const wxFontRefData *>(data));
}
void wxFont::SetPointSize(int pointSize)
RealizeResource();
}
-void wxFont::SetFamily(int family)
+void wxFont::SetFamily(wxFontFamily family)
{
Unshare();
RealizeResource();
}
-void wxFont::SetStyle(int style)
+void wxFont::SetStyle(wxFontStyle style)
{
Unshare();
RealizeResource();
}
-void wxFont::SetWeight(int weight)
+void wxFont::SetWeight(wxFontWeight weight)
{
Unshare();
#endif
}
-int wxFont::GetFamily() const
+wxFontFamily wxFont::GetFamily() const
{
- wxCHECK_MSG( M_FONTDATA != NULL , 0, wxT("invalid font") );
+ wxCHECK_MSG( M_FONTDATA != NULL , wxFONTFAMILY_MAX, wxT("invalid font") );
return M_FONTDATA->GetFamily();
}
-int wxFont::GetStyle() const
+wxFontStyle wxFont::GetStyle() const
{
- wxCHECK_MSG( M_FONTDATA != NULL , 0, wxT("invalid font") );
+ wxCHECK_MSG( M_FONTDATA != NULL , wxFONTSTYLE_MAX, wxT("invalid font") );
return M_FONTDATA->GetStyle() ;
}
-int wxFont::GetWeight() const
+wxFontWeight wxFont::GetWeight() const
{
- wxCHECK_MSG( M_FONTDATA != NULL , 0, wxT("invalid font") );
+ wxCHECK_MSG( M_FONTDATA != NULL , wxFONTWEIGHT_MAX, wxT("invalid font") );
return M_FONTDATA->GetWeight();
}