X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d54a3e735ea36690c514fa935f35c99344a4ef32..4bc6f7a06c494917409bbb673526f090bc51d2d2:/src/xrc/xmlres.cpp?ds=inline diff --git a/src/xrc/xmlres.cpp b/src/xrc/xmlres.cpp index d2bb2f63de..5a82615c3a 100644 --- a/src/xrc/xmlres.cpp +++ b/src/xrc/xmlres.cpp @@ -1094,21 +1094,17 @@ wxBitmap wxXmlResourceHandler::GetBitmap(const wxString& param, wxImage img(*(fsfile->GetStream())); delete fsfile; #else - wxImage img(GetParamValue(wxT("bitmap"))); + wxImage img(name); #endif if (!img.Ok()) { wxLogError(_("XRC resource: Cannot create bitmap from '%s'."), - param.c_str()); + name.c_str()); return wxNullBitmap; } if (!(size == wxDefaultSize)) img.Rescale(size.x, size.y); -#if !defined(__WXMSW__) || wxUSE_WXDIB return wxBitmap(img); -#else - return wxBitmap(); -#endif } @@ -1291,10 +1287,10 @@ wxFont wxXmlResourceHandler::GetFont(const wxString& param) // font attributes: // size - int isize = wxDEFAULT; + int isize = -1; bool hasSize = HasParam(wxT("size")); if (hasSize) - isize = GetLong(wxT("size"), wxDEFAULT); + isize = GetLong(wxT("size"), -1); // style int istyle = wxNORMAL; @@ -1372,36 +1368,38 @@ wxFont wxXmlResourceHandler::GetFont(const wxString& param) } // is this font based on a system font? - wxFont sysfont = GetSystemFont(GetParamValue(wxT("sysfont"))); + wxFont font = GetSystemFont(GetParamValue(wxT("sysfont"))); - if (sysfont.Ok()) + if (font.Ok()) { - if (hasSize) - sysfont.SetPointSize(isize); + if (hasSize && isize != -1) + font.SetPointSize(isize); else if (HasParam(wxT("relativesize"))) - sysfont.SetPointSize(int(sysfont.GetPointSize() * + font.SetPointSize(int(font.GetPointSize() * GetFloat(wxT("relativesize")))); if (hasStyle) - sysfont.SetStyle(istyle); + font.SetStyle(istyle); if (hasWeight) - sysfont.SetWeight(iweight); + font.SetWeight(iweight); if (hasUnderlined) - sysfont.SetUnderlined(underlined); + font.SetUnderlined(underlined); if (hasFamily) - sysfont.SetFamily(ifamily); + font.SetFamily(ifamily); if (hasFacename) - sysfont.SetFaceName(facename); + font.SetFaceName(facename); if (hasEncoding) - sysfont.SetDefaultEncoding(enc); - - m_node = oldnode; - return sysfont; + font.SetDefaultEncoding(enc); + } + else // not based on system font + { + font = wxFont(isize == -1 ? wxNORMAL_FONT->GetPointSize() : isize, + ifamily, istyle, iweight, + underlined, facename, enc); } m_node = oldnode; - return wxFont(isize, ifamily, istyle, iweight, - underlined, facename, enc); + return font; }