+#include "wx/mac/private/print.h"
+#include "wx/graphics.h"
+
+IMPLEMENT_CLASS(wxPrinterDC, wxDC)
+
+class wxNativePrinterDC
+{
+public :
+ wxNativePrinterDC() {}
+ virtual ~wxNativePrinterDC() {}
+ virtual bool StartDoc( wxPrinterDC* dc , const wxString& message ) = 0;
+ virtual void EndDoc( wxPrinterDC* dc ) = 0;
+ virtual void StartPage( wxPrinterDC* dc ) = 0;
+ virtual void EndPage( wxPrinterDC* dc ) = 0;
+ virtual void GetSize( int *w , int *h) const = 0 ;
+ virtual wxSize GetPPI() const = 0 ;
+
+ // returns 0 in case of no Error, otherwise platform specific error codes
+ virtual wxUint32 GetStatus() const = 0 ;
+ bool Ok() { return GetStatus() == 0 ; }
+
+ static wxNativePrinterDC* Create(wxPrintData* data) ;
+} ;
+
+class wxMacCarbonPrinterDC : public wxNativePrinterDC
+{
+public :
+ wxMacCarbonPrinterDC( wxPrintData* data ) ;
+ virtual ~wxMacCarbonPrinterDC() ;
+ virtual bool StartDoc( wxPrinterDC* dc , const wxString& message ) ;
+ virtual void EndDoc( wxPrinterDC* dc ) ;
+ virtual void StartPage( wxPrinterDC* dc ) ;
+ virtual void EndPage( wxPrinterDC* dc ) ;
+ virtual wxUint32 GetStatus() const { return m_err ; }
+ virtual void GetSize( int *w , int *h) const ;
+ virtual wxSize GetPPI() const ;
+private :
+#if !wxMAC_USE_CORE_GRAPHICS
+ GrafPtr m_macPrintFormerPort ;