Пример #1
0
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);
    }
}
Пример #2
0
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);
    }
}
Пример #3
0
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);
    }
}