- tn.GetNextToken(); // x-res
- tn.GetNextToken(); // y-res
-
- tmp = tn.GetNextToken().MakeUpper(); // spacing
-
- if (tmp == wxT("M"))
- M_FONTDATA->m_family = wxMODERN;
- else if (M_FONTDATA->m_faceName == wxT("TIMES"))
- M_FONTDATA->m_family = wxROMAN;
- else if (M_FONTDATA->m_faceName == wxT("HELVETICA"))
- M_FONTDATA->m_family = wxSWISS;
- else if (M_FONTDATA->m_faceName == wxT("LUCIDATYPEWRITER"))
- M_FONTDATA->m_family = wxTELETYPE;
- else if (M_FONTDATA->m_faceName == wxT("LUCIDA"))
- M_FONTDATA->m_family = wxDECORATIVE;
- else if (M_FONTDATA->m_faceName == wxT("UTOPIA"))
- M_FONTDATA->m_family = wxSCRIPT;
-
- tn.GetNextToken(); // avg width
-
- // deal with font encoding
- M_FONTDATA->m_encoding = fontdata.GetEncoding();
- if ( M_FONTDATA->m_encoding == wxFONTENCODING_SYSTEM )
- {
- wxString registry = tn.GetNextToken().MakeUpper(),
- encoding = tn.GetNextToken().MakeUpper();
-
- if ( registry == _T("ISO8859") )
- {
- int cp;
- if ( wxSscanf(encoding, wxT("%d"), &cp) == 1 )
- {
- M_FONTDATA->m_encoding =
- (wxFontEncoding)(wxFONTENCODING_ISO8859_1 + cp - 1);
- }
- }
- else if ( registry == _T("MICROSOFT") )
- {
- int cp;
- if ( wxSscanf(encoding, wxT("cp125%d"), &cp) == 1 )
- {
- M_FONTDATA->m_encoding =
- (wxFontEncoding)(wxFONTENCODING_CP1250 + cp);
- }
- }
- else if ( registry == _T("KOI8") )
- {
- M_FONTDATA->m_encoding = wxFONTENCODING_KOI8;
- }
- //else: unknown encoding - may be give a warning here?
- }
+ // set all the other font parameters from the native font info
+ InitFromNative();
+}
+
+// ----------------------------------------------------------------------------
+// wxFont creation
+// ----------------------------------------------------------------------------
+
+IMPLEMENT_DYNAMIC_CLASS(wxFont, wxGDIObject)
+
+wxFont::wxFont(const wxNativeFontInfo& info)
+{
+ Create( info.GetPointSize(),
+ info.GetFamily(),
+ info.GetStyle(),
+ info.GetWeight(),
+ info.GetUnderlined(),
+ info.GetFaceName(),
+ info.GetEncoding() );