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! } }