diff options
Diffstat (limited to 'vcl/unx/generic/fontmanager/fontmanager.cxx')
-rw-r--r-- | vcl/unx/generic/fontmanager/fontmanager.cxx | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/vcl/unx/generic/fontmanager/fontmanager.cxx b/vcl/unx/generic/fontmanager/fontmanager.cxx index 394c5484a5bd..16e8b786dc88 100644 --- a/vcl/unx/generic/fontmanager/fontmanager.cxx +++ b/vcl/unx/generic/fontmanager/fontmanager.cxx @@ -108,6 +108,7 @@ PrintFontManager::PrintFont::PrintFont() , m_nYMax(0) , m_nDirectory(0) , m_nCollectionEntry(0) +, m_nVariationEntry(0) { } @@ -278,7 +279,7 @@ std::vector<std::unique_ptr<PrintFontManager::PrintFont>> PrintFontManager::anal return aNewFonts; } -fontID PrintFontManager::findFontFileID( int nDirID, const OString& rFontFile, int nFaceIndex ) const +fontID PrintFontManager::findFontFileID(int nDirID, const OString& rFontFile, int nFaceIndex, int nVariationIndex) const { fontID nID = 0; @@ -293,7 +294,9 @@ fontID PrintFontManager::findFontFileID( int nDirID, const OString& rFontFile, i continue; PrintFont* const pFont = (*it).second.get(); if (pFont->m_nDirectory == nDirID && - pFont->m_aFontFile == rFontFile && pFont->m_nCollectionEntry == nFaceIndex) + pFont->m_aFontFile == rFontFile && + pFont->m_nCollectionEntry == nFaceIndex && + pFont->m_nVariationEntry == nVariationIndex) { nID = it->first; if (nID) @@ -838,6 +841,19 @@ int PrintFontManager::getFontFaceNumber( fontID nFontID ) const return nRet; } +int PrintFontManager::getFontFaceVariation( fontID nFontID ) const +{ + int nRet = 0; + PrintFont* pFont = getFont( nFontID ); + if (pFont) + { + nRet = pFont->m_nVariationEntry; + if (nRet < 0) + nRet = 0; + } + return nRet; +} + FontFamily PrintFontManager::matchFamilyName( const OUString& rFamily ) { typedef struct { |