bool underlined,
const wxString& facename,
const wxString& xregistry,
- const wxString& xencoding);
+ const wxString& xencoding,
+ wxString* xFontName);
// ============================================================================
// implementation
int weight,
bool underlined,
const wxString &facename,
- wxFontEncoding encoding)
+ wxFontEncoding encoding,
+ wxString* xFontName)
{
if ( encoding == wxFONTENCODING_DEFAULT )
{
}
// OK, we have the correct xregistry/xencoding in info structure
- wxNativeFont font = wxLoadQueryFont( pointSize, family, style, weight,
+ wxNativeFont font = 0;
+
+ // if we already have the X font name, try to use it
+ if( xFontName && !xFontName->IsEmpty() )
+ font = wxLoadFont(*xFontName);
+
+ if( !font )
+ font = wxLoadQueryFont( pointSize, family, style, weight,
underlined, facename,
- info.xregistry, info.xencoding );
+ info.xregistry, info.xencoding,
+ xFontName );
if ( !font )
{
for ( i = pointSize - 10; !font && i >= 10 && i >= min_size; i -= 10 )
{
font = wxLoadQueryFont(i, family, style, weight, underlined,
- facename, info.xregistry, info.xencoding);
+ facename, info.xregistry, info.xencoding,
+ xFontName);
}
// Search for larger size (approx.)
for ( i = pointSize + 10; !font && i <= max_size; i += 10 )
{
font = wxLoadQueryFont(i, family, style, weight, underlined,
- facename, info.xregistry, info.xencoding);
+ facename, info.xregistry, info.xencoding,
+ xFontName);
}
// Try default family
{
font = wxLoadQueryFont(pointSize, wxDEFAULT, style, weight,
underlined, facename,
- info.xregistry, info.xencoding );
+ info.xregistry, info.xencoding,
+ xFontName );
}
// Bogus font I
{
font = wxLoadQueryFont(120, wxDEFAULT, wxNORMAL, wxNORMAL,
underlined, facename,
- info.xregistry, info.xencoding);
+ info.xregistry, info.xencoding,
+ xFontName);
}
// Bogus font II
{
font = wxLoadQueryFont(120, wxDEFAULT, wxNORMAL, wxNORMAL,
underlined, wxEmptyString,
- info.xregistry, info.xencoding);
+ info.xregistry, info.xencoding,
+ xFontName);
}
}
bool WXUNUSED(underlined),
const wxString& facename,
const wxString& xregistry,
- const wxString& xencoding)
+ const wxString& xencoding,
+ wxString* xFontName)
{
wxString xfamily;
switch (family)
xfamily.c_str(), xweight.c_str(), xstyle.c_str(),
pointSize, xregistry.c_str(), xencoding.c_str());
+ if( xFontName )
+ *xFontName = fontSpec;
+
return wxLoadFont(fontSpec);
}