X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/03647350fc7cd141953c72e0284e928847d30f44..08670ea85abf4b4946a9ce64971b591d7b1ee30b:/src/html/htmlcell.cpp?ds=sidebyside diff --git a/src/html/htmlcell.cpp b/src/html/htmlcell.cpp index 489375df7e..c775d9817f 100644 --- a/src/html/htmlcell.cpp +++ b/src/html/htmlcell.cpp @@ -201,11 +201,11 @@ wxCursor wxHtmlCell::GetMouseCursor(wxHtmlWindowInterface *window) const #if WXWIN_COMPATIBILITY_2_6 // NB: Older versions of wx used GetCursor() virtual method in place of // GetMouseCursor(interface). This code ensures that user code that - // overriden GetCursor() continues to work. The trick is that the base + // overridden GetCursor() continues to work. The trick is that the base // wxHtmlCell::GetCursor() method simply returns wxNullCursor, so we - // know that GetCursor() was overriden iff it returns valid cursor. + // know that GetCursor() was overridden iff it returns valid cursor. wxCursor cur = GetCursor(); - if (cur.Ok()) + if (cur.IsOk()) return cur; #endif // WXWIN_COMPATIBILITY_2_6 @@ -237,8 +237,7 @@ bool wxHtmlCell::AdjustPagebreak(int *pagebreak, void wxHtmlCell::SetLink(const wxHtmlLinkInfo& link) { - if (m_Link) delete m_Link; - m_Link = NULL; + wxDELETE(m_Link); if (link.GetHref() != wxEmptyString) m_Link = new wxHtmlLinkInfo(link); } @@ -477,17 +476,10 @@ void wxHtmlWordCell::SetSelectionPrivPos(const wxDC& dc, wxHtmlSelection *s) con this == s->GetToCell() ? s->GetToPos() : wxDefaultPosition, p1, p2); - wxPoint p(0, m_Word.length()); - if ( this == s->GetFromCell() ) - p.x = p1; // selection starts here + s->SetFromCharacterPos (p1); // selection starts here if ( this == s->GetToCell() ) - p.y = p2; // selection ends here - - if ( this == s->GetFromCell() ) - s->SetFromPrivPos(p); - if ( this == s->GetToCell() ) - s->SetToPrivPos(p); + s->SetToCharacterPos (p2); // selection ends here } @@ -534,23 +526,18 @@ void wxHtmlWordCell::Draw(wxDC& dc, int x, int y, int w, h; int ofs = 0; - wxPoint priv = (this == s->GetFromCell()) ? - s->GetFromPrivPos() : s->GetToPrivPos(); - // NB: this is quite a hack: in order to compute selection boundaries // (in word's characters) we must know current font, which is only // possible inside rendering code. Therefore we update the // information here and store it in wxHtmlSelection so that // ConvertToText can use it later: - if ( priv == wxDefaultPosition ) + if ( !s->AreFromToCharacterPosSet () ) { SetSelectionPrivPos(dc, s); - priv = (this == s->GetFromCell()) ? - s->GetFromPrivPos() : s->GetToPrivPos(); } - int part1 = priv.x; - int part2 = priv.y; + int part1 = s->GetFromCell()==this ? s->GetFromCharacterPos() : 0; + int part2 = s->GetToCell()==this ? s->GetToCharacterPos() : m_Word.Length(); if ( part1 > 0 ) { @@ -635,9 +622,6 @@ wxString wxHtmlWordCell::ConvertToText(wxHtmlSelection *s) const { if ( s && (this == s->GetFromCell() || this == s->GetToCell()) ) { - wxPoint priv = this == s->GetFromCell() ? s->GetFromPrivPos() - : s->GetToPrivPos(); - // VZ: we may be called before we had a chance to re-render ourselves // and in this case GetFrom/ToPrivPos() is not set yet -- assume // that this only happens in case of a double/triple click (which @@ -645,10 +629,10 @@ wxString wxHtmlWordCell::ConvertToText(wxHtmlSelection *s) const // entire contents of the cell in this case // // TODO: but this really needs to be fixed in some better way later... - if ( priv != wxDefaultPosition ) + if ( s->AreFromToCharacterPosSet() ) { - const int part1 = priv.x; - const int part2 = priv.y; + const int part1 = s->GetFromCell()==this ? s->GetFromCharacterPos() : 0; + const int part2 = s->GetToCell()==this ? s->GetToCharacterPos() : m_Word.Length(); if ( part1 == part2 ) return wxEmptyString; return GetPartAsText(part1, part2); @@ -871,7 +855,7 @@ void wxHtmlContainerCell::Layout(int w) /* - LAYOUTING : + LAYOUT : */ @@ -879,7 +863,7 @@ void wxHtmlContainerCell::Layout(int w) s_indent = (m_IndentLeft < 0) ? (-m_IndentLeft * m_Width / 100) : m_IndentLeft; s_width = m_Width - s_indent - ((m_IndentRight < 0) ? (-m_IndentRight * m_Width / 100) : m_IndentRight); - // my own layouting: + // my own layout: wxHtmlCell *cell = m_Cells, *line = m_Cells; while (cell != NULL)