fall back from wxITALIC to wxSLANT and vice versa
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5035 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -391,10 +391,47 @@ static wxNativeFont wxLoadQueryFont(int pointSize,
|
||||
wxString xstyle;
|
||||
switch (style)
|
||||
{
|
||||
case wxITALIC: xstyle = wxT("i"); break;
|
||||
case wxSLANT: xstyle = wxT("o"); break;
|
||||
case wxNORMAL: xstyle = wxT("r"); break;
|
||||
default: xstyle = wxT("*"); break;
|
||||
case wxSLANT:
|
||||
fontSpec.Printf(wxT("-*-%s-*-o-*-*-*-*-*-*-*-*-*-*"),
|
||||
xfamily.c_str());
|
||||
if ( wxTestFontSpec(fontSpec) )
|
||||
{
|
||||
xstyle = wxT("o");
|
||||
break;
|
||||
}
|
||||
// fall through - try wxITALIC now
|
||||
|
||||
case wxITALIC:
|
||||
fontSpec.Printf(wxT("-*-%s-*-i-*-*-*-*-*-*-*-*-*-*"),
|
||||
xfamily.c_str());
|
||||
if ( wxTestFontSpec(fontSpec) )
|
||||
{
|
||||
xstyle = wxT("i");
|
||||
}
|
||||
else if ( style == wxITALIC ) // and not wxSLANT
|
||||
{
|
||||
// try wxSLANT
|
||||
fontSpec.Printf(wxT("-*-%s-*-o-*-*-*-*-*-*-*-*-*-*"),
|
||||
xfamily.c_str());
|
||||
if ( wxTestFontSpec(fontSpec) )
|
||||
{
|
||||
xstyle = wxT("o");
|
||||
}
|
||||
else
|
||||
{
|
||||
// no italic, no slant - leave default
|
||||
xstyle = wxT("*");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
wxFAIL_MSG(_T("unknown font style"));
|
||||
// fall back to normal
|
||||
|
||||
case wxNORMAL:
|
||||
xstyle = wxT("r");
|
||||
break;
|
||||
}
|
||||
|
||||
wxString xweight;
|
||||
|
Reference in New Issue
Block a user