1 ///////////////////////////////////////////////////////////////////////////////
2 // Name: msw/fontutil.cpp
3 // Purpose: font-related helper functions for wxMSW
4 // Author: Vadim Zeitlin
8 // Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
9 // Licence: wxWindows license
10 ///////////////////////////////////////////////////////////////////////////////
12 // ============================================================================
14 // ============================================================================
16 // ----------------------------------------------------------------------------
18 // ----------------------------------------------------------------------------
21 #pragma implementation "fontutil.h"
24 // For compilers that support precompilation, includes "wx.h".
25 #include "wx/wxprec.h"
32 #include "wx/string.h"
37 #include "wx/fontutil.h"
38 #include "wx/fontmap.h"
40 #include "wx/tokenzr.h"
42 // ============================================================================
44 // ============================================================================
46 // ----------------------------------------------------------------------------
47 // wxNativeEncodingInfo
48 // ----------------------------------------------------------------------------
50 // convert to/from the string representation: format is
53 bool wxNativeEncodingInfo::FromString(const wxString
& s
)
55 wxStringTokenizer
tokenizer(s
, _T(";"));
57 facename
= tokenizer
.GetNextToken();
61 wxString tmp
= tokenizer
.GetNextToken();
64 // default charset (don't use DEFAULT_CHARSET though because of subtle
65 // Windows 9x/NT differences in handling it)
70 if ( wxSscanf(tmp
, _T("%u"), &charset
) != 1 )
72 // should be a number!
80 wxString
wxNativeEncodingInfo::ToString() const
85 s
<< _T(';') << charset
;
91 // ----------------------------------------------------------------------------
93 // ----------------------------------------------------------------------------
95 bool wxGetNativeFontEncoding(wxFontEncoding encoding
,
96 wxNativeEncodingInfo
*info
)
98 wxCHECK_MSG( info
, FALSE
, _T("bad pointer in wxGetNativeFontEncoding") );
100 if ( encoding
== wxFONTENCODING_DEFAULT
)
102 encoding
= wxFont::GetDefaultEncoding();
107 // although this function is supposed to return an exact match, do do
108 // some mappings here for the most common case of "standard" encoding
109 case wxFONTENCODING_SYSTEM
:
110 case wxFONTENCODING_ISO8859_1
:
111 case wxFONTENCODING_ISO8859_15
:
112 case wxFONTENCODING_CP1252
:
116 case wxFONTENCODING_CP1250
:
120 case wxFONTENCODING_CP1251
:
124 case wxFONTENCODING_CP1253
:
128 case wxFONTENCODING_CP1254
:
132 case wxFONTENCODING_CP1255
:
136 case wxFONTENCODING_CP1256
:
140 case wxFONTENCODING_CP1257
:
144 case wxFONTENCODING_CP437
:
149 // no way to translate this encoding into a Windows charset
153 info
->encoding
= encoding
;
158 bool wxTestFontEncoding(const wxNativeEncodingInfo
& info
)