//
inline int GetPointSize(void) const
{
- return m_bNativeFontInfoOk ? m_vNativeFontInfo.GetPointSize()
- : m_nPointSize;
+ //
+ // We don't use the actual native font point size since it is
+ // the chosen physical font, which is usually only and approximation
+ // of the desired outline font. The actual displayable point size
+ // is the one stored in the refData
+ //
+ return m_nPointSize;
}
inline int GetFamily(void) const
{
wxString sFaceName;
long flId = m_hFont;
+ long lRc;
+ short nIndex = 0;
+ PFONTMETRICS pFM = NULL;
if (!m_bNativeFontInfoOk)
{
m_bNativeFontInfoOk = TRUE;
}
- if(::GpiCreateLogFont( m_hPS
- ,NULL
- ,flId
- ,&m_vNativeFontInfo.fa
- ) != GPI_ERROR)
+ if((lRc = ::GpiCreateLogFont( m_hPS
+ ,NULL
+ ,flId
+ ,&m_vNativeFontInfo.fa
+ )) != GPI_ERROR)
+ {
m_hFont = (WXHFONT)flId;
m_nFontId = flId;
-
+ }
if (!m_hFont)
{
wxLogLastError("CreateFont");
}
- //
- // Query for the actual metrics of the current font being used
- //
+ ::GpiSetCharSet(m_hPS, flId); // sets font for presentation space
::GpiQueryFontMetrics(m_hPS, sizeof(FONTMETRICS), &m_vNativeFontInfo.fm);
//
//
memcpy(&m_vFattrs, &m_vNativeFontInfo.fa, sizeof(m_vFattrs));
memcpy(&m_vFname, &m_vNativeFontInfo.fn, sizeof(m_vFname));
- m_nPointSize = m_vNativeFontInfo.fm.lEmHeight;
+ //
+ // Going to leave the point size alone. Mostly we use outline fonts
+ // that can be set to any point size inside of Presentation Parameters,
+ // regardless of whether or not the actual font is registered in the system.
+ // The GpiCreateLogFont will do enough by selecting the right family,
+ // and face name.
+ //
if (strcmp(m_vNativeFontInfo.fa.szFacename, "Times New Roman") == 0)
m_nFamily = wxROMAN;
+ else if (strcmp(m_vNativeFontInfo.fa.szFacename, "Tms Rmn") == 0)
+ m_nFamily = wxSWISS;
else if (strcmp(m_vNativeFontInfo.fa.szFacename, "WarpSans") == 0)
m_nFamily = wxSWISS;
+ else if (strcmp(m_vNativeFontInfo.fa.szFacename, "Helvitica") == 0)
+ m_nFamily = wxSWISS;
+ else if (strcmp(m_vNativeFontInfo.fa.szFacename, "Helv") == 0)
+ m_nFamily = wxSWISS;
else if (strcmp(m_vNativeFontInfo.fa.szFacename, "Script") == 0)
m_nFamily = wxSCRIPT;
else if (strcmp(m_vNativeFontInfo.fa.szFacename, "Courier New") == 0)
- m_nFamily = wxMODERN;
+ m_nFamily = wxTELETYPE;
else if (strcmp(m_vNativeFontInfo.fa.szFacename, "Courier") == 0)
+ m_nFamily = wxTELETYPE;
+ else if (strcmp(m_vNativeFontInfo.fa.szFacename, "System VIO") == 0)
m_nFamily = wxMODERN;
else
m_nFamily = wxSWISS;