X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/179e085f05fab385b89a18281e115003de890388..8f2ee25db4652f96f28bc8f8370bebc974e533ff:/src/common/cmndata.cpp diff --git a/src/common/cmndata.cpp b/src/common/cmndata.cpp index 171f85d130..b0bc37a2fb 100644 --- a/src/common/cmndata.cpp +++ b/src/common/cmndata.cpp @@ -50,17 +50,7 @@ #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 #if wxUSE_PRINTING_ARCHITECTURE @@ -185,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(); } @@ -192,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 @@ -250,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