X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/93c2f401e9955dc37df1f8dbfea7881c676b8ddb..ee146bca1b2d76b3e486c66a2d5ad15e44f2cbd0:/src/common/cmndata.cpp diff --git a/src/common/cmndata.cpp b/src/common/cmndata.cpp index c864ac3f84..c7b4dbf77b 100644 --- a/src/common/cmndata.cpp +++ b/src/common/cmndata.cpp @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "cmndata.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -49,25 +45,16 @@ #include "wx/paper.h" #endif // wxUSE_PRINTING_ARCHITECTURE -#if defined(__WXMSW__) && !defined(__PALMOS__) - #include - #include "wx/msw/private.h" - - #ifndef __SMARTPHONE__ /* of WinCE */ - #include - #endif - - #if defined(__WATCOMC__) || defined(__SYMANTEC__) || defined(__SALFORDC__) - #include - #include - #endif +#if defined(__WXMSW__) + #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) @@ -76,10 +63,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxFontData, wxObject) IMPLEMENT_DYNAMIC_CLASS(wxColourData, wxObject) -#ifndef DMPAPER_USER - #define DMPAPER_USER 256 -#endif - // ============================================================================ // implementation // ============================================================================ @@ -167,9 +150,6 @@ wxFontDialogBase::~wxFontDialogBase() wxPrintData::wxPrintData() { -#ifdef __WXMAC__ - m_nativePrintData = wxNativePrintData::Create() ; -#endif m_bin = wxPRINTBIN_DEFAULT; m_printMode = wxPRINT_MODE_PRINTER; m_printOrientation = wxPORTRAIT; @@ -177,50 +157,60 @@ wxPrintData::wxPrintData() m_printCollate = false; // New, 24/3/99 - m_printerName = wxT(""); + m_printerName = wxEmptyString; m_colour = true; m_duplexMode = wxDUPLEX_SIMPLEX; m_printQuality = wxPRINT_QUALITY_HIGH; m_paperId = wxPAPER_A4; m_paperSize = wxSize(210, 297); + m_privData = NULL; + m_privDataLen = 0; + m_nativeData = wxPrintFactory::GetFactory()->CreatePrintNativeData(); } 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) + if (m_nativeData->m_ref == 0) delete m_nativeData; - -#ifdef __WXMAC__ - delete m_nativePrintData ; -#endif -} + if (m_privData) + delete [] m_privData; +} void wxPrintData::ConvertToNative() { -#ifdef __WXMAC__ - m_nativePrintData->TransferFrom( this ) ; -#else m_nativeData->TransferFrom( *this ) ; -#endif } void wxPrintData::ConvertFromNative() { -#ifdef __WXMAC__ - m_nativePrintData->TransferTo( this ) ; -#else m_nativeData->TransferTo( *this ) ; -#endif } void wxPrintData::operator=(const wxPrintData& data) @@ -236,14 +226,30 @@ void wxPrintData::operator=(const wxPrintData& data) m_paperSize = data.m_paperSize; m_bin = data.m_bin; m_printMode = data.m_printMode; - m_filename = data.m_filename; - + m_filename = data.m_filename; + + // UnRef old m_nativeData + if (m_nativeData) + { + m_nativeData->m_ref--; + if (m_nativeData->m_ref == 0) + delete m_nativeData; + } + // Set Ref new one m_nativeData = data.GetNativeData(); m_nativeData->m_ref++; - -#ifdef __WXMAC__ - m_nativePrintData->CopyFrom( data.m_nativePrintData ) ; -#endif + + 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 ); + } } // Is this data OK for showing the print dialog? @@ -254,6 +260,171 @@ bool wxPrintData::Ok() const return m_nativeData->Ok(); } +// What should happen here? wxPostScriptPrintNativeData is not +// defined unless all this is true on MSW. +#if WXWIN_COMPATIBILITY_2_4 && wxUSE_PRINTING_ARCHITECTURE && (!defined(__WXMSW__) || wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW) + +#include "wx/generic/prntdlgg.h" + +#if wxUSE_POSTSCRIPT + #define WXUNUSED_WITHOUT_PS(name) name +#else + #define WXUNUSED_WITHOUT_PS(name) WXUNUSED(name) +#endif + +wxString wxPrintData::GetPrinterCommand() const +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + return ((wxPostScriptPrintNativeData*)m_nativeData)->GetPrinterCommand(); +#endif + return wxEmptyString; +} + +wxString wxPrintData::GetPrinterOptions() const +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + return ((wxPostScriptPrintNativeData*)m_nativeData)->GetPrinterOptions(); +#endif + return wxEmptyString; +} + +wxString wxPrintData::GetPreviewCommand() const +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + return ((wxPostScriptPrintNativeData*)m_nativeData)->GetPreviewCommand(); +#endif + return wxEmptyString; +} + +wxString wxPrintData::GetFontMetricPath() const +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + return ((wxPostScriptPrintNativeData*)m_nativeData)->GetFontMetricPath(); +#endif + return wxEmptyString; +} + +double wxPrintData::GetPrinterScaleX() const +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + return ((wxPostScriptPrintNativeData*)m_nativeData)->GetPrinterScaleX(); +#endif + return 1.0; +} + +double wxPrintData::GetPrinterScaleY() const +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + return ((wxPostScriptPrintNativeData*)m_nativeData)->GetPrinterScaleY(); +#endif + return 1.0; +} + +long wxPrintData::GetPrinterTranslateX() const +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + return ((wxPostScriptPrintNativeData*)m_nativeData)->GetPrinterTranslateX(); +#endif + return 0; +} + +long wxPrintData::GetPrinterTranslateY() const +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + return ((wxPostScriptPrintNativeData*)m_nativeData)->GetPrinterTranslateY(); +#endif + return 0; +} + +void wxPrintData::SetPrinterCommand(const wxString& WXUNUSED_WITHOUT_PS(command)) +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + ((wxPostScriptPrintNativeData*)m_nativeData)->SetPrinterCommand( command ); +#endif +} + +void wxPrintData::SetPrinterOptions(const wxString& WXUNUSED_WITHOUT_PS(options)) +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + ((wxPostScriptPrintNativeData*)m_nativeData)->SetPrinterOptions( options ); +#endif +} + +void wxPrintData::SetPreviewCommand(const wxString& WXUNUSED_WITHOUT_PS(command)) +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + ((wxPostScriptPrintNativeData*)m_nativeData)->SetPreviewCommand( command ); +#endif +} + +void wxPrintData::SetFontMetricPath(const wxString& WXUNUSED_WITHOUT_PS(path)) +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + ((wxPostScriptPrintNativeData*)m_nativeData)->SetFontMetricPath( path ); +#endif +} + +void wxPrintData::SetPrinterScaleX(double WXUNUSED_WITHOUT_PS(x)) +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + ((wxPostScriptPrintNativeData*)m_nativeData)->SetPrinterScaleX( x ); +#endif +} + +void wxPrintData::SetPrinterScaleY(double WXUNUSED_WITHOUT_PS(y)) +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + ((wxPostScriptPrintNativeData*)m_nativeData)->SetPrinterScaleY( y ); +#endif +} + +void wxPrintData::SetPrinterScaling(double WXUNUSED_WITHOUT_PS(x), double WXUNUSED_WITHOUT_PS(y)) +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + ((wxPostScriptPrintNativeData*)m_nativeData)->SetPrinterScaling( x, y ); +#endif +} + +void wxPrintData::SetPrinterTranslateX(long WXUNUSED_WITHOUT_PS(x)) +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + ((wxPostScriptPrintNativeData*)m_nativeData)->SetPrinterTranslateX( x ); +#endif +} + +void wxPrintData::SetPrinterTranslateY(long WXUNUSED_WITHOUT_PS(y)) +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + ((wxPostScriptPrintNativeData*)m_nativeData)->SetPrinterTranslateY( y ); +#endif +} + +void wxPrintData::SetPrinterTranslation(long WXUNUSED_WITHOUT_PS(x), long WXUNUSED_WITHOUT_PS(y)) +{ +#if wxUSE_POSTSCRIPT + if (m_nativeData && wxIsKindOf(m_nativeData,wxPostScriptPrintNativeData)) + ((wxPostScriptPrintNativeData*)m_nativeData)->SetPrinterTranslation( x, y ); +#endif +} +#endif + // ---------------------------------------------------------------------------- // Print dialog data // ---------------------------------------------------------------------------- @@ -271,12 +442,14 @@ wxPrintDialogData::wxPrintDialogData() m_printSelection = false; m_printEnableSelection = false; m_printEnablePageNumbers = true; - + wxPrintFactory* factory = wxPrintFactory::GetFactory(); m_printEnablePrintToFile = ! factory->HasOwnPrintToFile(); - + m_printEnableHelp = false; +#if WXWIN_COMPATIBILITY_2_4 m_printSetupDialog = false; +#endif } wxPrintDialogData::wxPrintDialogData(const wxPrintDialogData& dialogData) @@ -300,8 +473,9 @@ wxPrintDialogData::wxPrintDialogData(const wxPrintData& printData) m_printEnablePageNumbers = true; m_printEnablePrintToFile = true; m_printEnableHelp = false; +#if WXWIN_COMPATIBILITY_2_4 m_printSetupDialog = false; - +#endif m_printData = printData; } @@ -309,23 +483,6 @@ wxPrintDialogData::~wxPrintDialogData() { } -#ifdef __WXMAC__ - -void wxPrintDialogData::ConvertToNative() -{ - m_printData.ConvertToNative(); - m_printData.m_nativePrintData->TransferFrom( this ) ; -} - -void wxPrintDialogData::ConvertFromNative() -{ - m_printData.ConvertFromNative(); - m_printData.m_nativePrintData->TransferTo( this ) ; -} - -#endif - - void wxPrintDialogData::operator=(const wxPrintDialogData& data) { m_printFromPage = data.m_printFromPage; @@ -341,8 +498,9 @@ void wxPrintDialogData::operator=(const wxPrintDialogData& data) m_printEnablePageNumbers = data.m_printEnablePageNumbers; m_printEnableHelp = data.m_printEnableHelp; m_printEnablePrintToFile = data.m_printEnablePrintToFile; +#if WXWIN_COMPATIBILITY_2_4 m_printSetupDialog = data.m_printSetupDialog; - +#endif m_printData = data.m_printData; } @@ -357,17 +515,14 @@ void wxPrintDialogData::operator=(const wxPrintData& data) wxPageSetupDialogData::wxPageSetupDialogData() { -#if defined(__WIN95__) - m_pageSetupData = NULL; -#endif - m_paperSize = wxSize(0, 0); + m_paperSize = wxSize(0,0); CalculatePaperSizeFromId(); - m_minMarginTopLeft = wxPoint(0, 0); - m_minMarginBottomRight = wxPoint(0, 0); - m_marginTopLeft = wxPoint(0, 0); - m_marginBottomRight = wxPoint(0, 0); + m_minMarginTopLeft = + m_minMarginBottomRight = + m_marginTopLeft = + m_marginBottomRight = wxPoint(0,0); // Flags m_defaultMinMargins = false; @@ -382,22 +537,16 @@ wxPageSetupDialogData::wxPageSetupDialogData() wxPageSetupDialogData::wxPageSetupDialogData(const wxPageSetupDialogData& dialogData) : wxObject() { -#if defined(__WIN95__) - m_pageSetupData = NULL; -#endif (*this) = dialogData; } wxPageSetupDialogData::wxPageSetupDialogData(const wxPrintData& printData) { -#if defined(__WIN95__) - m_pageSetupData = NULL; -#endif - m_paperSize = wxSize(0, 0); - m_minMarginTopLeft = wxPoint(0, 0); - m_minMarginBottomRight = wxPoint(0, 0); - m_marginTopLeft = wxPoint(0, 0); - m_marginBottomRight = wxPoint(0, 0); + m_paperSize = wxSize(0,0); + m_minMarginTopLeft = + m_minMarginBottomRight = + m_marginTopLeft = + m_marginBottomRight = wxPoint(0,0); // Flags m_defaultMinMargins = false; @@ -417,15 +566,6 @@ wxPageSetupDialogData::wxPageSetupDialogData(const wxPrintData& printData) wxPageSetupDialogData::~wxPageSetupDialogData() { -#if defined(__WIN95__) && defined(__WXMSW__) - PAGESETUPDLG *pd = (PAGESETUPDLG *)m_pageSetupData; - if ( pd && pd->hDevMode ) - GlobalFree(pd->hDevMode); - if ( pd && pd->hDevNames ) - GlobalFree(pd->hDevNames); - if ( pd ) - delete pd; -#endif } wxPageSetupDialogData& wxPageSetupDialogData::operator=(const wxPageSetupDialogData& data) @@ -440,7 +580,7 @@ wxPageSetupDialogData& wxPageSetupDialogData::operator=(const wxPageSetupDialogD m_enableOrientation = data.m_enableOrientation; m_enablePaper = data.m_enablePaper; m_enablePrinter = data.m_enablePrinter; - m_getDefaultInfo = data.m_getDefaultInfo;; + m_getDefaultInfo = data.m_getDefaultInfo; m_enableHelp = data.m_enableHelp; m_printData = data.m_printData; @@ -451,222 +591,11 @@ wxPageSetupDialogData& wxPageSetupDialogData::operator=(const wxPageSetupDialogD wxPageSetupDialogData& wxPageSetupDialogData::operator=(const wxPrintData& data) { m_printData = data; + CalculatePaperSizeFromId(); return *this; } -#if defined(__WIN95__) -void wxPageSetupDialogData::ConvertToNative() -{ - wxWindowsPrintNativeData *data = - (wxWindowsPrintNativeData *) m_printData.GetNativeData(); - data->TransferFrom( m_printData ); - - PAGESETUPDLG *pd = (PAGESETUPDLG*) m_pageSetupData; - - if ( m_pageSetupData == NULL ) - { - pd = new PAGESETUPDLG; - pd->hDevMode = NULL; - pd->hDevNames = NULL; - m_pageSetupData = (void *)pd; - } - - // Pass the devmode data (created in m_printData.ConvertToNative) - // to the PRINTDLG structure, since it'll - // be needed when PrintDlg is called. - - if (pd->hDevMode) - { - GlobalFree(pd->hDevMode); - pd->hDevMode = NULL; - } - - pd->hDevMode = (HGLOBAL) data->GetDevMode(); - - data->SetDevMode( (void*) NULL ); - - // Shouldn't assert; we should be able to test Ok-ness at a higher level - //wxASSERT_MSG( (pd->hDevMode), wxT("hDevMode must be non-NULL in ConvertToNative!")); - - // Pass the devnames data (created in m_printData.ConvertToNative) - // to the PRINTDLG structure, since it'll - // be needed when PrintDlg is called. - - if (pd->hDevNames) - { - GlobalFree(pd->hDevNames); - pd->hDevNames = NULL; - } - - pd->hDevNames = (HGLOBAL) data->GetDevNames(); - - data->SetDevNames((void*) NULL); - -// pd->hDevMode = GlobalAlloc(GMEM_MOVEABLE, sizeof(DEVMODE)); - - pd->Flags = PSD_MARGINS|PSD_MINMARGINS; - - if ( m_defaultMinMargins ) - pd->Flags |= PSD_DEFAULTMINMARGINS; - if ( !m_enableMargins ) - pd->Flags |= PSD_DISABLEMARGINS; - if ( !m_enableOrientation ) - pd->Flags |= PSD_DISABLEORIENTATION; - if ( !m_enablePaper ) - pd->Flags |= PSD_DISABLEPAPER; - if ( !m_enablePrinter ) - pd->Flags |= PSD_DISABLEPRINTER; - if ( m_getDefaultInfo ) - pd->Flags |= PSD_RETURNDEFAULT; - if ( m_enableHelp ) - pd->Flags |= PSD_SHOWHELP; - - // We want the units to be in hundredths of a millimetre - pd->Flags |= PSD_INHUNDREDTHSOFMILLIMETERS; - - pd->lStructSize = sizeof( PAGESETUPDLG ); - pd->hwndOwner=(HWND)NULL; -// pd->hDevNames=(HWND)NULL; - pd->hInstance=(HINSTANCE)NULL; - // PAGESETUPDLG is in hundreds of a mm - pd->ptPaperSize.x = m_paperSize.x * 100; - pd->ptPaperSize.y = m_paperSize.y * 100; - - pd->rtMinMargin.left = m_minMarginTopLeft.x * 100; - pd->rtMinMargin.top = m_minMarginTopLeft.y * 100; - pd->rtMinMargin.right = m_minMarginBottomRight.x * 100; - pd->rtMinMargin.bottom = m_minMarginBottomRight.y * 100; - - pd->rtMargin.left = m_marginTopLeft.x * 100; - pd->rtMargin.top = m_marginTopLeft.y * 100; - pd->rtMargin.right = m_marginBottomRight.x * 100; - pd->rtMargin.bottom = m_marginBottomRight.y * 100; - - pd->lCustData = 0; - pd->lpfnPageSetupHook = NULL; - pd->lpfnPagePaintHook = NULL; - pd->hPageSetupTemplate = NULL; - pd->lpPageSetupTemplateName = NULL; - -/* - if ( pd->hDevMode ) - { - DEVMODE *devMode = (DEVMODE*) GlobalLock(pd->hDevMode); - memset(devMode, 0, sizeof(DEVMODE)); - devMode->dmSize = sizeof(DEVMODE); - devMode->dmOrientation = m_orientation; - devMode->dmFields = DM_ORIENTATION; - GlobalUnlock(pd->hDevMode); - } -*/ -} - -void wxPageSetupDialogData::ConvertFromNative() -{ - PAGESETUPDLG *pd = (PAGESETUPDLG *) m_pageSetupData; - if ( !pd ) - return; - - wxWindowsPrintNativeData *data = - (wxWindowsPrintNativeData *) m_printData.GetNativeData(); - - // Pass the devmode data back to the wxPrintData structure where it really belongs. - if (pd->hDevMode) - { - if (data->GetDevMode()) - { - // Make sure we don't leak memory - GlobalFree((HGLOBAL) data->GetDevMode()); - } - data->SetDevMode( (void*) pd->hDevMode ); - pd->hDevMode = NULL; - } - - data->TransferTo( m_printData ); - - // Pass the devnames data back to the wxPrintData structure where it really belongs. - if (pd->hDevNames) - { - if (data->GetDevNames()) - { - // Make sure we don't leak memory - GlobalFree((HGLOBAL) data->GetDevNames()); - } - data->SetDevNames((void*) pd->hDevNames); - pd->hDevNames = NULL; - } - - data->TransferTo( m_printData ); - - pd->Flags = PSD_MARGINS|PSD_MINMARGINS; - - m_defaultMinMargins = ((pd->Flags & PSD_DEFAULTMINMARGINS) == PSD_DEFAULTMINMARGINS); - m_enableMargins = ((pd->Flags & PSD_DISABLEMARGINS) != PSD_DISABLEMARGINS); - m_enableOrientation = ((pd->Flags & PSD_DISABLEORIENTATION) != PSD_DISABLEORIENTATION); - m_enablePaper = ((pd->Flags & PSD_DISABLEPAPER) != PSD_DISABLEPAPER); - m_enablePrinter = ((pd->Flags & PSD_DISABLEPRINTER) != PSD_DISABLEPRINTER); - m_getDefaultInfo = ((pd->Flags & PSD_RETURNDEFAULT) == PSD_RETURNDEFAULT); - m_enableHelp = ((pd->Flags & PSD_SHOWHELP) == PSD_SHOWHELP); - - // PAGESETUPDLG is in hundreds of a mm - m_paperSize.x = pd->ptPaperSize.x / 100; - m_paperSize.y = pd->ptPaperSize.y / 100; - - m_minMarginTopLeft.x = pd->rtMinMargin.left / 100; - m_minMarginTopLeft.y = pd->rtMinMargin.top / 100; - m_minMarginBottomRight.x = pd->rtMinMargin.right / 100; - m_minMarginBottomRight.y = pd->rtMinMargin.bottom / 100; - - m_marginTopLeft.x = pd->rtMargin.left / 100; - m_marginTopLeft.y = pd->rtMargin.top / 100; - m_marginBottomRight.x = pd->rtMargin.right / 100; - m_marginBottomRight.y = pd->rtMargin.bottom / 100; -} - -void wxPageSetupDialogData::SetOwnerWindow(wxWindow* win) -{ - if ( m_pageSetupData == NULL ) - ConvertToNative(); - - if ( m_pageSetupData != NULL && win != NULL) - { - PAGESETUPDLG *pd = (PAGESETUPDLG *) m_pageSetupData; - pd->hwndOwner=(HWND) win->GetHWND(); - } -} -#endif // Win95 - -#ifdef __WXMAC__ -void wxPageSetupDialogData::ConvertToNative() -{ - m_printData.ConvertToNative(); - m_printData.m_nativePrintData->TransferFrom( this ) ; -} - -void wxPageSetupDialogData::ConvertFromNative() -{ - m_printData.ConvertFromNative (); - m_paperSize = m_printData.GetPaperSize() ; - CalculateIdFromPaperSize(); - m_printData.m_nativePrintData->TransferTo( this ) ; - // adjust minimal values - - if ( m_marginTopLeft.x < m_minMarginTopLeft.x ) - m_marginTopLeft.x = m_minMarginTopLeft.x; - - if ( m_marginBottomRight.x < m_minMarginBottomRight.x ) - m_marginBottomRight.x = m_minMarginBottomRight.x; - - if ( m_marginTopLeft.y < m_minMarginTopLeft.y ) - m_marginTopLeft.y = m_minMarginTopLeft.y; - - if ( m_marginBottomRight.y < m_minMarginBottomRight.y ) - m_marginBottomRight.y = m_minMarginBottomRight.y; -} -#endif - - // If a corresponding paper type is found in the paper database, will set the m_printData // paper size id member as well. void wxPageSetupDialogData::SetPaperSize(const wxSize& sz) @@ -684,6 +613,12 @@ void wxPageSetupDialogData::SetPaperSize(wxPaperSize id) CalculatePaperSizeFromId(); } +void wxPageSetupDialogData::SetPrintData(const wxPrintData& printData) +{ + m_printData = printData; + CalculatePaperSizeFromId(); +} + // Use paper size defined in this object to set the wxPrintData // paper id void wxPageSetupDialogData::CalculateIdFromPaperSize()