X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3096bd2fa7b88105bc54c08e3c878585de1a9b91..acc0ebd7a871124d4d6b36069340227e6c584f38:/src/html/m_list.cpp diff --git a/src/html/m_list.cpp b/src/html/m_list.cpp index 9640d52685..ba6571362b 100644 --- a/src/html/m_list.cpp +++ b/src/html/m_list.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: mod_list.cpp +// Name: m_list.cpp // Purpose: wxHtml module for lists // Author: Vaclav Slavik // RCS-ID: $Id$ @@ -14,23 +14,23 @@ #include "wx/defs.h" -#if wxUSE_HTML +#if wxUSE_HTML && wxUSE_STREAMS #ifdef __BORDLANDC__ #pragma hdrstop #endif #ifndef WXPRECOMP -#include "wx/wx.h" + #include "wx/brush.h" + #include "wx/dc.h" #endif - #include "wx/html/forcelnk.h" #include "wx/html/m_templ.h" #include "wx/html/htmlcell.h" -FORCE_LINK_ME(mod_list) +FORCE_LINK_ME(m_list) //----------------------------------------------------------------------------- @@ -48,8 +48,8 @@ class wxHtmlListmarkCell : public wxHtmlCell wxHtmlListmarkCell::wxHtmlListmarkCell(wxDC* dc, const wxColour& clr) : wxHtmlCell(), m_Brush(clr, wxSOLID) { - m_Width = dc -> GetCharWidth(); - m_Height = dc -> GetCharHeight(); + m_Width = dc->GetCharWidth(); + m_Height = dc->GetCharHeight(); m_Descent = 0; } @@ -59,7 +59,6 @@ void wxHtmlListmarkCell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2) { dc.SetBrush(m_Brush); dc.DrawEllipse(x + m_PosX + m_Width / 4, y + m_PosY + m_Height / 4, m_Width / 2, m_Width / 2); - wxHtmlCell::Draw(dc, x, y, view_y1, view_y2); } @@ -86,28 +85,33 @@ TAG_HANDLER_BEGIN(OLULLI, "OL,UL,LI") wxHtmlContainerCell *c; // List Item: - if (tag.GetName() == "LI") { - if (!tag.IsEnding()) { - m_WParser -> CloseContainer(); - m_WParser -> CloseContainer(); - - c = m_WParser -> OpenContainer(); - c -> SetWidthFloat(2 * m_WParser -> GetCharWidth(), wxHTML_UNITS_PIXELS); - c -> SetAlignHor(wxHTML_ALIGN_RIGHT); + if (tag.GetName() == wxT("LI")) + { + if (!tag.IsEnding()) + { + m_WParser->GetContainer()->SetIndent(0, wxHTML_INDENT_TOP); + // this is to prevent indetation in
case + m_WParser->CloseContainer(); + m_WParser->CloseContainer(); + + c = m_WParser->OpenContainer(); + c->SetWidthFloat(2 * m_WParser->GetCharWidth(), wxHTML_UNITS_PIXELS); + c->SetAlignHor(wxHTML_ALIGN_RIGHT); if (m_Numbering == 0) - c -> InsertCell(new wxHtmlListmarkCell(m_WParser -> GetDC(), m_WParser -> GetActualColor())); - else { + c->InsertCell(new wxHtmlListmarkCell(m_WParser->GetDC(), m_WParser->GetActualColor())); + else + { wxString mark; mark.Printf(wxT("%i."), m_Numbering); - c -> InsertCell(new wxHtmlWordCell(mark, *(m_WParser -> GetDC()))); + c->InsertCell(new wxHtmlWordCell(mark, *(m_WParser->GetDC()))); } - m_WParser -> CloseContainer(); + m_WParser->CloseContainer(); - c = m_WParser -> OpenContainer(); - c -> SetIndent(m_WParser -> GetCharWidth() / 4, wxHTML_INDENT_LEFT); - c -> SetWidthFloat(-2 * m_WParser -> GetCharWidth(), wxHTML_UNITS_PIXELS); + c = m_WParser->OpenContainer(); + c->SetIndent(m_WParser->GetCharWidth() / 4, wxHTML_INDENT_LEFT); + c->SetWidthFloat(-2 * m_WParser->GetCharWidth(), wxHTML_UNITS_PIXELS); - m_WParser -> OpenContainer(); + m_WParser->OpenContainer(); if (m_Numbering != 0) m_Numbering++; } @@ -115,31 +119,36 @@ TAG_HANDLER_BEGIN(OLULLI, "OL,UL,LI") } // Begin of List (not-numbered): "UL", "OL" - else { + else + { int oldnum = m_Numbering; - if (tag.GetName() == "UL") m_Numbering = 0; + if (tag.GetName() == wxT("UL")) m_Numbering = 0; else m_Numbering = 1; - c = m_WParser -> GetContainer(); - if (c -> GetFirstCell() != NULL) { - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); - c = m_WParser -> GetContainer(); + c = m_WParser->GetContainer(); + if (c->GetFirstCell() != NULL) + { + m_WParser->CloseContainer(); + m_WParser->OpenContainer(); + c = m_WParser->GetContainer(); } - c -> SetAlignHor(wxHTML_ALIGN_LEFT); - c -> SetIndent(2 * m_WParser -> GetCharWidth(), wxHTML_INDENT_LEFT); - m_WParser -> OpenContainer() -> SetAlignVer(wxHTML_ALIGN_TOP); + c->SetAlignHor(wxHTML_ALIGN_LEFT); + c->SetIndent(2 * m_WParser->GetCharWidth(), wxHTML_INDENT_LEFT); + m_WParser->OpenContainer()->SetAlignVer(wxHTML_ALIGN_TOP); - m_WParser -> OpenContainer(); - m_WParser -> OpenContainer(); + m_WParser->OpenContainer(); + m_WParser->OpenContainer(); ParseInner(tag); - m_WParser -> CloseContainer(); - m_WParser -> CloseContainer(); - m_WParser -> CloseContainer(); - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); + m_WParser->GetContainer()->SetIndent(0, wxHTML_INDENT_TOP); + // this is to prevent indetation in
case + m_WParser->CloseContainer(); + + m_WParser->CloseContainer(); + m_WParser->CloseContainer(); + m_WParser->CloseContainer(); + m_WParser->OpenContainer(); m_Numbering = oldnum; return TRUE;