///////////////////////////////////////////////////////////////////////////////
-// Name: msw/fontutil.cpp
+// Name: src/msw/fontutil.cpp
// Purpose: font-related helper functions for wxMSW
// Author: Modified by David Webster for OS/2
// Modified by:
// Created: 01.03.00
-// RCS-ID: $Id$
// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
bool wxNativeEncodingInfo::FromString( const wxString& rsStr )
{
- wxStringTokenizer vTokenizer(rsStr, _T(";"));
+ wxStringTokenizer vTokenizer(rsStr, wxT(";"));
wxString sEncid = vTokenizer.GetNextToken();
long lEnc;
}
else
{
- if ( wxSscanf(sTmp, _T("%u"), &charset) != 1 )
+ if ( wxSscanf(sTmp, wxT("%u"), &charset) != 1 )
{
// should be a number!
return FALSE;
{
wxString sStr;
- sStr << (long)encoding << _T(';') << facename;
+ sStr << (long)encoding << wxT(';') << facename;
if (charset != 850)
{
- sStr << _T(';') << charset;
+ sStr << wxT(';') << charset;
}
return sStr;
} // end of wxNativeEncodingInfo::ToString
bool wxGetNativeFontEncoding( wxFontEncoding vEncoding,
wxNativeEncodingInfo* pInfo )
{
- wxCHECK_MSG(pInfo, FALSE, _T("bad pointer in wxGetNativeFontEncoding") );
+ wxCHECK_MSG(pInfo, FALSE, wxT("bad pointer in wxGetNativeFontEncoding") );
if (vEncoding == wxFONTENCODING_DEFAULT)
{
vEncoding = wxFont::GetDefaultEncoding();
vLogFont.fsFontUse = FATTR_FONTUSE_OUTLINE | // only outline fonts allowed
FATTR_FONTUSE_TRANSFORMABLE; // may be transformed
- wxStrncpy((wxChar*)vLogFont.szFacename, rInfo.facename.c_str(), WXSIZEOF(vLogFont.szFacename));
+ wxStrlcpy((wxChar*)vLogFont.szFacename, rInfo.facename.c_str(), WXSIZEOF(vLogFont.szFacename));
if (!::GpiCreateLogFont( hPS
,NULL
// NOTE: 1 point == 1/72 of an inch.
//
- vSizef.cx = (FIXED)(((fxPointSize) / 72 ) * lXFontResolution );
- vSizef.cy = (FIXED)(((fxPointSize) / 72 ) * lYFontResolution );
+ // multiply first to avoid getting vSizef.cx,cy = 0 since fxPointSize
+ // is normally < 72 and FontResolution is typically ca. 100
+ vSizef.cx = (FIXED)( (fxPointSize * lXFontResolution) / 72 );
+ vSizef.cy = (FIXED)( (fxPointSize * lYFontResolution) / 72 );
- pFattrs->lMaxBaselineExt = MAKELONG( HIUSHORT( vSizef.cy ), 0 );
- pFattrs->lAveCharWidth = MAKELONG( HIUSHORT( vSizef.cx ), 0 );
+ if (pFattrs)
+ {
+ pFattrs->lMaxBaselineExt = MAKELONG( HIUSHORT( vSizef.cy ), 0 );
+ pFattrs->lAveCharWidth = MAKELONG( HIUSHORT( vSizef.cx ), 0 );
+ }
WinReleasePS(hPS);
} // end of wxConvertVectorPointSize
switch (pFont->GetWeight())
{
default:
- wxFAIL_MSG(_T("unknown font weight"));
+ wxFAIL_MSG(wxT("unknown font weight"));
// fall through
usWeightClass = FWEIGHT_DONT_CARE;
break;
break;
}
- wxStrncpy(zFontFaceName, sFaceName.c_str(), WXSIZEOF(zFontFaceName));
+ wxStrlcpy(zFontFaceName, sFaceName.c_str(), WXSIZEOF(zFontFaceName));
nPointSize = pFont->GetPointSize();
//
nIndex = 0;
for(i = 0, nIs = 0; i < nNumFonts; i++)
{
- int nEmHeight = 0;
- int nXHeight = 0;
-
anDiff[0] = wxGpiStrcmp((wxChar*)pFM[i].szFacename, zFontFaceName);
anDiff[1] = abs(pFM[i].lEmHeight - nPointSize);
anDiff[2] = abs(pFM[i].usWeightClass - usWeightClass);
anDiff[3] = abs((pFM[i].fsSelection & 0x2f) - fsSelection);
if(anDiff[0] == 0)
{
- nEmHeight = (int)pFM[i].lEmHeight;
- nXHeight =(int)pFM[i].lXHeight;
if( (nIs & 0x01) == 0)
{
nIs = 1;