///////////////////////////////////////////////////////////////////////////////
-// Name: msw/fontutil.cpp
+// Name: src/msw/fontutil.cpp
// Purpose: font-related helper functions for wxMSW
// Author: Vadim Zeitlin
// Modified by:
// Created: 05.11.99
-// RCS-ID: $Id$
// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
// headers
// ----------------------------------------------------------------------------
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma implementation "fontutil.h"
-#endif
-
// For compilers that support precompilation, includes "wx.h".
#include "wx/wxprec.h"
#pragma hdrstop
#endif
+#include "wx/fontutil.h"
+
#ifndef WX_PRECOMP
#include "wx/string.h"
#include "wx/log.h"
#include "wx/intl.h"
- #include "wx/encinfo.h"
+ #include "wx/wxcrtvararg.h"
+ #include "wx/msw/private.h"
#endif //WX_PRECOMP
-#include "wx/msw/private.h"
-
-#include "wx/fontutil.h"
+#include "wx/encinfo.h"
#include "wx/fontmap.h"
-
#include "wx/tokenzr.h"
// for MSVC5 and old w32api
bool wxNativeEncodingInfo::FromString(const wxString& s)
{
- wxStringTokenizer tokenizer(s, _T(";"));
+ wxStringTokenizer tokenizer(s, wxT(";"));
wxString encid = tokenizer.GetNextToken();
}
else
{
- if ( wxSscanf(tmp, _T("%u"), &charset) != 1 )
+ if ( wxSscanf(tmp, wxT("%u"), &charset) != 1 )
{
// should be a number!
- return FALSE;
+ return false;
}
}
- return TRUE;
+ return true;
}
wxString wxNativeEncodingInfo::ToString() const
// we don't have any choice but to use the raw value
<< (long)encoding
#endif // wxUSE_FONTMAP/!wxUSE_FONTMAP
- << _T(';') << facename;
+ << wxT(';') << facename;
// ANSI_CHARSET is assumed anyhow
if ( charset != ANSI_CHARSET )
{
- s << _T(';') << charset;
+ s << wxT(';') << charset;
}
return s;
bool wxGetNativeFontEncoding(wxFontEncoding encoding,
wxNativeEncodingInfo *info)
{
- wxCHECK_MSG( info, FALSE, _T("bad pointer in wxGetNativeFontEncoding") );
+ wxCHECK_MSG( info, false, wxT("bad pointer in wxGetNativeFontEncoding") );
if ( encoding == wxFONTENCODING_DEFAULT )
{
extern WXDLLIMPEXP_BASE long wxEncodingToCharset(wxFontEncoding encoding);
info->charset = wxEncodingToCharset(encoding);
if ( info->charset == -1 )
- return FALSE;
+ return false;
info->encoding = encoding;
- return TRUE;
+ return true;
}
bool wxTestFontEncoding(const wxNativeEncodingInfo& info)
LOGFONT lf;
wxZeroMemory(lf); // all default values
- lf.lfCharSet = info.charset;
- wxStrncpy(lf.lfFaceName, info.facename, WXSIZEOF(lf.lfFaceName));
+ lf.lfCharSet = (BYTE)info.charset;
+ wxStrlcpy(lf.lfFaceName, info.facename.c_str(), WXSIZEOF(lf.lfFaceName));
HFONT hfont = ::CreateFontIndirect(&lf);
if ( !hfont )
{
// no such font
- return FALSE;
+ return false;
}
::DeleteObject((HGDIOBJ)hfont);
- return TRUE;
+ return true;
}
// ----------------------------------------------------------------------------
switch ( cs )
{
default:
- // assume the system charset
+ wxFAIL_MSG( wxT("unexpected Win32 charset") );
+ // fall through and assume the system charset
+
+ case DEFAULT_CHARSET:
fontEncoding = wxFONTENCODING_SYSTEM;
break;
fontEncoding = wxFONTENCODING_CP1252;
break;
+ case SYMBOL_CHARSET:
+ // what can we do here?
+ fontEncoding = wxFONTENCODING_MAX;
+ break;
+
#if defined(__WIN32__) && !defined(__WXMICROWIN__)
case EASTEUROPE_CHARSET:
fontEncoding = wxFONTENCODING_CP1250;
break;
case THAI_CHARSET:
- fontEncoding = wxFONTENCODING_CP437;
+ fontEncoding = wxFONTENCODING_CP874;
break;
case SHIFTJIS_CHARSET:
fontEncoding = wxFONTENCODING_CP950;
break;
+ case VIETNAMESE_CHARSET:
+ fontEncoding = wxFONTENCODING_CP1258;
+ break;
+
+ case JOHAB_CHARSET:
+ fontEncoding = wxFONTENCODING_CP1361;
+ break;
+
#endif // Win32
case OEM_CHARSET: