X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fa794151356cb766c72fd691ab470be1ecefc544..64ea838d8f4d1853b7d850db93ee565e901d099a:/src/html/m_image.cpp?ds=inline diff --git a/src/html/m_image.cpp b/src/html/m_image.cpp index b8ffb83c8d..87aa320f80 100644 --- a/src/html/m_image.cpp +++ b/src/html/m_image.cpp @@ -24,6 +24,7 @@ #include "wx/log.h" #include "wx/math.h" #include "wx/image.h" + #include "wx/wxcrtvararg.h" #endif #include "wx/html/forcelnk.h" @@ -297,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); @@ -319,6 +325,7 @@ private: double m_scale; wxHtmlImageMapCell *m_imageMap; wxString m_mapName; + wxString m_alt; wxDECLARE_NO_COPY_CLASS(wxHtmlImageCell); }; @@ -416,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); } } @@ -445,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; @@ -473,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) { @@ -533,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) @@ -701,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;