X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bbcdf8bc7ca806d8278c7cb6d09d5590378b67d8..99c4be680622f58a48a04dfe0835b59d2c41afea:/include/wx/msw/printwin.h diff --git a/include/wx/msw/printwin.h b/include/wx/msw/printwin.h index 075c34b472..7d7e466ed9 100644 --- a/include/wx/msw/printwin.h +++ b/include/wx/msw/printwin.h @@ -6,53 +6,78 @@ // Created: 01/02/97 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #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 +// --------------------------------------------------------------------------- +// Represents the printer: manages printing a wxPrintout object +// --------------------------------------------------------------------------- + +class WXDLLIMPEXP_CORE wxWindowsPrinter : public wxPrinterBase { - DECLARE_DYNAMIC_CLASS(wxWindowsPrinter) + DECLARE_DYNAMIC_CLASS(wxWindowsPrinter) + +public: + wxWindowsPrinter(wxPrintDialogData *data = NULL); + virtual ~wxWindowsPrinter(); + + virtual bool Print(wxWindow *parent, + wxPrintout *printout, + bool prompt = true); + + virtual wxDC *PrintDialog(wxWindow *parent); + virtual bool Setup(wxWindow *parent); - private: - WXFARPROC lpAbortProc; - public: - wxWindowsPrinter(wxPrintData *data = NULL); - ~wxWindowsPrinter(void); +private: + WXFARPROC m_lpAbortProc; - virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = TRUE); - virtual bool PrintDialog(wxWindow *parent); - virtual bool Setup(wxWindow *parent); + DECLARE_NO_COPY_CLASS(wxWindowsPrinter) }; -/* - * wxPrintPreview - * Programmer creates an object of this class to preview a wxPrintout. - */ - -class WXDLLEXPORT wxWindowsPrintPreview: public wxPrintPreviewBase +// --------------------------------------------------------------------------- +// wxPrintPreview: programmer creates an object of this class to preview a +// wxPrintout. +// --------------------------------------------------------------------------- + +#define wxUSE_HIGH_QUALITY_PREVIEW (wxUSE_IMAGE && wxUSE_WXDIB) + +class WXDLLIMPEXP_CORE wxWindowsPrintPreview : public wxPrintPreviewBase { - DECLARE_CLASS(wxWindowsPrintPreview) +public: + wxWindowsPrintPreview(wxPrintout *printout, + wxPrintout *printoutForPrinting = NULL, + wxPrintDialogData *data = NULL); + wxWindowsPrintPreview(wxPrintout *printout, + wxPrintout *printoutForPrinting, + wxPrintData *data); + virtual ~wxWindowsPrintPreview(); + + 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); - public: - wxWindowsPrintPreview(wxPrintout *printout, wxPrintout *printoutForPrinting = NULL, wxPrintData *data = NULL); - ~wxWindowsPrintPreview(void); + bool m_hqPreviewFailed; +#endif // wxUSE_HIGH_QUALITY_PREVIEW - virtual bool Print(bool interactive); - virtual void DetermineScaling(void); + DECLARE_DYNAMIC_CLASS_NO_COPY(wxWindowsPrintPreview) }; #endif - // _WX_PRINTWIN_H_ +// _WX_PRINTWIN_H_