{
wxCHECK_MSG( info, FALSE, _T("bad pointer in GetAltForEncoding") );
+ if ( encoding == wxFONTENCODING_DEFAULT )
+ {
+ encoding = wxFont::GetDefaultEncoding();
+ }
+
+ // if we failed to load the system default encoding, something is really
+ // wrong and we'd better stop now - otherwise we will go into endless
+ // recursion trying to create the font in the msg box with the error
+ // message
+ if ( encoding == wxFONTENCODING_SYSTEM )
+ {
+ wxFatalError(_("can't load any font, aborting"));
+
+ // wxFatalError doesn't return
+ }
+
wxString configEntry = GetEncodingName(encoding);
// do we have a font spec for this encoding?
#elif defined(__WXGTK__)
static inline wxNativeFont wxLoadFont(const wxString& fontSpec)
{
- wxNativeFont font = gdk_font_load( wxConvertWX2MB(fontSpec) );
- if(fontSpec == "-*-*-*-*-*-*-*-*-*-*-*-*-*-*")
- {
- if(font == NULL)
- font = gdk_font_load (wxConvertWX2MB("-*-*-*-*-*-*-*-*-75-*-*-*-*-*"));
- if(font == NULL)
- font = gdk_font_load (wxConvertWX2MB("-*-*-*-*-*-*-*-*-100-*-*-*-*-*"));
- if(font == NULL)
- font = gdk_font_load (wxConvertWX2MB("-*-fixed-*-*-*-*-*-*-*-*-*-*-*-*"));
- }
- return font;
+ return gdk_font_load( wxConvertWX2MB(fontSpec) );
}
static inline void wxFreeFont(wxNativeFont font)
const wxString &facename,
wxFontEncoding encoding)
{
+ if ( encoding == wxFONTENCODING_DEFAULT )
+ {
+ encoding = wxFont::GetDefaultEncoding();
+ }
+
// first determine the encoding - if the font doesn't exist at all in this
// encoding, it's useless to do all other approximations (i.e. size,
// family &c don't matter much)
wxNativeEncodingInfo info;
- if (encoding == wxFONTENCODING_SYSTEM)
+ if ( encoding == wxFONTENCODING_SYSTEM )
{
// This will always work so we don't test to save time
wxGetNativeFontEncoding(wxFONTENCODING_SYSTEM, &info);
// so it would provoke a crash
wxGetNativeFontEncoding(wxFONTENCODING_SYSTEM, &info);
}
- }
+ }
}
// OK, we have the correct xregistry/xencoding in info structure
-
wxNativeFont font = wxLoadQueryFont( pointSize, family, style, weight,
underlined, facename,
info.xregistry, info.xencoding );
// returns TRUE if there are any fonts matching this font spec
static bool wxTestFontSpec(const wxString& fontspec)
{
+ // some X servers will fail to load this font because there are too many
+ // matches so we must test explicitly for this
+ if ( fontspec == _T("-*-*-*-*-*-*-*-*-*-*-*-*-*-*") )
+ {
+ return TRUE;
+ }
+
wxNativeFont test = wxLoadFont(fontspec);
if ( test )
{