merge with latest sources
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@7985 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -25,31 +25,36 @@
|
||||
|
||||
#include "wx/dcprint.h"
|
||||
#include "math.h"
|
||||
#include "wx/mac/uma.h"
|
||||
|
||||
|
||||
#if !USE_SHARED_LIBRARY
|
||||
IMPLEMENT_CLASS(wxPrinterDC, wxDC)
|
||||
#endif
|
||||
|
||||
GrafPtr macPrintFormerPort = NULL ;
|
||||
|
||||
wxPrinterDC::wxPrinterDC(const wxPrintData& printdata)
|
||||
{
|
||||
#if !TARGET_CARBON
|
||||
OSErr err ;
|
||||
wxString message ;
|
||||
|
||||
m_printData = printdata ;
|
||||
m_printData.ConvertToNative() ;
|
||||
|
||||
::PrOpen() ;
|
||||
::UMAPrOpen() ;
|
||||
err = PrError() ;
|
||||
if ( err )
|
||||
{
|
||||
message.Printf( "Print Error %d", err ) ;
|
||||
wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ;
|
||||
PrClose() ;
|
||||
UMAPrClose() ;
|
||||
}
|
||||
|
||||
if ( ::PrValidate( m_printData.m_macPrintInfo ) )
|
||||
{
|
||||
::PrStlDialog( m_printData.m_macPrintInfo ) ;
|
||||
// the driver has changed in the mean time, should we pop up a page setup dialog ?
|
||||
}
|
||||
err = PrError() ;
|
||||
@@ -57,20 +62,31 @@ wxPrinterDC::wxPrinterDC(const wxPrintData& printdata)
|
||||
{
|
||||
message.Printf( "Print Error %d", err ) ;
|
||||
wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ;
|
||||
PrClose() ;
|
||||
UMAPrClose() ;
|
||||
}
|
||||
::GetPort( &macPrintFormerPort ) ;
|
||||
m_macPrintPort = ::PrOpenDoc( m_printData.m_macPrintInfo , NULL , NULL ) ;
|
||||
err = PrError() ;
|
||||
if ( err )
|
||||
{
|
||||
message.Printf( "Print Error %d", err ) ;
|
||||
wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ;
|
||||
UMAPrClose() ;
|
||||
}
|
||||
// sets current port
|
||||
m_macPort = (GrafPtr ) m_macPrintPort ;
|
||||
m_ok = TRUE ;
|
||||
m_minY = m_minX = 0 ;
|
||||
m_maxX = (**m_printData.m_macPrintInfo).rPaper.right - (**m_printData.m_macPrintInfo).rPaper.left ;
|
||||
m_maxY = (**m_printData.m_macPrintInfo).rPaper.bottom - (**m_printData.m_macPrintInfo).rPaper.top ;
|
||||
#else
|
||||
#pragma warning "TODO:printing support for carbon"
|
||||
#endif
|
||||
}
|
||||
|
||||
wxPrinterDC::~wxPrinterDC(void)
|
||||
{
|
||||
#if !TARGET_CARBON
|
||||
if ( m_ok )
|
||||
{
|
||||
OSErr err ;
|
||||
@@ -91,11 +107,16 @@ wxPrinterDC::~wxPrinterDC(void)
|
||||
{
|
||||
message.Printf( "Print Error %d", err ) ;
|
||||
wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ;
|
||||
PrClose() ;
|
||||
UMAPrClose() ;
|
||||
}
|
||||
::PrClose() ;
|
||||
::SetPort( macPrintFormerPort ) ;
|
||||
::UMAPrClose() ;
|
||||
// ::SetPort( macPrintFormerPort ) ;
|
||||
::SetPort( LMGetWMgrPort() ) ;
|
||||
m_macPortHelper.Clear() ;
|
||||
}
|
||||
#else
|
||||
#pragma warning "TODO:printing support for carbon"
|
||||
#endif
|
||||
}
|
||||
|
||||
bool wxPrinterDC::StartDoc( const wxString& WXUNUSED(message) )
|
||||
@@ -109,13 +130,30 @@ void wxPrinterDC::EndDoc(void)
|
||||
|
||||
void wxPrinterDC::StartPage(void)
|
||||
{
|
||||
#if !TARGET_CARBON
|
||||
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;
|
||||
|
||||
m_macFontInstalled = false ;
|
||||
m_macBrushInstalled = false ;
|
||||
m_macPenInstalled = false ;
|
||||
|
||||
|
||||
OSErr err ;
|
||||
wxString message ;
|
||||
|
||||
PrOpenPage( m_macPrintPort , NULL ) ;
|
||||
PrOpenPage( m_macPrintPort , NULL ) ;
|
||||
SetOrigin( - (**m_printData.m_macPrintInfo).rPaper.left , - (**m_printData.m_macPrintInfo).rPaper.top ) ;
|
||||
Rect clip = { -32000 , -32000 , 32000 , 32000 } ;
|
||||
::ClipRect( &clip ) ;
|
||||
@@ -126,14 +164,18 @@ void wxPrinterDC::StartPage(void)
|
||||
wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ;
|
||||
::PrClosePage( m_macPrintPort) ;
|
||||
::PrCloseDoc( m_macPrintPort ) ;
|
||||
::PrClose() ;
|
||||
::UMAPrClose() ;
|
||||
::SetPort( macPrintFormerPort ) ;
|
||||
m_ok = FALSE ;
|
||||
}
|
||||
#else
|
||||
#pragma warning "TODO:printing support for carbon"
|
||||
#endif
|
||||
}
|
||||
|
||||
void wxPrinterDC::EndPage(void)
|
||||
{
|
||||
#if !TARGET_CARBON
|
||||
if ( !m_ok )
|
||||
return ;
|
||||
|
||||
@@ -147,8 +189,12 @@ void wxPrinterDC::EndPage(void)
|
||||
message.Printf( "Print Error %d", err ) ;
|
||||
wxMessageDialog dialog( NULL , message , "", wxICON_HAND | wxOK) ;
|
||||
::PrCloseDoc( m_macPrintPort ) ;
|
||||
::PrClose() ;
|
||||
::UMAPrClose() ;
|
||||
::SetPort( macPrintFormerPort ) ;
|
||||
m_ok = FALSE ;
|
||||
}
|
||||
#else
|
||||
#pragma warning "TODO:printing support for carbon"
|
||||
#endif
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user