]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/printwin.h
By default, always refresh editor and redraw properties when property value is changed
[wxWidgets.git] / include / wx / msw / printwin.h
index b5947de4fba567dc274bac6fce755f833e580f23..3bcd415ade1c39ab8986352137e560947a089a24 100644 (file)
 #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,14 +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)
+    wxDECLARE_NO_COPY_CLASS(wxWindowsPrinter);
 };
 
 // ---------------------------------------------------------------------------
@@ -47,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,
@@ -62,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