}
wxFontEncoding GetEncoding() const { return m_info.GetEncoding(); }
+
+ bool IsFixedWidth() const;
void Free();
Init();
#if wxOSX_USE_CORE_TEXT
- if ( UMAGetSystemVersion() >= 0x1050 )
{
CTFontUIFontType uifont = kCTFontSystemFontType;
switch( font )
m_info.EnsureValid();
#if wxOSX_USE_CORE_TEXT
- if ( UMAGetSystemVersion() >= 0x1050 )
{
CTFontSymbolicTraits traits = 0;
m_fontValid = true;
}
+bool wxFontRefData::IsFixedWidth() const
+{
+#if wxOSX_USE_CORE_TEXT
+ CTFontSymbolicTraits traits = CTFontGetSymbolicTraits(m_ctFont);
+ return (traits & kCTFontMonoSpaceTrait) != 0;
+#else
+ return false;
+#endif
+}
+
// ----------------------------------------------------------------------------
// wxFont
// ----------------------------------------------------------------------------
void wxFont::SetPointSize(int pointSize)
{
- if ( M_FONTDATA->GetPointSize() == pointSize )
+ if ( M_FONTDATA != NULL && M_FONTDATA->GetPointSize() == pointSize )
return;
AllocExclusive();
#endif
}
+bool wxFont::IsFixedWidth() const
+{
+ wxCHECK_MSG( M_FONTDATA != NULL , false, wxT("invalid font") );
+
+ // cast away constness otherwise lazy font resolution is not possible
+ const_cast<wxFont *>(this)->RealizeResource();
+
+ return M_FONTDATA->IsFixedWidth();
+}
+
wxFontFamily wxFont::DoGetFamily() const
{
return M_FONTDATA->GetFamily();