Exemple #1
0
std::pair<float, float> GetMaxDigitSizePixels(const std::wstring & fontName, double fontSize, double dpi, long fontStyle, NSFonts::IApplicationFonts *appFonts)
{
    try 
    {
        _CP_LOG << "[info] : GetMaxDigitSizePixels...";

        if (appFonts)
        {
            NSFonts::IFontManager *pFontManager = appFonts->GenerateFontManager();

            std::pair<float, float> val = GetMaxDigitSizePixelsImpl(fontName, fontSize, dpi, fontStyle, pFontManager);

            if (pFontManager)
            {                
                delete pFontManager;
            }

            _CP_LOG << "ok" << std::endl;
            return val;
        }
    }
    catch(...)
    {
        // TODO: default value!
    }    
	return std::pair<float, float>(7, 8);
}
void GlobalWorkbookInfo::GetDigitFontSizePixels()
{
	if (defaultDigitFontSize.first > 0.01) return;

	if (applicationFonts == NULL)
	{
		applicationFonts = new CApplicationFonts();
		applicationFonts->InitializeFromFolder(fontsDirectory);
	}

	defaultDigitFontSize = std::pair<float, float>(7,8);
	if (m_arFonts->size() < 1) return;

	Font * font = dynamic_cast<Font*>(m_arFonts->at(0).get());
	if (!font) return;

	std::wstring	fontName = font->fontName.value();
	double			fontSize = font->dyHeight /20.;

    try 
    {
        if (applicationFonts)
        {
            CFontManager *pFontManager = applicationFonts->GenerateFontManager();

            std::pair<float, float> val = GetMaxDigitSizePixelsImpl(fontName, fontSize, 96., 0, pFontManager);

            if (pFontManager)
            {
                pFontManager->m_pApplication = NULL;
                delete pFontManager;
            }

            defaultDigitFontSize = val;
        }
    }
    catch(...)
    {
        // TODO: default value!
    }    
}