- if (font->GetStyle() == wxITALIC || font->GetStyle() == wxSLANT)
- ff_italic = 1;
- else
- ff_italic = 0;
-
- if (font->GetWeight() == wxNORMAL)
- ff_weight = FW_NORMAL;
- else if (font->GetWeight() == wxLIGHT)
- ff_weight = FW_LIGHT;
- else if (font->GetWeight() == wxBOLD)
- ff_weight = FW_BOLD;
-
- // Have to get screen DC Caps, because a metafile will return 0.
- HDC dc2 = ::GetDC(NULL);
- int ppInch = ::GetDeviceCaps(dc2, LOGPIXELSY);
- ::ReleaseDC(NULL, dc2);
-
- // New behaviour: apparently ppInch varies according to
- // Large/Small Fonts setting in Windows. This messes
- // up fonts. So, set ppInch to a constant 96 dpi.
- ppInch = 96;
-
-#if wxFONT_SIZE_COMPATIBILITY
- // Incorrect, but compatible with old wxWindows behaviour
- int nHeight = (font->GetPointSize()*ppInch/72);
-#else
- // Correct for Windows compatibility
- int nHeight = - (font->GetPointSize()*ppInch/72);
-#endif
-
- bool ff_underline = font->GetUnderlined();
-
- ff_face = font->GetFaceName();
-
- logFont->lfHeight = nHeight;
- logFont->lfWidth = 0;
- logFont->lfEscapement = 0;
- logFont->lfOrientation = 0;
- logFont->lfWeight = ff_weight;
- logFont->lfItalic = ff_italic;
- logFont->lfUnderline = (BYTE)ff_underline;
- logFont->lfStrikeOut = 0;
- logFont->lfCharSet = ANSI_CHARSET;
- logFont->lfOutPrecision = OUT_DEFAULT_PRECIS;
- logFont->lfClipPrecision = CLIP_DEFAULT_PRECIS;
- logFont->lfQuality = PROOF_QUALITY;
- logFont->lfPitchAndFamily = DEFAULT_PITCH | ff_family;
- wxStrcpy(logFont->lfFaceName, ff_face);
-}
-
-wxFont wxCreateFontFromLogFont(LOGFONT *logFont) // , bool createNew)
-{
- int fontFamily = wxSWISS;
- int fontStyle = wxNORMAL;
- int fontWeight = wxNORMAL;
- int fontPoints = 10;
- bool fontUnderline = FALSE;
- wxChar *fontFace = NULL;
-
-// int lfFamily = logFont->lfPitchAndFamily & 0xF0;
- int lfFamily = logFont->lfPitchAndFamily;
- if (lfFamily & FIXED_PITCH)
- lfFamily -= FIXED_PITCH;
- if (lfFamily & VARIABLE_PITCH)
- lfFamily -= VARIABLE_PITCH;
-
- switch (lfFamily)
- {
- case FF_ROMAN:
- fontFamily = wxROMAN;
- break;
- case FF_SWISS:
- fontFamily = wxSWISS;
- break;
- case FF_SCRIPT:
- fontFamily = wxSCRIPT;
- break;
- case FF_MODERN:
- fontFamily = wxMODERN;
- break;
- case FF_DECORATIVE:
- fontFamily = wxDECORATIVE;
- break;
- default:
- fontFamily = wxSWISS;
- break;
- }
- switch (logFont->lfWeight)
- {
- case FW_LIGHT:
- fontWeight = wxLIGHT;
- break;
- case FW_NORMAL:
- fontWeight = wxNORMAL;
- break;
- case FW_BOLD:
- fontWeight = wxBOLD;
- break;
- default:
- fontWeight = wxNORMAL;
- break;
- }
- if (logFont->lfItalic)
- fontStyle = wxITALIC;
- else
- fontStyle = wxNORMAL;
-
- if (logFont->lfUnderline)
- fontUnderline = TRUE;
-
- if (logFont->lfFaceName)
- fontFace = logFont->lfFaceName;
-
- HDC dc2 = ::GetDC(NULL);