X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a1b806b98241ab649c169aaa1f134df85e80fb8b..e94f3031736c1a23eba37892b4076893b1f6e416:/src/richtext/richtextprint.cpp diff --git a/src/richtext/richtextprint.cpp b/src/richtext/richtextprint.cpp index 0bdbb0b031..b491ac947b 100644 --- a/src/richtext/richtextprint.cpp +++ b/src/richtext/richtextprint.cpp @@ -67,7 +67,8 @@ void wxRichTextPrintout::OnPreparePrinting() { GetRichTextBuffer()->Invalidate(wxRICHTEXT_ALL); - GetRichTextBuffer()->Layout(*GetDC(), rect, wxRICHTEXT_FIXED_WIDTH|wxRICHTEXT_VARIABLE_HEIGHT); + wxRichTextDrawingContext context(GetRichTextBuffer()); + GetRichTextBuffer()->Layout(*GetDC(), context, rect, rect, wxRICHTEXT_FIXED_WIDTH|wxRICHTEXT_VARIABLE_HEIGHT); // Now calculate the page breaks @@ -115,18 +116,18 @@ void wxRichTextPrintout::OnPreparePrinting() lastLine = line; m_numPages ++; - + // Now create page breaks for the rest of the line, if it's larger than the page height int contentLeft = line->GetSize().y - rect.GetHeight(); while (contentLeft >= 0) { yOffset += rect.GetHeight(); contentLeft -= rect.GetHeight(); - + m_pageBreaksStart.Add(lastStartPos); m_pageBreaksEnd.Add(lastLine->GetAbsoluteRange().GetEnd()); m_pageYOffsets.Add(yOffset); - } + } } lastLine = line; @@ -286,7 +287,7 @@ void wxRichTextPrintout::RenderPage(wxDC *dc, int page) } wxRichTextRange rangeToDraw(m_pageBreaksStart[page-1], m_pageBreaksEnd[page-1]); - + wxPoint oldOrigin = dc->GetLogicalOrigin(); double scaleX, scaleY; dc->GetUserScale(& scaleX, & scaleY); @@ -294,13 +295,14 @@ void wxRichTextPrintout::RenderPage(wxDC *dc, int page) int yOffset = 0; if (page > 1) yOffset = m_pageYOffsets[page-2]; - + if (yOffset != oldOrigin.y) dc->SetLogicalOrigin(oldOrigin.x, oldOrigin.y + yOffset); dc->SetClippingRegion(wxRect(textRect.x, textRect.y + yOffset, textRect.width, textRect.height)); - GetRichTextBuffer()->Draw(*dc, rangeToDraw, wxRichTextSelection(), textRect, 0 /* descent */, wxRICHTEXT_DRAW_IGNORE_CACHE|wxRICHTEXT_DRAW_PRINT /* flags */); + wxRichTextDrawingContext context(GetRichTextBuffer()); + GetRichTextBuffer()->Draw(*dc, context, rangeToDraw, wxRichTextSelection(), textRect, 0 /* descent */, wxRICHTEXT_DRAW_IGNORE_CACHE|wxRICHTEXT_DRAW_PRINT /* flags */); dc->DestroyClippingRegion(); @@ -475,7 +477,7 @@ void wxRichTextPrinting::SetPrintData(const wxPrintData& printData) (*GetPrintData()) = printData; } -void wxRichTextPrinting::SetPageSetupData(const wxPageSetupData& pageSetupData) +void wxRichTextPrinting::SetPageSetupData(const wxPageSetupDialogData& pageSetupData) { (*GetPageSetupData()) = pageSetupData; }