X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/103aec296a2c017f915b4b2b2584191fdb716a75..0aa619b53203461ec07541f0ba5ebe4aaf4f7184:/include/wx/msw/printwin.h diff --git a/include/wx/msw/printwin.h b/include/wx/msw/printwin.h index 9f7d368f7a..7d7e466ed9 100644 --- a/include/wx/msw/printwin.h +++ b/include/wx/msw/printwin.h @@ -12,17 +12,13 @@ #ifndef _WX_PRINTWIN_H_ #define _WX_PRINTWIN_H_ -#ifdef __GNUG__ - #pragma interface "printwin.h" -#endif - #include "wx/prntbase.h" // --------------------------------------------------------------------------- // Represents the printer: manages printing a wxPrintout object // --------------------------------------------------------------------------- -class WXDLLEXPORT wxWindowsPrinter : public wxPrinterBase +class WXDLLIMPEXP_CORE wxWindowsPrinter : public wxPrinterBase { DECLARE_DYNAMIC_CLASS(wxWindowsPrinter) @@ -32,12 +28,15 @@ public: virtual bool Print(wxWindow *parent, wxPrintout *printout, - bool prompt = TRUE); - virtual wxDC* PrintDialog(wxWindow *parent); + bool prompt = true); + + virtual wxDC *PrintDialog(wxWindow *parent); virtual bool Setup(wxWindow *parent); private: WXFARPROC m_lpAbortProc; + + DECLARE_NO_COPY_CLASS(wxWindowsPrinter) }; // --------------------------------------------------------------------------- @@ -45,10 +44,10 @@ private: // wxPrintout. // --------------------------------------------------------------------------- -class WXDLLEXPORT wxWindowsPrintPreview : public wxPrintPreviewBase -{ - DECLARE_CLASS(wxWindowsPrintPreview) +#define wxUSE_HIGH_QUALITY_PREVIEW (wxUSE_IMAGE && wxUSE_WXDIB) +class WXDLLIMPEXP_CORE wxWindowsPrintPreview : public wxPrintPreviewBase +{ public: wxWindowsPrintPreview(wxPrintout *printout, wxPrintout *printoutForPrinting = NULL, @@ -60,6 +59,24 @@ 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) }; #endif