X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/efba2b89f15ba8757a722fc56c67f434cf960482..b40e227882bdf5e13fc9dde605348d4a1c1e8c60:/src/html/m_hline.cpp?ds=sidebyside diff --git a/src/html/m_hline.cpp b/src/html/m_hline.cpp index 3fbad4d47c..b9df229000 100644 --- a/src/html/m_hline.cpp +++ b/src/html/m_hline.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: mod_hline.cpp +// Name: m_hline.cpp // Purpose: wxHtml module for horizontal line (HR tag) // Author: Vaclav Slavik // RCS-ID: $Id$ @@ -11,27 +11,27 @@ #pragma implementation #endif -#include +#include "wx/wxprec.h" #include "wx/defs.h" -#if wxUSE_HTML +#if wxUSE_HTML && wxUSE_STREAMS #ifdef __BORDLANDC__ #pragma hdrstop #endif #ifndef WXPRECOMP -#include + #include "wx/brush.h" + #include "wx/pen.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_hline) +FORCE_LINK_ME(m_hline) //----------------------------------------------------------------------------- @@ -41,20 +41,24 @@ FORCE_LINK_ME(mod_hline) class wxHtmlLineCell : public wxHtmlCell { public: - wxHtmlLineCell(int size) : wxHtmlCell() {m_Height = size;} + wxHtmlLineCell(int size, bool shading) : wxHtmlCell() {m_Height = size; m_HasShading = shading;} void Draw(wxDC& dc, int x, int y, int view_y1, int view_y2); - void Layout(int w) {m_Width = w; if (m_Next) m_Next -> Layout(w);} + void Layout(int w) + { m_Width = w; wxHtmlCell::Layout(w); } + + private: + // Should we draw 3-D shading or not + bool m_HasShading; }; -void wxHtmlLineCell::Draw(wxDC& dc, int x, int y, int view_y1, int view_y2) +void wxHtmlLineCell::Draw(wxDC& dc, int x, int y, int WXUNUSED(view_y1), int WXUNUSED(view_y2)) { - wxBrush mybrush("BLACK", wxSOLID); - wxPen mypen("BLACK", 1, wxSOLID); + wxBrush mybrush(wxT("GREY"), (m_HasShading) ? wxTRANSPARENT : wxSOLID); + wxPen mypen(wxT("GREY"), 1, wxSOLID); dc.SetBrush(mybrush); dc.SetPen(mypen); dc.DrawRectangle(x + m_PosX, y + m_PosY, m_Width, m_Height); - wxHtmlCell::Draw(dc, x, y, view_y1, view_y2); } @@ -71,20 +75,22 @@ TAG_HANDLER_BEGIN(HR, "HR") { wxHtmlContainerCell *c; int sz; - - m_WParser -> CloseContainer(); - c = m_WParser -> OpenContainer(); - - c -> SetIndent(m_WParser -> GetCharHeight(), wxHTML_INDENT_VERTICAL); - c -> SetAlignHor(wxHTML_ALIGN_CENTER); - c -> SetAlign(tag); - c -> SetWidthFloat(tag); - if (tag.HasParam("SIZE") && tag.ScanParam("SIZE", "%i", &sz) == 1) {} - else sz = 1; - c -> InsertCell(new wxHtmlLineCell(sz)); - - m_WParser -> CloseContainer(); - m_WParser -> OpenContainer(); + bool HasShading; + + m_WParser->CloseContainer(); + c = m_WParser->OpenContainer(); + + c->SetIndent(m_WParser->GetCharHeight(), wxHTML_INDENT_VERTICAL); + c->SetAlignHor(wxHTML_ALIGN_CENTER); + c->SetAlign(tag); + c->SetWidthFloat(tag); + sz = 1; + tag.GetParamAsInt(wxT("SIZE"), &sz); + HasShading = !(tag.HasParam(wxT("NOSHADE"))); + c->InsertCell(new wxHtmlLineCell((int)((double)sz * m_WParser->GetPixelScale()), HasShading)); + + m_WParser->CloseContainer(); + m_WParser->OpenContainer(); return FALSE; }