]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/dcprint.h
Allow entering minus sign in wxMSW wxSpinCtrl if needed.
[wxWidgets.git] / include / wx / msw / dcprint.h
index 0c3b02d5ad5b43126ca64956f0176b363585af53..9d98518299e71cc78869bce2bce9dd16a2185f14 100644 (file)
@@ -9,32 +9,25 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef _WX_DCPRINT_H_
-#define _WX_DCPRINT_H_
-
-#ifdef __GNUG__
-    #pragma interface "dcprint.h"
-#endif
+#ifndef _WX_MSW_DCPRINT_H_
+#define _WX_MSW_DCPRINT_H_
 
 #if wxUSE_PRINTING_ARCHITECTURE
 
-#include "wx/dc.h"
+#include "wx/dcprint.h"
 #include "wx/cmndata.h"
+#include "wx/msw/dc.h"
+
+// ------------------------------------------------------------------------
+//    wxPrinterDCImpl
+//
 
-class WXDLLEXPORT wxPrinterDC: public wxDC
+class WXDLLIMPEXP_CORE wxPrinterDCImpl : public wxMSWDCImpl
 {
 public:
-DECLARE_CLASS(wxPrinterDC)
-
-    // Create a printer DC (obsolete function: use wxPrintData version now)
-    wxPrinterDC(const wxString& driver, const wxString& device, const wxString& output, bool interactive = TRUE, int orientation = wxPORTRAIT);
-
     // Create from print data
-    wxPrinterDC(const wxPrintData& data);
-
-    wxPrinterDC(WXHDC theDC);
-
-    ~wxPrinterDC(void);
+    wxPrinterDCImpl( wxPrinterDC *owner, const wxPrintData& data );
+    wxPrinterDCImpl( wxPrinterDC *owner, WXHDC theDC );
 
     // override some base class virtuals
     virtual bool StartDoc(const wxString& message);
@@ -42,25 +35,49 @@ DECLARE_CLASS(wxPrinterDC)
     virtual void StartPage();
     virtual void EndPage();
 
+    virtual wxRect GetPaperRect() const;
+
 protected:
     virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y,
-                              bool useMask = FALSE);
+                              bool useMask = false);
     virtual bool DoBlit(wxCoord xdest, wxCoord ydest,
                         wxCoord width, wxCoord height,
                         wxDC *source, wxCoord xsrc, wxCoord ysrc,
-                        int rop = wxCOPY, bool useMask = FALSE);
+                        wxRasterOperationMode rop = wxCOPY, bool useMask = false,
+                        wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord);
+    virtual void DoGetSize(int *w, int *h) const
+    {
+        GetDeviceSize(w, h);
+    }
+
+
+    // init the dc
+    void Init();
 
     wxPrintData m_printData;
-};
 
-// Gets an HDC for the default printer configuration
-// WXHDC WXDLLEXPORT wxGetPrinterDC(int orientation);
+private:
+    DECLARE_CLASS(wxPrinterDCImpl)
+    wxDECLARE_NO_COPY_CLASS(wxPrinterDCImpl);
+};
 
 // Gets an HDC for the specified printer configuration
-WXHDC WXDLLEXPORT wxGetPrinterDC(const wxPrintData& data);
+WXHDC WXDLLIMPEXP_CORE wxGetPrinterDC(const wxPrintData& data);
+
+// ------------------------------------------------------------------------
+//    wxPrinterDCromHDC
+//
+
+class WXDLLIMPEXP_CORE wxPrinterDCFromHDC: public wxPrinterDC
+{
+public:
+    wxPrinterDCFromHDC( WXHDC theDC )
+        : wxPrinterDC(new wxPrinterDCImpl(this, theDC))
+    {
+    }
+};
 
 #endif // wxUSE_PRINTING_ARCHITECTURE
 
-#endif
-    // _WX_DCPRINT_H_
+#endif // _WX_MSW_DCPRINT_H_