X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/8907154c1a8a6882c6797d1f16393ddfb23e7f3a..2fd716136a961ab6038996343e42257c2d81aac2:/include/wx/msw/printwin.h diff --git a/include/wx/msw/printwin.h b/include/wx/msw/printwin.h index 4f9d1b0fdb..3bcd415ade 100644 --- a/include/wx/msw/printwin.h +++ b/include/wx/msw/printwin.h @@ -18,7 +18,7 @@ // Represents the printer: manages printing a wxPrintout object // --------------------------------------------------------------------------- -class WXDLLEXPORT wxWindowsPrinter : public wxPrinterBase +class WXDLLIMPEXP_CORE wxWindowsPrinter : public wxPrinterBase { DECLARE_DYNAMIC_CLASS(wxWindowsPrinter) @@ -29,13 +29,14 @@ public: virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = true); - virtual wxDC* PrintDialog(wxWindow *parent); + + virtual wxDC *PrintDialog(wxWindow *parent); virtual bool Setup(wxWindow *parent); private: WXFARPROC m_lpAbortProc; - DECLARE_NO_COPY_CLASS(wxWindowsPrinter) + wxDECLARE_NO_COPY_CLASS(wxWindowsPrinter); }; // --------------------------------------------------------------------------- @@ -43,7 +44,9 @@ private: // wxPrintout. // --------------------------------------------------------------------------- -class WXDLLEXPORT wxWindowsPrintPreview : public wxPrintPreviewBase +#define wxUSE_HIGH_QUALITY_PREVIEW (wxUSE_IMAGE && wxUSE_WXDIB) + +class WXDLLIMPEXP_CORE wxWindowsPrintPreview : public wxPrintPreviewBase { public: wxWindowsPrintPreview(wxPrintout *printout, @@ -57,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) };