diff options
-rw-r--r-- | include/vcl/outdev.hxx | 16 | ||||
-rw-r--r-- | svtools/source/config/fontsubstconfig.cxx | 6 | ||||
-rw-r--r-- | vcl/inc/outdev.h | 10 | ||||
-rw-r--r-- | vcl/source/outdev/font.cxx | 12 |
4 files changed, 27 insertions, 17 deletions
diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx index dda1507807ea..f9586ca7023a 100644 --- a/include/vcl/outdev.hxx +++ b/include/vcl/outdev.hxx @@ -266,9 +266,17 @@ namespace o3tl template<> struct typed_flags<AntialiasingFlags> : is_typed_flags<AntialiasingFlags, 0x07> {}; } -// AddFontSubstitute -#define FONT_SUBSTITUTE_ALWAYS ((sal_uInt16)0x0001) -#define FONT_SUBSTITUTE_SCREENONLY ((sal_uInt16)0x0002) +// AddFontSubstitute() flags +enum class AddFontSubstituteFlags +{ + NONE = 0x00, + ALWAYS = 0x01, + ScreenOnly = 0x02, +}; +namespace o3tl +{ + template<> struct typed_flags<AddFontSubstituteFlags> : is_typed_flags<AddFontSubstituteFlags, 0x03> {}; +} #define DEFAULTFONT_FLAGS_ONLYONE ((sal_uLong)0x00000001) @@ -1259,7 +1267,7 @@ public: static void EndFontSubstitution(); static void AddFontSubstitute( const OUString& rFontName, const OUString& rReplaceFontName, - sal_uInt16 nFlags = 0 ); + AddFontSubstituteFlags nFlags = AddFontSubstituteFlags::NONE ); static void RemoveFontSubstitute( sal_uInt16 n ); static sal_uInt16 GetFontSubstituteCount(); diff --git a/svtools/source/config/fontsubstconfig.cxx b/svtools/source/config/fontsubstconfig.cxx index 6d7e3373376d..8f37ba836ee7 100644 --- a/svtools/source/config/fontsubstconfig.cxx +++ b/svtools/source/config/fontsubstconfig.cxx @@ -178,12 +178,12 @@ void SvtFontSubstConfig::Apply() for (sal_Int32 i = 0; i < nCount; i++) { - sal_uInt16 nFlags = 0; + AddFontSubstituteFlags nFlags = AddFontSubstituteFlags::NONE; const SubstitutionStruct* pSubs = GetSubstitution(i); if(pSubs->bReplaceAlways) - nFlags |= FONT_SUBSTITUTE_ALWAYS; + nFlags |= AddFontSubstituteFlags::ALWAYS; if(pSubs->bReplaceOnScreenOnly) - nFlags |= FONT_SUBSTITUTE_SCREENONLY; + nFlags |= AddFontSubstituteFlags::ScreenOnly; OutputDevice::AddFontSubstitute( pSubs->sFont, pSubs->sReplaceBy, nFlags ); } diff --git a/vcl/inc/outdev.h b/vcl/inc/outdev.h index eae0c597a03b..7d4479825667 100644 --- a/vcl/inc/outdev.h +++ b/vcl/inc/outdev.h @@ -36,6 +36,8 @@ class VirtualDevice; class ImplGetDevFontList; class GetDevSizeList; class PhysicalFontCollection; +enum class AddFontSubstituteFlags; + // an ImplGetDevFontList is created by an PhysicalFontCollection // it becomes invalid when original PhysicalFontCollection is modified class ImplGetDevFontList @@ -90,9 +92,9 @@ struct ImplFontSubstEntry OUString maReplaceName; OUString maSearchName; OUString maSearchReplaceName; - sal_uInt16 mnFlags; + AddFontSubstituteFlags mnFlags; - ImplFontSubstEntry( const OUString& rFontName, const OUString& rSubstFontName, sal_uInt16 nSubstFlags ); + ImplFontSubstEntry( const OUString& rFontName, const OUString& rSubstFontName, AddFontSubstituteFlags nSubstFlags ); }; class ImplDirectFontSubstitution @@ -102,13 +104,13 @@ private: typedef std::list<ImplFontSubstEntry> FontSubstList; FontSubstList maFontSubstList; public: - void AddFontSubstitute( const OUString& rFontName, const OUString& rSubstName, sal_uInt16 nFlags ); + void AddFontSubstitute( const OUString& rFontName, const OUString& rSubstName, AddFontSubstituteFlags nFlags ); void RemoveFontSubstitute( int nIndex ); int GetFontSubstituteCount() const { return maFontSubstList.size(); }; bool Empty() const { return maFontSubstList.empty(); } void Clear() { maFontSubstList.clear(); } - bool FindFontSubstitute( OUString& rSubstName, const OUString& rFontName, sal_uInt16 nFlags ) const; + bool FindFontSubstitute( OUString& rSubstName, const OUString& rFontName, AddFontSubstituteFlags nFlags ) const; }; // PreMatchFontSubstitution diff --git a/vcl/source/outdev/font.cxx b/vcl/source/outdev/font.cxx index 94d312721674..05ff359e2d71 100644 --- a/vcl/source/outdev/font.cxx +++ b/vcl/source/outdev/font.cxx @@ -687,7 +687,7 @@ void OutputDevice::EndFontSubstitution() void OutputDevice::AddFontSubstitute( const OUString& rFontName, const OUString& rReplaceFontName, - sal_uInt16 nFlags ) + AddFontSubstituteFlags nFlags ) { ImplDirectFontSubstitution*& rpSubst = ImplGetSVData()->maGDIData.mpDirectFontSubst; if( !rpSubst ) @@ -697,13 +697,13 @@ void OutputDevice::AddFontSubstitute( const OUString& rFontName, } void ImplDirectFontSubstitution::AddFontSubstitute( const OUString& rFontName, - const OUString& rSubstFontName, sal_uInt16 nFlags ) + const OUString& rSubstFontName, AddFontSubstituteFlags nFlags ) { maFontSubstList.push_back( ImplFontSubstEntry( rFontName, rSubstFontName, nFlags ) ); } ImplFontSubstEntry::ImplFontSubstEntry( const OUString& rFontName, - const OUString& rSubstFontName, sal_uInt16 nSubstFlags ) + const OUString& rSubstFontName, AddFontSubstituteFlags nSubstFlags ) : maName( rFontName ) , maReplaceName( rSubstFontName ) , mnFlags( nSubstFlags ) @@ -737,14 +737,14 @@ sal_uInt16 OutputDevice::GetFontSubstituteCount() } bool ImplDirectFontSubstitution::FindFontSubstitute( OUString& rSubstName, - const OUString& rSearchName, sal_uInt16 nFlags ) const + const OUString& rSearchName, AddFontSubstituteFlags nFlags ) const { // TODO: get rid of O(N) searches FontSubstList::const_iterator it = maFontSubstList.begin(); for(; it != maFontSubstList.end(); ++it ) { const ImplFontSubstEntry& rEntry = *it; - if( ((rEntry.mnFlags & nFlags) || !nFlags) + if( ((rEntry.mnFlags & nFlags) || nFlags == AddFontSubstituteFlags::NONE) && (rEntry.maSearchName == rSearchName) ) { rSubstName = rEntry.maSearchReplaceName; @@ -764,7 +764,7 @@ void ImplFontSubstitute( OUString& rFontName ) // apply user-configurable font replacement (eg, from the list in Tools->Options) const ImplDirectFontSubstitution* pSubst = ImplGetSVData()->maGDIData.mpDirectFontSubst; - if( pSubst && pSubst->FindFontSubstitute( aSubstFontName, rFontName, FONT_SUBSTITUTE_ALWAYS ) ) + if( pSubst && pSubst->FindFontSubstitute( aSubstFontName, rFontName, AddFontSubstituteFlags::ALWAYS ) ) { rFontName = aSubstFontName; return; |