X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a1b806b98241ab649c169aaa1f134df85e80fb8b..12bb29f5432174ecbd65549bda832d70d34a98ae:/src/html/m_image.cpp diff --git a/src/html/m_image.cpp b/src/html/m_image.cpp index 60fee4e25e..6394fa1b2b 100644 --- a/src/html/m_image.cpp +++ b/src/html/m_image.cpp @@ -298,6 +298,11 @@ public: virtual wxHtmlLinkInfo *GetLink(int x = 0, int y = 0) const; void SetImage(const wxImage& img); + + // If "alt" text is set, it will be used when converting this cell to text. + void SetAlt(const wxString& alt); + virtual wxString ConvertToText(wxHtmlSelection *sel) const; + #if wxUSE_GIF && wxUSE_TIMER void AdvanceAnimation(wxTimer *timer); virtual void Layout(int w); @@ -320,6 +325,7 @@ private: double m_scale; wxHtmlImageMapCell *m_imageMap; wxString m_mapName; + wxString m_alt; wxDECLARE_NO_COPY_CLASS(wxHtmlImageCell); }; @@ -474,6 +480,16 @@ void wxHtmlImageCell::SetImage(const wxImage& img) #endif } +void wxHtmlImageCell::SetAlt(const wxString& alt) +{ + m_alt = alt; +} + +wxString wxHtmlImageCell::ConvertToText(wxHtmlSelection* WXUNUSED(sel)) const +{ + return m_alt; +} + #if wxUSE_GIF && wxUSE_TIMER void wxHtmlImageCell::AdvanceAnimation(wxTimer *timer) { @@ -660,16 +676,16 @@ TAG_HANDLER_BEGIN(IMG, "IMG,MAP,AREA") if (tag.HasParam(wxT("WIDTH"))) { - wxString param = tag.GetParam(wxT("WIDTH")); - wxSscanf(param.c_str(), wxT("%i"), &w); - if (param.EndsWith(wxT("%"))) { - if (w < 0) - w = 0; - else if (w > 100) - w = 100; - wpercent = true; + if (tag.GetParamAsIntOrPercent(wxT("WIDTH"), &w, wpercent)) + { + if (wpercent) + { + if (w < 0) + w = 0; + else if (w > 100) + w = 100; + } } - } if (tag.HasParam(wxT("HEIGHT"))) @@ -702,7 +718,9 @@ TAG_HANDLER_BEGIN(IMG, "IMG,MAP,AREA") m_WParser->GetPixelScale(), al, mn); m_WParser->ApplyStateToCell(cel); + m_WParser->StopCollapsingSpaces(); cel->SetId(tag.GetParam(wxT("id"))); // may be empty + cel->SetAlt(tag.GetParam(wxT("alt"))); m_WParser->GetContainer()->InsertCell(cel); if (str) delete str;