X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ad4a907bb77c5ca10aa02ab8474caa8b92d78c0c..12bb29f5432174ecbd65549bda832d70d34a98ae:/src/html/m_image.cpp diff --git a/src/html/m_image.cpp b/src/html/m_image.cpp index fcccbd11a3..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); }; @@ -417,7 +423,7 @@ wxHtmlImageCell::wxHtmlImageCell(wxHtmlWindowInterface *windowIface, #endif // wxUSE_GIF && wxUSE_TIMER { wxImage image(*s, wxBITMAP_TYPE_ANY); - if ( image.Ok() ) + if ( image.IsOk() ) SetImage(image); } } @@ -446,7 +452,7 @@ wxHtmlImageCell::wxHtmlImageCell(wxHtmlWindowInterface *windowIface, void wxHtmlImageCell::SetImage(const wxImage& img) { #if !defined(__WXMSW__) || wxUSE_WXDIB - if ( img.Ok() ) + if ( img.IsOk() ) { delete m_bitmap; @@ -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) { @@ -534,11 +550,11 @@ void wxHtmlImageCell::Layout(int w) if (!m_bmpHpresent && m_bitmap != NULL) m_Height = m_bitmap->GetHeight()*m_Width/m_bitmap->GetWidth(); else - m_Height = m_scale*m_bmpH; + m_Height = static_cast(m_scale*m_bmpH); } else { - m_Width = m_scale*m_bmpW; - m_Height = m_scale*m_bmpH; + m_Width = static_cast(m_scale*m_bmpW); + m_Height = static_cast(m_scale*m_bmpH); } switch (m_align) @@ -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;