X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/16d865f756b8bc251467139b3b75752219ab97bd..e7300ec6d9ebbd1cfa2fcf12c0ce6e5aee85a152:/src/unix/fontutil.cpp diff --git a/src/unix/fontutil.cpp b/src/unix/fontutil.cpp index dd89039962..9501ea5ee7 100644 --- a/src/unix/fontutil.cpp +++ b/src/unix/fontutil.cpp @@ -425,7 +425,7 @@ wxNativeFont wxLoadQueryNearestFont(int pointSize, !wxTestFontEncoding(info) ) { #if wxUSE_FONTMAP - if ( !wxTheFontMapper->GetAltForEncoding(encoding, &info) ) + if ( !wxFontMapper::Get()->GetAltForEncoding(encoding, &info) ) #endif // wxUSE_FONTMAP { // unspported encoding - replace it with the default @@ -614,23 +614,54 @@ static wxNativeFont wxLoadQueryFont(int pointSize, default: xfamily = wxT("*"); } #if wxUSE_NANOX + int xweight; + switch (weight) + { + case wxBOLD: + { + xweight = MWLF_WEIGHT_BOLD; + break; + } + case wxLIGHT: + { + xweight = MWLF_WEIGHT_LIGHT; + break; + } + case wxNORMAL: + { + xweight = MWLF_WEIGHT_NORMAL; + break; + } + + default: + { + xweight = MWLF_WEIGHT_DEFAULT; + break; + } + } GR_SCREEN_INFO screenInfo; GrGetScreenInfo(& screenInfo); int yPixelsPerCM = screenInfo.ydpcm; - // A point is 1/20 of an inch. + // A point is 1/72 of an inch. // An inch is 2.541 cm. - // So pixelHeight = (pointSize / 20) (inches) * 2.541 (for cm) * yPixelsPerCM (for pixels) - - int pixelHeight = (int) ( (((float)pointSize) / 20.0) * 2.541 * (float) yPixelsPerCM) ; + // So pixelHeight = (pointSize / 72) (inches) * 2.541 (for cm) * yPixelsPerCM (for pixels) + // In fact pointSize is 10 * the normal point size so + // divide by 10. + + int pixelHeight = (int) ( (((float)pointSize) / 720.0) * 2.541 * (float) yPixelsPerCM) ; + + // An alternative: assume that the screen is 72 dpi. + //int pixelHeight = (int) (((float)pointSize / 720.0) * 72.0) ; + //int pixelHeight = (int) ((float)pointSize / 10.0) ; GR_LOGFONT logFont; logFont.lfHeight = pixelHeight; logFont.lfWidth = 0; logFont.lfEscapement = 0; logFont.lfOrientation = 0; - logFont.lfWeight = weight; // TODO: check of conversion req'd + logFont.lfWeight = xweight; logFont.lfItalic = (style == wxNORMAL ? 0 : 1) ; logFont.lfUnderline = 0; logFont.lfStrikeOut = 0; @@ -810,7 +841,7 @@ static wxNativeFont wxLoadQueryFont(int pointSize, // if pointSize is -1, don't specify any wxString sizeSpec; - if ( fontSpec == -1 ) + if ( pointSize == -1 ) { sizeSpec = _T('*'); }