}
-int wxHtmlDCRenderer::Render(int x, int y, int from, int dont_render)
+int wxHtmlDCRenderer::Render(int x, int y, int from, int dont_render, int to, int *known_pagebreaks, int number_of_pages)
{
int pbreak, hght;
if (m_Cells == NULL || m_DC == NULL) return 0;
pbreak = (int)(from + m_Height);
- while (m_Cells->AdjustPagebreak(&pbreak)) {}
+ while (m_Cells->AdjustPagebreak(&pbreak, known_pagebreaks, number_of_pages)) {}
hght = pbreak - from;
+ 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*/));
+ x, (y - from),
+ y, pbreak + (y /*- from*/),
+ rinfo);
m_DC->DestroyClippingRegion();
}
{
pos = m_Renderer->Render((int)( ppmm_h * m_MarginLeft),
(int) (ppmm_v * (m_MarginTop + (m_HeaderHeight == 0 ? 0 : m_MarginSpace)) + m_HeaderHeight),
- pos, TRUE);
+ pos, TRUE, INT_MAX, m_PageBreaks, m_NumPages);
m_PageBreaks[++m_NumPages] = pos;
} while (pos < m_Renderer->GetTotalHeight());
}
m_Renderer->Render((int) (ppmm_h * m_MarginLeft),
(int) (ppmm_v * (m_MarginTop + (m_HeaderHeight == 0 ? 0 : m_MarginSpace)) + m_HeaderHeight),
- m_PageBreaks[page-1]);
+ m_PageBreaks[page-1], FALSE, m_PageBreaks[page]-m_PageBreaks[page-1]);
m_RendererHdr->SetDC(dc, (double)ppiPrinterY / (double)ppiScreenY);
if (m_Headers[page % 2] != wxEmptyString)
//----------------------------------------------------------------------------
-wxHtmlEasyPrinting::wxHtmlEasyPrinting(const wxString& name, wxFrame *parent_frame)
+wxHtmlEasyPrinting::wxHtmlEasyPrinting(const wxString& name, wxWindow *parentWindow)
{
- m_Frame = parent_frame;
+ m_ParentWindow = parentWindow;
m_Name = name;
m_PrintData = new wxPrintData;
m_PageSetupData = new wxPageSetupDialogData;
return FALSE;
}
- wxPreviewFrame *frame = new wxPreviewFrame(preview, m_Frame,
+ wxPreviewFrame *frame = new wxPreviewFrame(preview, m_ParentWindow,
m_Name + _(" Preview"),
wxPoint(100, 100), wxSize(650, 500));
frame->Centre(wxBOTH);
wxPrintDialogData printDialogData(*m_PrintData);
wxPrinter printer(&printDialogData);
- if (!printer.Print(m_Frame, printout, TRUE))
+ if (!printer.Print(m_ParentWindow, printout, TRUE))
{
return FALSE;
}
void wxHtmlEasyPrinting::PrinterSetup()
{
wxPrintDialogData printDialogData(*m_PrintData);
- wxPrintDialog printerDialog(m_Frame, &printDialogData);
+ wxPrintDialog printerDialog(m_ParentWindow, &printDialogData);
printerDialog.GetPrintDialogData().SetSetupDialog(TRUE);
}
m_PageSetupData->SetPrintData(*m_PrintData);
- wxPageSetupDialog pageSetupDialog(m_Frame, m_PageSetupData);
+ wxPageSetupDialog pageSetupDialog(m_ParentWindow, m_PageSetupData);
if (pageSetupDialog.ShowModal() == wxID_OK)
{