// 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);
- public:
- wxWindowsPrinter(wxPrintDialogData *data = NULL);
- ~wxWindowsPrinter(void);
+ virtual wxDC *PrintDialog(wxWindow *parent);
+ virtual bool Setup(wxWindow *parent);
- virtual bool Print(wxWindow *parent, wxPrintout *printout, bool prompt = TRUE);
- virtual wxDC* PrintDialog(wxWindow *parent);
- virtual bool Setup(wxWindow *parent);
+private:
+ WXFARPROC m_lpAbortProc;
- private:
- WXFARPROC m_lpAbortProc;
+ 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, wxPrintDialogData *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_