Implemented high-quality preview for wxMSW (this approach doesn't work
on other platforms). The preview is now accurate representation of printed page and wxHtmlEasyPrinting preview shows identical layout to what will be printed. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54264 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -44,6 +44,8 @@ private:
|
||||
// wxPrintout.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
#define wxUSE_HIGH_QUALITY_PREVIEW (wxUSE_IMAGE && wxUSE_WXDIB)
|
||||
|
||||
class WXDLLIMPEXP_CORE wxWindowsPrintPreview : public wxPrintPreviewBase
|
||||
{
|
||||
public:
|
||||
@@ -58,7 +60,22 @@ public:
|
||||
virtual bool Print(bool interactive);
|
||||
virtual void DetermineScaling();
|
||||
|
||||
#if wxUSE_HIGH_QUALITY_PREVIEW
|
||||
protected:
|
||||
bool RenderPageIntoBitmapHQ(wxBitmap& bmp, int pageNum);
|
||||
virtual bool RenderPageIntoBitmap(wxBitmap& bmp, int pageNum);
|
||||
|
||||
private:
|
||||
bool RenderPageFragment(float scaleX, float scaleY,
|
||||
int *nextFinalLine,
|
||||
wxPrinterDC& printer,
|
||||
wxMemoryDC& finalDC,
|
||||
const wxRect& rect,
|
||||
int pageNum);
|
||||
|
||||
bool m_hqPreviewFailed;
|
||||
#endif // wxUSE_HIGH_QUALITY_PREVIEW
|
||||
|
||||
DECLARE_DYNAMIC_CLASS_NO_COPY(wxWindowsPrintPreview)
|
||||
};
|
||||
|
||||
|
@@ -562,6 +562,11 @@ public:
|
||||
virtual void DetermineScaling() = 0;
|
||||
|
||||
protected:
|
||||
// helpers for RenderPage():
|
||||
virtual bool RenderPageIntoDC(wxDC& dc, int pageNum);
|
||||
// renders preview into m_previewBitmap
|
||||
virtual bool RenderPageIntoBitmap(wxBitmap& bmp, int pageNum);
|
||||
|
||||
void InvalidatePreviewBitmap();
|
||||
|
||||
protected:
|
||||
|
Reference in New Issue
Block a user