Changed the way invisble HTML cells are NOT
drawn so that no clipping is required. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30768 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
6e0de3dfc4
commit
58bd6224ac
@ -376,7 +376,7 @@ static void SwitchSelState(wxDC& dc, wxHtmlRenderingInfo& info,
|
||||
|
||||
|
||||
void wxHtmlWordCell::Draw(wxDC& dc, int x, int y,
|
||||
int WXUNUSED(view_y1), int WXUNUSED(view_y2),
|
||||
int WXUNUSED(view_y1), int view_y2,
|
||||
wxHtmlRenderingInfo& info)
|
||||
{
|
||||
#if 0 // useful for debugging
|
||||
@ -384,6 +384,8 @@ void wxHtmlWordCell::Draw(wxDC& dc, int x, int y,
|
||||
dc.DrawRectangle(x+m_PosX,y+m_PosY,m_Width /* VZ: +1? */ ,m_Height);
|
||||
#endif
|
||||
|
||||
if (y+m_PosY+m_Height > view_y2) return;
|
||||
|
||||
bool drawSelectionAfterCell = false;
|
||||
|
||||
if ( info.GetState().GetSelectionState() == wxHTML_SEL_CHANGING )
|
||||
|
@ -124,18 +124,17 @@ int wxHtmlDCRenderer::Render(int x, int y, int from, int dont_render, int to, in
|
||||
if(to < hght)
|
||||
hght = to;
|
||||
|
||||
|
||||
if (!dont_render)
|
||||
{
|
||||
wxHtmlRenderingInfo rinfo;
|
||||
wxDefaultHtmlRenderingStyle rstyle;
|
||||
rinfo.SetStyle(&rstyle);
|
||||
m_DC->SetBrush(*wxWHITE_BRUSH);
|
||||
m_DC->SetClippingRegion(x, y, m_Width, hght);
|
||||
m_Cells->Draw(*m_DC,
|
||||
x, (y - from),
|
||||
y, pbreak + (y /*- from*/),
|
||||
y, y + hght,
|
||||
rinfo);
|
||||
m_DC->DestroyClippingRegion();
|
||||
}
|
||||
|
||||
if (pbreak < m_Cells->GetHeight()) return pbreak;
|
||||
|
@ -56,9 +56,11 @@ class wxHtmlLineCell : public wxHtmlCell
|
||||
|
||||
|
||||
void wxHtmlLineCell::Draw(wxDC& dc, int x, int y,
|
||||
int WXUNUSED(view_y1), int WXUNUSED(view_y2),
|
||||
int WXUNUSED(view_y1), int view_y2,
|
||||
wxHtmlRenderingInfo& WXUNUSED(info))
|
||||
{
|
||||
if (y+m_PosY+m_Height > view_y2) return;
|
||||
|
||||
wxBrush mybrush(wxT("GREY"), (m_HasShading) ? wxTRANSPARENT : wxSOLID);
|
||||
wxPen mypen(wxT("GREY"), 1, wxSOLID);
|
||||
dc.SetBrush(mybrush);
|
||||
|
@ -539,9 +539,11 @@ wxHtmlImageCell::~wxHtmlImageCell()
|
||||
|
||||
|
||||
void wxHtmlImageCell::Draw(wxDC& dc, int x, int y,
|
||||
int WXUNUSED(view_y1), int WXUNUSED(view_y2),
|
||||
int WXUNUSED(view_y1), int view_y2,
|
||||
wxHtmlRenderingInfo& WXUNUSED(info))
|
||||
{
|
||||
if (y+m_PosY+m_Height > view_y2) return;
|
||||
|
||||
if ( m_showFrame )
|
||||
{
|
||||
dc.SetBrush(*wxTRANSPARENT_BRUSH);
|
||||
|
@ -59,9 +59,11 @@ wxHtmlListmarkCell::wxHtmlListmarkCell(wxDC* dc, const wxColour& clr) : wxHtmlCe
|
||||
|
||||
|
||||
void wxHtmlListmarkCell::Draw(wxDC& dc, int x, int y,
|
||||
int WXUNUSED(view_y1), int WXUNUSED(view_y2),
|
||||
int WXUNUSED(view_y1), int view_y2,
|
||||
wxHtmlRenderingInfo& WXUNUSED(info))
|
||||
{
|
||||
if (y+m_PosY+m_Height > view_y2) return;
|
||||
|
||||
dc.SetBrush(m_Brush);
|
||||
dc.DrawEllipse(x + m_PosX + m_Width / 3, y + m_PosY + m_Height / 3,
|
||||
(m_Width / 3), (m_Width / 3));
|
||||
|
Loading…
Reference in New Issue
Block a user