]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/printwin.h
add wxSP_THIN_SASH for completeness (#9902)
[wxWidgets.git] / include / wx / msw / printwin.h
index 2f92fa3ca9872fb5e826840c0e51878f72270c4d..7d7e466ed93a75bfb4f228f060a673f58b48a53e 100644 (file)
@@ -6,54 +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);
 
- public:
-  wxWindowsPrinter(wxPrintData *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 bool 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, 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_