X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1b75810c8d1099abc9692d81e059a3a90afcbdcc..9c8cfcb9c56798ebd29184e40227451a194c0c49:/src/os2/fontutil.cpp diff --git a/src/os2/fontutil.cpp b/src/os2/fontutil.cpp index 01b7d7b4ff..010a2b6dd6 100644 --- a/src/os2/fontutil.cpp +++ b/src/os2/fontutil.cpp @@ -6,12 +6,8 @@ // Created: 01.03.00 // RCS-ID: $Id$ // Copyright: (c) 1999 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// -#define DEBUG_PRINTF(NAME) { static int raz=0; \ - printf( #NAME " %i\n",raz); fflush(stdout); \ - raz++; \ - } // ============================================================================ // declarations @@ -21,13 +17,16 @@ // 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" @@ -39,6 +38,7 @@ #include "wx/fontutil.h" #include "wx/fontmap.h" +#include "wx/encinfo.h" #include "wx/tokenzr.h" @@ -53,9 +53,7 @@ // 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(); @@ -82,7 +80,7 @@ bool wxNativeEncodingInfo::FromString( return FALSE; } } - return TRUE; + return true; } // end of wxNativeEncodingInfo::FromString wxString wxNativeEncodingInfo::ToString() const @@ -102,10 +100,8 @@ 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) @@ -167,7 +163,7 @@ bool wxGetNativeFontEncoding( pInfo->charset = 850; break; } - return TRUE; + return true; } // end of wxGetNativeFontEncoding wxFontEncoding wxGetFontEncFromCharSet( @@ -222,24 +218,22 @@ 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 - strncpy(vLogFont.szFacename, rInfo.facename.c_str(), sizeof(vLogFont.szFacename)); + wxStrncpy((wxChar*)vLogFont.szFacename, rInfo.facename.c_str(), WXSIZEOF(vLogFont.szFacename)); if (!::GpiCreateLogFont( hPS ,NULL @@ -251,7 +245,7 @@ bool wxTestFontEncoding( return FALSE; } ::WinReleasePS(hPS); - return TRUE; + return true; } // end of wxTestFontEncoding // ---------------------------------------------------------------------------- @@ -296,21 +290,19 @@ void wxConvertVectorFontSize( } // 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 @@ -319,7 +311,7 @@ void wxFillLogFont( if (!*phPS) { *phPS = ::WinGetPS(HWND_DESKTOP); - bInternalPS = TRUE; + bInternalPS = true; } // @@ -391,7 +383,6 @@ void wxFillLogFont( // font, so now we need to generate an ID // long lNumLids = ::GpiQueryNumberSetIds(*phPS); - long lGpiError; if(lNumLids ) { @@ -413,7 +404,7 @@ void wxFillLogFont( } if (*pflId == 0L) *pflId = 1L; - for(unsigned long LCNum = 0; LCNum < lNumLids; LCNum++) + for(unsigned long LCNum = 0; LCNum < (unsigned long)lNumLids; LCNum++) if(alIds[LCNum] == *pflId) ++*pflId; if(*pflId > 254) // wow, no id available! @@ -447,7 +438,7 @@ void wxFillLogFont( { vError = ::WinGetLastError(vHabmain); } - sFaceName = zFacename; + sFaceName = (wxChar*)zFacename; *pbInternalPS = bInternalPS; // @@ -464,18 +455,13 @@ void wxOS2SelectMatchingFontByName( ) { int i; - int nDiff0; int nPointSize; - int nDiff; int nIs; - int nMinDiff; int nMinDiff0; - int nApirc; int anDiff[16]; int anMinDiff[16]; int nIndex = 0; - STR8 zFn; - char zFontFaceName[FACESIZE]; + wxChar zFontFaceName[FACESIZE]; wxString sFaceName; USHORT usWeightClass; int fsSelection = 0; @@ -570,7 +556,7 @@ void wxOS2SelectMatchingFontByName( int nEmHeight = 0; int nXHeight = 0; - anDiff[0] = wxGpiStrcmp(pFM[i].szFacename, zFontFaceName); + 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); @@ -640,13 +626,13 @@ void wxOS2SelectMatchingFontByName( // pFattrs->usRecordLength = sizeof(FATTRS); // Sets size of structure pFattrs->lMatch = pFM[nIndex].lMatch; // Force match - pFattrs->idRegistry = 0; // Registry - pFattrs->usCodePage = 0; // Match proper CodePage - pFattrs->fsFontUse = 0; // Use only outline fonts - pFattrs->fsType = 0; // Use only outline fonts - pFattrs->lMaxBaselineExt = 0; // Use only outline fonts - pFattrs->lAveCharWidth = 0; // Use only outline fonts - wxStrcpy(pFattrs->szFacename, pFM[nIndex].szFacename); + pFattrs->idRegistry = 0; + pFattrs->usCodePage = 0; + pFattrs->fsFontUse = 0; + pFattrs->fsType = 0; + pFattrs->lMaxBaselineExt = 0; + pFattrs->lAveCharWidth = 0; + wxStrcpy((wxChar*)pFattrs->szFacename, (wxChar*)pFM[nIndex].szFacename); if (pFont->GetWeight() == wxNORMAL) pFattrs->fsSelection = 0; else @@ -674,8 +660,8 @@ wxFont wxCreateFontFromLogFont( } // end of wxCreateFontFromLogFont int wxGpiStrcmp( - char* s0 -, char* s1 + wxChar* s0 +, wxChar* s1 ) { int l0; int l1; @@ -696,8 +682,8 @@ int wxGpiStrcmp( else if(s1 == NULL) return 32; - l0 = strlen(s0); - l1 = strlen(s1); + l0 = wxStrlen(s0); + l1 = wxStrlen(s1); l = l0; if(l0 != l1) { @@ -710,11 +696,10 @@ int wxGpiStrcmp( d = s0[i]-s1[i]; if(!d) continue; - d1 = toupper(s0[i]) - toupper(s1[i]); + d1 = wxToupper(s0[i]) - wxToupper(s1[i]); if(!d1) continue; rc += abs(d); } return rc; } -