+
+wxSize wxPrinterDC::GetPPI() const
+{
+ return m_nativePrinterDC->GetPPI() ;
+}
+
+wxPrinterDC::~wxPrinterDC(void)
+{
+#if wxMAC_USE_CORE_GRAPHICS
+/*
+ // this context was borrowed
+ ((wxMacCGContext*)(m_graphicContext))->SetNativeContext( NULL ) ;
+ */
+#endif
+ delete m_nativePrinterDC ;
+}
+
+#if wxMAC_USE_CORE_GRAPHICS
+void wxPrinterDC::MacSetCGContext( void * cg )
+{
+ SetGraphicsContext( wxGraphicsContext::CreateFromNative( cg ) );
+ m_graphicContext->SetPen( m_pen ) ;
+ m_graphicContext->SetBrush( m_brush ) ;
+}
+#endif
+bool wxPrinterDC::StartDoc( const wxString& message )
+{
+ wxASSERT_MSG( Ok() , wxT("Called wxPrinterDC::StartDoc from an invalid object") ) ;
+
+ if ( !m_ok )
+ return false ;
+
+ if ( m_nativePrinterDC->StartDoc(this, message ) )
+ {
+ // in case we have to do additional things when successful
+ }
+ m_ok = m_nativePrinterDC->Ok() ;
+ if ( !m_ok )
+ {
+ wxString message ;
+ message.Printf( wxT("Print Error %u"), m_nativePrinterDC->GetStatus() ) ;
+ wxMessageDialog dialog( NULL , message , wxEmptyString, wxICON_HAND | wxOK) ;
+ dialog.ShowModal();
+ }
+
+ return m_ok ;
+}
+
+void wxPrinterDC::EndDoc(void)
+{
+ if ( !m_ok )
+ return ;
+
+ m_nativePrinterDC->EndDoc( this ) ;
+ m_ok = m_nativePrinterDC->Ok() ;
+
+ if ( !m_ok )
+ {
+ wxString message ;
+ message.Printf( wxT("Print Error %u"), m_nativePrinterDC->GetStatus() ) ;
+ wxMessageDialog dialog( NULL , message , wxEmptyString, wxICON_HAND | wxOK) ;
+ dialog.ShowModal();
+ }
+}
+
+void wxPrinterDC::StartPage(void)
+{
+ if ( !m_ok )
+ return ;
+
+ m_logicalFunction = wxCOPY;
+ // m_textAlignment = wxALIGN_TOP_LEFT;
+ m_backgroundMode = wxTRANSPARENT;
+
+ m_textForegroundColour = *wxBLACK;
+ m_textBackgroundColour = *wxWHITE;
+ m_pen = *wxBLACK_PEN;
+ m_font = *wxNORMAL_FONT;
+ m_brush = *wxTRANSPARENT_BRUSH;
+ m_backgroundBrush = *wxWHITE_BRUSH;
+#if !wxMAC_USE_CORE_GRAPHICS
+ m_macFontInstalled = false ;
+ m_macBrushInstalled = false ;
+ m_macPenInstalled = false ;
+#endif
+
+ m_nativePrinterDC->StartPage(this) ;
+ m_ok = m_nativePrinterDC->Ok() ;
+
+}
+
+void wxPrinterDC::EndPage(void)
+{
+ if ( !m_ok )
+ return ;
+
+ m_nativePrinterDC->EndPage(this) ;
+ m_ok = m_nativePrinterDC->Ok() ;
+}
+
+void wxPrinterDC::DoGetSize(int *width, int *height) const
+{
+ wxCHECK_RET( m_ok , _T("GetSize() doesn't work without a valid wxPrinterDC") );
+ m_nativePrinterDC->GetSize(width, height ) ;
+}
+
+#endif