void wxOSXPrintData::TransferResolutionTo( wxPrintData &data ) { PMPrinter printer ; PMSessionGetCurrentPrinter( m_macPrintSession, &printer ); /* assume high quality, will change below if we are able to */ data.SetQuality(wxPRINT_QUALITY_HIGH); PMResolution *resolutions; UInt32 resCount; resolutions = GetSupportedResolutions(printer, &resCount); if (resolutions) { bool valid = false; PMResolution res; if ( PMPrinterGetOutputResolution(printer, m_macPrintSettings, &res) == noErr ) valid = true; if ( valid ) { UInt32 i; for (i = 0; i < resCount; i++) { if ((resolutions[i].hRes == res.hRes) && (resolutions[i].vRes = res.vRes)) break; } if (i < resCount) data.SetQuality((((i + 1) * 3) / resCount) + wxPRINT_QUALITY_DRAFT); } free(resolutions); } }
void wxOSXPrintData::TransferResolutionFrom( const wxPrintData &data ) { PMPrinter printer; PMSessionGetCurrentPrinter(m_macPrintSession, &printer); UInt32 resCount; PMResolution *resolutions = GetSupportedResolutions(printer, &resCount); if (resolutions) { wxPrintQuality quality = data.GetQuality(); if (quality >= 0) quality = wxPRINT_QUALITY_HIGH; PMResolution res = resolutions[((quality - wxPRINT_QUALITY_DRAFT) * (resCount - 1)) / 3]; #if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 if ( PMPrinterSetOutputResolution != NULL ) PMPrinterSetOutputResolution(printer, m_macPrintSettings, &res); else #endif { #if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_5 PMSetResolution( m_macPageFormat, &res); #endif } free(resolutions); } }
void wxOSXPrintData::TransferResolutionFrom( const wxPrintData &data ) { PMPrinter printer; PMSessionGetCurrentPrinter(m_macPrintSession, &printer); UInt32 resCount; PMResolution *resolutions = GetSupportedResolutions(printer, &resCount); if (resolutions) { wxPrintQuality quality = data.GetQuality(); if (quality >= 0) quality = wxPRINT_QUALITY_HIGH; PMResolution res = resolutions[((quality - wxPRINT_QUALITY_DRAFT) * (resCount - 1)) / 3]; PMPrinterSetOutputResolution(printer, m_macPrintSettings, &res); free(resolutions); } }