X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/655719367ac5e131d9642e5783f3ecf64d1a3385..7ea1c917764fb2588fe1aadc75c49ba300f8cb2f:/src/html/m_image.cpp?ds=sidebyside diff --git a/src/html/m_image.cpp b/src/html/m_image.cpp index e8d63f818f..9574b94d41 100644 --- a/src/html/m_image.cpp +++ b/src/html/m_image.cpp @@ -7,10 +7,6 @@ // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation -#endif - #include "wx/wxprec.h" #include "wx/defs.h" @@ -36,8 +32,8 @@ #include "wx/dynarray.h" #include "wx/log.h" #include "wx/artprov.h" +#include "wx/math.h" -#include #include FORCE_LINK_ME(m_image) @@ -47,7 +43,7 @@ FORCE_LINK_ME(m_image) WX_DECLARE_OBJARRAY(int, CoordArray); #include "wx/arrimpl.cpp" // this is a magic incantation which must be done! -WX_DEFINE_OBJARRAY(CoordArray); +WX_DEFINE_OBJARRAY(CoordArray) // --------------------------------------------------------------------------- @@ -86,7 +82,7 @@ wxHtmlImageMapAreaCell::wxHtmlImageMapAreaCell( wxHtmlImageMapAreaCell::celltype wxString x = incoords, y; type = t; - while ((i = x.Find( ',' )) != -1) + while ((i = x.Find( ',' )) != wxNOT_FOUND) { coords.Add( (int)(pixel_scale * (double)wxAtoi( x.Left( i ).c_str())) ); x = x.Mid( i + 1 ); @@ -291,7 +287,7 @@ class wxHtmlImageCell : public wxHtmlCell { public: wxHtmlImageCell(wxWindow *window, - wxFSFile *input, int w = -1, int h = -1, + wxFSFile *input, int w = wxDefaultCoord, int h = wxDefaultCoord, double scale = 1.0, int align = wxHTML_ALIGN_BOTTOM, const wxString& mapname = wxEmptyString); ~wxHtmlImageCell(); @@ -351,17 +347,17 @@ wxHtmlImageCell::wxHtmlImageCell(wxWindow *window, wxFSFile *input, { m_window = window ? wxStaticCast(window, wxScrolledWindow) : NULL; m_scale = scale; - m_showFrame = FALSE; + m_showFrame = false; m_bitmap = NULL; m_bmpW = w; m_bmpH = h; m_imageMap = NULL; m_mapName = mapname; - SetCanLiveOnPagebreak(FALSE); + SetCanLiveOnPagebreak(false); #if wxUSE_GIF && wxUSE_TIMER m_gifDecoder = NULL; m_gifTimer = NULL; - m_physX = m_physY = -1; + m_physX = m_physY = wxDefaultCoord; #endif if ( m_bmpW && m_bmpH ) @@ -372,25 +368,24 @@ wxHtmlImageCell::wxHtmlImageCell(wxWindow *window, wxFSFile *input, if ( s ) { - bool readImg = TRUE; - #if wxUSE_GIF && wxUSE_TIMER + bool readImg = true; if ( (input->GetLocation().Matches(wxT("*.gif")) || input->GetLocation().Matches(wxT("*.GIF"))) && m_window ) { - m_gifDecoder = new wxGIFDecoder(s, TRUE); + m_gifDecoder = new wxGIFDecoder(s, true); if ( m_gifDecoder->ReadGIF() == wxGIF_OK ) { wxImage img; if ( m_gifDecoder->ConvertToImage(&img) ) SetImage(img); - readImg = FALSE; + readImg = false; if ( m_gifDecoder->IsAnimation() ) { m_gifTimer = new wxGIFTimer(this); - m_gifTimer->Start(m_gifDecoder->GetDelay(), TRUE); + m_gifTimer->Start(m_gifDecoder->GetDelay(), true); } else { @@ -414,18 +409,18 @@ wxHtmlImageCell::wxHtmlImageCell(wxWindow *window, wxFSFile *input, } else // input==NULL, use "broken image" bitmap { - if ( m_bmpW == -1 && m_bmpH == -1 ) + if ( m_bmpW == wxDefaultCoord && m_bmpH == wxDefaultCoord ) { m_bmpW = 29; m_bmpH = 31; } else { - m_showFrame = TRUE; - if ( m_bmpW == -1 ) m_bmpW = 31; - if ( m_bmpH == -1 ) m_bmpH = 33; + m_showFrame = true; + if ( m_bmpW == wxDefaultCoord ) m_bmpW = 31; + if ( m_bmpH == wxDefaultCoord ) m_bmpH = 33; } - m_bitmap = + m_bitmap = new wxBitmap(wxArtProvider::GetBitmap(wxART_MISSING_IMAGE)); } } @@ -451,6 +446,7 @@ wxHtmlImageCell::wxHtmlImageCell(wxWindow *window, wxFSFile *input, void wxHtmlImageCell::SetImage(const wxImage& img) { +#if !defined(__WXMSW__) || wxUSE_WXDIB if ( img.Ok() ) { delete m_bitmap; @@ -459,9 +455,9 @@ void wxHtmlImageCell::SetImage(const wxImage& img) ww = img.GetWidth(); hh = img.GetHeight(); - if ( m_bmpW == -1 ) + if ( m_bmpW == wxDefaultCoord ) m_bmpW = ww; - if ( m_bmpH == -1 ) + if ( m_bmpH == wxDefaultCoord ) m_bmpH = hh; // Only scale the bitmap at the rendering stage, @@ -476,6 +472,7 @@ void wxHtmlImageCell::SetImage(const wxImage& img) */ m_bitmap = new wxBitmap(img); } +#endif } #if wxUSE_GIF && wxUSE_TIMER @@ -483,9 +480,9 @@ void wxHtmlImageCell::AdvanceAnimation(wxTimer *timer) { wxImage img; - m_gifDecoder->GoNextFrame(TRUE); + m_gifDecoder->GoNextFrame(true); - if ( m_physX == -1 ) + if ( m_physX == wxDefaultCoord ) { m_physX = m_physY = 0; for (wxHtmlCell *cell = this; cell; cell = cell->GetParent()) @@ -502,6 +499,7 @@ void wxHtmlImageCell::AdvanceAnimation(wxTimer *timer) if ( m_window->GetClientRect().Intersects(rect) && m_gifDecoder->ConvertToImage(&img) ) { +#if !defined(__WXMSW__) || wxUSE_WXDIB if ( (int)m_gifDecoder->GetWidth() != m_Width || (int)m_gifDecoder->GetHeight() != m_Height || m_gifDecoder->GetLeft() != 0 || m_gifDecoder->GetTop() != 0 ) @@ -510,20 +508,21 @@ void wxHtmlImageCell::AdvanceAnimation(wxTimer *timer) wxMemoryDC dc; dc.SelectObject(*m_bitmap); dc.DrawBitmap(bmp, m_gifDecoder->GetLeft(), m_gifDecoder->GetTop(), - TRUE /* use mask */); + true /* use mask */); } else +#endif SetImage(img); m_window->Refresh(img.HasMask(), &rect); } - timer->Start(m_gifDecoder->GetDelay(), TRUE); + timer->Start(m_gifDecoder->GetDelay(), true); } void wxHtmlImageCell::Layout(int w) { wxHtmlCell::Layout(w); - m_physX = m_physY = -1; + m_physX = m_physY = wxDefaultCoord; } #endif @@ -559,20 +558,20 @@ void wxHtmlImageCell::Draw(wxDC& dc, int x, int y, imageScaleX = (double) m_bmpW / (double) m_bitmap->GetWidth(); if (m_bmpH != m_bitmap->GetHeight()) imageScaleY = (double) m_bmpH / (double) m_bitmap->GetHeight(); - + double us_x, us_y; dc.GetUserScale(&us_x, &us_y); dc.SetUserScale(us_x * m_scale * imageScaleX, us_y * m_scale * imageScaleY); dc.DrawBitmap(*m_bitmap, (int) ((x + m_PosX) / (m_scale*imageScaleX)), - (int) ((y + m_PosY) / (m_scale*imageScaleY)), TRUE); + (int) ((y + m_PosY) / (m_scale*imageScaleY)), true); dc.SetUserScale(us_x, us_y); } } wxHtmlLinkInfo *wxHtmlImageCell::GetLink( int x, int y ) const { - if (m_mapName.IsEmpty()) + if (m_mapName.empty()) return wxHtmlCell::GetLink( x, y ); if (!m_imageMap) { @@ -615,7 +614,7 @@ TAG_HANDLER_BEGIN(IMG, "IMG,MAP,AREA") { if (tag.HasParam(wxT("SRC"))) { - int w = -1, h = -1; + int w = wxDefaultCoord, h = wxDefaultCoord; int al; wxFSFile *str; wxString tmp = tag.GetParam(wxT("SRC")); @@ -650,7 +649,7 @@ TAG_HANDLER_BEGIN(IMG, "IMG,MAP,AREA") str, w, h, m_WParser->GetPixelScale(), al, mn); - cel->SetLink(m_WParser->GetLink()); + m_WParser->ApplyStateToCell(cel); cel->SetId(tag.GetParam(wxT("id"))); // may be empty m_WParser->GetContainer()->InsertCell(cel); if (str) @@ -697,16 +696,17 @@ TAG_HANDLER_BEGIN(IMG, "IMG,MAP,AREA") } if (cel != NULL && tag.HasParam(wxT("HREF"))) { - wxString tmp = tag.GetParam(wxT("HREF")); - wxString target = wxEmptyString; - if (tag.HasParam(wxT("TARGET"))) target = tag.GetParam(wxT("TARGET")); - cel->SetLink( wxHtmlLinkInfo(tmp, target)); + wxString target; + if (tag.HasParam(wxT("TARGET"))) + target = tag.GetParam(wxT("TARGET")); + cel->SetLink(wxHtmlLinkInfo(tag.GetParam(wxT("HREF")), target)); } - if (cel != NULL) m_WParser->GetContainer()->InsertCell( cel ); + if (cel != NULL) + m_WParser->GetContainer()->InsertCell( cel ); } } - return FALSE; + return false; } TAG_HANDLER_END(IMG)