// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
-#define DEBUG_PRINTF(NAME) { static int raz=0; \
- printf( #NAME " %i\n",raz); fflush(stdout); \
- raz++; \
- }
// ============================================================================
// declarations
// headers
// ----------------------------------------------------------------------------
-#ifdef __GNUG__
- #pragma implementation "fontutil.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
+#define DEBUG_PRINTF(NAME) \
+ { \
+ static int raz=0; \
+ printf( #NAME " %i\n",raz); fflush(stdout); \
+ raz++; \
+ }
+
#ifndef WX_PRECOMP
#include "wx/app.h"
#include "wx/string.h"
// convert to/from the string representation: format is
// encodingid;facename[;charset]
-bool wxNativeEncodingInfo::FromString(
- const wxString& rsStr
-)
+bool wxNativeEncodingInfo::FromString( const wxString& rsStr )
{
wxStringTokenizer vTokenizer(rsStr, _T(";"));
wxString sEncid = vTokenizer.GetNextToken();
return FALSE;
}
}
- return TRUE;
+ return true;
} // end of wxNativeEncodingInfo::FromString
wxString wxNativeEncodingInfo::ToString() const
// helper functions
// ----------------------------------------------------------------------------
-bool wxGetNativeFontEncoding(
- wxFontEncoding vEncoding
-, wxNativeEncodingInfo* pInfo
-)
+bool wxGetNativeFontEncoding( wxFontEncoding vEncoding,
+ wxNativeEncodingInfo* pInfo )
{
wxCHECK_MSG(pInfo, FALSE, _T("bad pointer in wxGetNativeFontEncoding") );
if (vEncoding == wxFONTENCODING_DEFAULT)
pInfo->charset = 850;
break;
}
- return TRUE;
+ return true;
} // end of wxGetNativeFontEncoding
wxFontEncoding wxGetFontEncFromCharSet(
return eFontEncoding;
} // end of wxGetNativeFontEncoding
-bool wxTestFontEncoding(
- const wxNativeEncodingInfo& rInfo
-)
+bool wxTestFontEncoding( const wxNativeEncodingInfo& rInfo )
{
- FATTRS vLogFont;
- HPS hPS;
+ FATTRS vLogFont;
+ HPS hPS;
hPS = ::WinGetPS(HWND_DESKTOP);
memset(&vLogFont, '\0', sizeof(FATTRS)); // all default values
vLogFont.usRecordLength = sizeof(FATTRS);
- vLogFont.usCodePage = rInfo.charset;
+ vLogFont.usCodePage = (USHORT)rInfo.charset;
vLogFont.lMaxBaselineExt = 0L; // Outline fonts should use 0
vLogFont.lAveCharWidth = 0L; // Outline fonts should use 0
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
return FALSE;
}
::WinReleasePS(hPS);
- return TRUE;
+ return true;
} // end of wxTestFontEncoding
// ----------------------------------------------------------------------------
// 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
-void wxFillLogFont(
- LOGFONT* pFattrs // OS2 GPI FATTRS
-, PFACENAMEDESC pFaceName
-, HPS* phPS
-, bool* pbInternalPS
-, long* pflId
-, wxString& sFaceName
-, wxFont* pFont
-)
+void wxFillLogFont( LOGFONT* pFattrs, // OS2 GPI FATTRS
+ PFACENAMEDESC pFaceName,
+ HPS* phPS,
+ bool* pbInternalPS,
+ long* pflId,
+ wxString& sFaceName,
+ wxFont* pFont )
{
- LONG lNumFonts = 0L; // For system font count
- ERRORID vError; // For logging API errors
- LONG lTemp = 0L;
- bool bInternalPS = FALSE; // if we have to create one
- PFONTMETRICS pFM = NULL;
+ LONG lNumFonts = 0L; // For system font count
+ ERRORID vError; // For logging API errors
+ LONG lTemp = 0L;
+ bool bInternalPS = false; // if we have to create one
+ PFONTMETRICS pFM = NULL;
//
// Initial house cleaning to free data buffers and ensure we have a
if (!*phPS)
{
*phPS = ::WinGetPS(HWND_DESKTOP);
- bInternalPS = TRUE;
+ bInternalPS = true;
}
//
break;
}
- wxStrncpy(zFontFaceName, sFaceName.c_str(), WXSIZEOF(zFontFaceName));
+ wxStrlcpy(zFontFaceName, sFaceName.c_str(), WXSIZEOF(zFontFaceName));
nPointSize = pFont->GetPointSize();
//
}
return rc;
}
-