fixed HTML colours parsing after patch #1473731 ('wxColourBase and wxString <-> wxColour implementation') broke it
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -411,18 +411,16 @@ int wxHtmlTag::ScanParam(const wxString& par,
|
|||||||
|
|
||||||
bool wxHtmlTag::GetParamAsColour(const wxString& par, wxColour *clr) const
|
bool wxHtmlTag::GetParamAsColour(const wxString& par, wxColour *clr) const
|
||||||
{
|
{
|
||||||
wxASSERT(clr);
|
wxCHECK_MSG( clr, false, _T("invalid colour argument") );
|
||||||
|
|
||||||
wxString str = GetParam(par);
|
wxString str = GetParam(par);
|
||||||
|
|
||||||
if (clr->Set(str))
|
// handle colours defined in HTML 4.0 first:
|
||||||
return true;
|
if (str.length() > 1 && str[0] != _T('#'))
|
||||||
|
|
||||||
if (!str.empty())
|
|
||||||
{
|
{
|
||||||
// Handle colours defined in HTML 4.0:
|
#define HTML_COLOUR(name, r, g, b) \
|
||||||
#define HTML_COLOUR(name,r,g,b) \
|
|
||||||
if (str.IsSameAs(wxT(name), false)) \
|
if (str.IsSameAs(wxT(name), false)) \
|
||||||
{ *clr = wxColour(r,g,b); return true; }
|
{ clr->Set(r, g, b); return true; }
|
||||||
HTML_COLOUR("black", 0x00,0x00,0x00)
|
HTML_COLOUR("black", 0x00,0x00,0x00)
|
||||||
HTML_COLOUR("silver", 0xC0,0xC0,0xC0)
|
HTML_COLOUR("silver", 0xC0,0xC0,0xC0)
|
||||||
HTML_COLOUR("gray", 0x80,0x80,0x80)
|
HTML_COLOUR("gray", 0x80,0x80,0x80)
|
||||||
@@ -442,6 +440,13 @@ bool wxHtmlTag::GetParamAsColour(const wxString& par, wxColour *clr) const
|
|||||||
#undef HTML_COLOUR
|
#undef HTML_COLOUR
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// then try to parse #rrggbb representations or set from other well
|
||||||
|
// known names (note that this doesn't strictly conform to HTML spec,
|
||||||
|
// but it doesn't do real harm -- but it *must* be done after the standard
|
||||||
|
// colors are handled above):
|
||||||
|
if (clr->Set(str))
|
||||||
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user