X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c47addef107f756f1a342d2f3f8d432e784691a2..172541f64be8fcddb08f1c121da256d08c24a70b:/src/common/cmndata.cpp diff --git a/src/common/cmndata.cpp b/src/common/cmndata.cpp index 1896239b72..b0bc37a2fb 100644 --- a/src/common/cmndata.cpp +++ b/src/common/cmndata.cpp @@ -50,24 +50,15 @@ #endif // wxUSE_PRINTING_ARCHITECTURE #if defined(__WXMSW__) - #include - #include "wx/msw/private.h" - - #ifndef __SMARTPHONE__ /* of WinCE */ - #include - #endif - - #if defined(__WATCOMC__) || defined(__SYMANTEC__) || defined(__SALFORDC__) - #include - #include - #endif + #include "wx/msw/wrapcdlg.h" #endif // MSW -#ifdef __WXMAC__ + #if wxUSE_PRINTING_ARCHITECTURE + +#if defined(__WXMAC__) #include "wx/mac/private/print.h" #endif - #if wxUSE_PRINTING_ARCHITECTURE IMPLEMENT_DYNAMIC_CLASS(wxPrintData, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxPrintDialogData, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxPageSetupDialogData, wxObject) @@ -184,6 +175,9 @@ wxPrintData::wxPrintData() m_paperId = wxPAPER_A4; m_paperSize = wxSize(210, 297); + m_privData = NULL; + m_privDataLen = 0; + m_nativeData = wxPrintFactory::GetFactory()->CreatePrintNativeData(); } @@ -191,15 +185,34 @@ wxPrintData::wxPrintData(const wxPrintData& printData) : wxObject() { m_nativeData = NULL; + m_privData = NULL; (*this) = printData; } +void wxPrintData::SetPrivData( char *privData, int len ) +{ + if (m_privData) + { + delete [] m_privData; + m_privData = NULL; + } + m_privDataLen = len; + if (m_privDataLen > 0) + { + m_privData = new char[m_privDataLen]; + memcpy( m_privData, privData, m_privDataLen ); + } +} + wxPrintData::~wxPrintData() { m_nativeData->m_ref--; if (m_nativeData->m_ref == 0) delete m_nativeData; + if (m_privData) + delete [] m_privData; + #ifdef __WXMAC__ delete m_nativePrintData ; #endif @@ -249,6 +262,18 @@ void wxPrintData::operator=(const wxPrintData& data) m_nativeData = data.GetNativeData(); m_nativeData->m_ref++; + if (m_privData) + { + delete [] m_privData; + m_privData = NULL; + } + m_privDataLen = data.GetPrivDataLen(); + if (m_privDataLen > 0) + { + m_privData = new char[m_privDataLen]; + memcpy( m_privData, data.GetPrivData(), m_privDataLen ); + } + #ifdef __WXMAC__ m_nativePrintData->CopyFrom( data.m_nativePrintData ) ; #endif