summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Sherlock <chris.sherlock79@gmail.com>2021-09-12 14:41:19 +1000
committerMike Kaganski <mike.kaganski@collabora.com>2021-10-05 18:11:01 +0200
commitc817a5a4958c323eb189e1374072998b8b13ba8c (patch)
tree0345dd9e4ae0b590a184b354e9fb183dbcd27f09
parent0e736b0c20e096c5daf59f141b4509cfcc159a79 (diff)
vcl: test PhysicalFontFace and move to vcl::font namespace
- moved PhysicalFontFace.hxx to vcl/inc/font - added PhysicalFontFace to vcl::font namespace - had to regenerate precompiled_vcl.hxx - tested PhysicalFontFace, with some extensive tests for IsBetterMatch() Change-Id: I860022ac244f8a827f6f9cb7ed9018c5d9c328cb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121970 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
-rw-r--r--include/vcl/metric.hxx4
-rw-r--r--include/vcl/vcllayout.hxx5
-rw-r--r--solenv/clang-format/excludelist4
-rw-r--r--vcl/CppunitTest_vcl_font.mk1
-rw-r--r--vcl/Library_vcl.mk2
-rw-r--r--vcl/headless/svptext.cxx6
-rw-r--r--vcl/inc/PhysicalFontCollection.hxx2
-rw-r--r--vcl/inc/font/FontSelectPattern.hxx1
-rw-r--r--vcl/inc/font/PhysicalFontFace.hxx (renamed from vcl/inc/PhysicalFontFace.hxx)9
-rw-r--r--vcl/inc/font/PhysicalFontFaceCollection.hxx2
-rw-r--r--vcl/inc/font/PhysicalFontFamily.hxx5
-rw-r--r--vcl/inc/fontinstance.hxx10
-rw-r--r--vcl/inc/headless/svpgdi.hxx7
-rw-r--r--vcl/inc/outdev.h2
-rw-r--r--vcl/inc/pch/precompiled_vcl.hxx24
-rw-r--r--vcl/inc/pdf/pdfbuildin_fonts.hxx6
-rw-r--r--vcl/inc/pdf/pdffontcache.hxx6
-rw-r--r--vcl/inc/pdf/pdfwriter_impl.hxx12
-rw-r--r--vcl/inc/qt5/QtFont.hxx2
-rw-r--r--vcl/inc/qt5/QtFontFace.hxx4
-rw-r--r--vcl/inc/qt5/QtGraphics.hxx7
-rw-r--r--vcl/inc/quartz/salgdi.h14
-rw-r--r--vcl/inc/salgdi.hxx13
-rw-r--r--vcl/inc/sallayout.hxx10
-rw-r--r--vcl/inc/textrender.hxx8
-rw-r--r--vcl/inc/unx/cairotextrender.hxx2
-rw-r--r--vcl/inc/unx/freetype_glyphcache.hxx8
-rw-r--r--vcl/inc/unx/freetypetextrender.hxx6
-rw-r--r--vcl/inc/unx/genpspgraphics.h8
-rw-r--r--vcl/inc/unx/salgdi.h8
-rw-r--r--vcl/inc/win/salgdi.h14
-rw-r--r--vcl/qa/cppunit/fontmocks.hxx14
-rw-r--r--vcl/qa/cppunit/physicalfontface.cxx301
-rw-r--r--vcl/qa/cppunit/physicalfontfacecollection.cxx4
-rw-r--r--vcl/qt5/QtFont.cxx2
-rw-r--r--vcl/qt5/QtFontFace.cxx2
-rw-r--r--vcl/qt5/QtGraphics_Text.cxx8
-rw-r--r--vcl/quartz/ctfonts.cxx2
-rw-r--r--vcl/quartz/salgdi.cxx8
-rw-r--r--vcl/quartz/salgdicommon.cxx2
-rw-r--r--vcl/source/font/FontSelectPattern.cxx (renamed from vcl/source/font/fontselect.cxx)3
-rw-r--r--vcl/source/font/PhysicalFontCollection.cxx2
-rw-r--r--vcl/source/font/PhysicalFontFace.cxx6
-rw-r--r--vcl/source/font/fontcache.cxx5
-rw-r--r--vcl/source/font/fontinstance.cxx6
-rw-r--r--vcl/source/font/fontmetric.cxx6
-rw-r--r--vcl/source/gdi/embeddedfontshelper.cxx4
-rw-r--r--vcl/source/gdi/pdfbuildin_fonts.cxx4
-rw-r--r--vcl/source/gdi/pdffontcache.cxx8
-rw-r--r--vcl/source/gdi/pdfwriter_impl.cxx18
-rw-r--r--vcl/source/gdi/salgdilayout.cxx4
-rw-r--r--vcl/source/gdi/sallayout.cxx6
-rw-r--r--vcl/unx/generic/gdi/font.cxx6
-rw-r--r--vcl/unx/generic/gdi/freetypetextrender.cxx8
-rw-r--r--vcl/unx/generic/glyphs/freetype_glyphcache.cxx4
-rw-r--r--vcl/unx/generic/glyphs/glyphcache.cxx2
-rw-r--r--vcl/unx/generic/print/genpspgraphics.cxx9
-rw-r--r--vcl/win/gdi/salfont.cxx25
-rw-r--r--vcl/win/gdi/winlayout.cxx5
59 files changed, 516 insertions, 170 deletions
diff --git a/include/vcl/metric.hxx b/include/vcl/metric.hxx
index 7d5ddfd055fa..a89e8eedfb0c 100644
--- a/include/vcl/metric.hxx
+++ b/include/vcl/metric.hxx
@@ -28,7 +28,7 @@
#include <vcl/font.hxx>
class FontCharMap;
-class PhysicalFontFace;
+namespace vcl::font { class PhysicalFontFace; }
typedef tools::SvRef<FontCharMap> FontCharMapRef;
@@ -37,7 +37,7 @@ class VCL_DLLPUBLIC FontMetric : public vcl::Font
public:
explicit FontMetric();
FontMetric( const FontMetric& ); // TODO make this explicit
- FontMetric(PhysicalFontFace const& rFace);
+ FontMetric(vcl::font::PhysicalFontFace const& rFace);
~FontMetric() override;
tools::Long GetAscent() const { return mnAscent; }
diff --git a/include/vcl/vcllayout.hxx b/include/vcl/vcllayout.hxx
index 3b6254869f1b..34acb2fe733e 100644
--- a/include/vcl/vcllayout.hxx
+++ b/include/vcl/vcllayout.hxx
@@ -24,13 +24,14 @@
#include <basegfx/polygon/b2dpolypolygon.hxx>
#include <tools/gen.hxx>
#include <tools/degree.hxx>
+
#include <vcl/devicecoordinate.hxx>
#include <vcl/glyphitem.hxx>
#include <vcl/dllapi.h>
class LogicalFontInstance;
namespace vcl::text { class ImplLayoutArgs; }
-class PhysicalFontFace;
+namespace vcl::font { class PhysicalFontFace; }
class SalGraphics;
class GlyphItem;
@@ -93,7 +94,7 @@ public:
// methods using glyph indexing
virtual bool GetNextGlyph(const GlyphItem** pGlyph, Point& rPos, int& nStart,
const LogicalFontInstance** ppGlyphFont = nullptr,
- const PhysicalFontFace** pFallbackFont = nullptr) const = 0;
+ const vcl::font::PhysicalFontFace** pFallbackFont = nullptr) const = 0;
virtual bool GetOutline(basegfx::B2DPolyPolygonVector&) const;
bool GetBoundRect(tools::Rectangle&) const;
diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist
index 6d590cd53040..9240bffc7064 100644
--- a/solenv/clang-format/excludelist
+++ b/solenv/clang-format/excludelist
@@ -14420,7 +14420,6 @@ vcl/headless/svpvd.cxx
vcl/inc/IconThemeSelector.hxx
vcl/inc/IPrioritable.hxx
vcl/inc/PhysicalFontCollection.hxx
-vcl/inc/PhysicalFontFace.hxx
vcl/inc/PhysicalFontFamily.hxx
vcl/inc/ResampleKernel.hxx
vcl/inc/WidgetThemeLibraryTypes.hxx
@@ -14440,6 +14439,7 @@ vcl/inc/dndlistenercontainer.hxx
vcl/inc/factory.hxx
vcl/inc/fltcall.hxx
vcl/inc/font/FontSelectPattern.hxx
+vcl/inc/font/PhysicalFontFace.hxx
vcl/inc/fontattributes.hxx
vcl/inc/fontinstance.hxx
vcl/inc/fontsubset.hxx
@@ -14940,6 +14940,7 @@ vcl/source/filter/wmf/emfwr.hxx
vcl/source/filter/wmf/wmf.cxx
vcl/source/filter/wmf/wmfwr.cxx
vcl/source/filter/wmf/wmfwr.hxx
+vcl/source/font/FontSelectPattern.cxx
vcl/source/font/PhysicalFontCollection.cxx
vcl/source/font/PhysicalFontFace.cxx
vcl/source/font/PhysicalFontFamily.cxx
@@ -14949,7 +14950,6 @@ vcl/source/font/fontcache.cxx
vcl/source/font/fontcharmap.cxx
vcl/source/font/fontinstance.cxx
vcl/source/font/fontmetric.cxx
-vcl/source/font/fontselect.cxx
vcl/source/fontsubset/cff.cxx
vcl/source/fontsubset/fontsubset.cxx
vcl/source/fontsubset/list.cxx
diff --git a/vcl/CppunitTest_vcl_font.mk b/vcl/CppunitTest_vcl_font.mk
index 456468557056..5c9da11d4f19 100644
--- a/vcl/CppunitTest_vcl_font.mk
+++ b/vcl/CppunitTest_vcl_font.mk
@@ -16,6 +16,7 @@ $(eval $(call gb_CppunitTest_set_include,vcl_font,\
$(eval $(call gb_CppunitTest_add_exception_objects,vcl_font, \
vcl/qa/cppunit/font \
+ vcl/qa/cppunit/physicalfontface \
vcl/qa/cppunit/physicalfontfacecollection \
vcl/qa/cppunit/physicalfontfamily \
))
diff --git a/vcl/Library_vcl.mk b/vcl/Library_vcl.mk
index abd645216ab4..5c410de75bb0 100644
--- a/vcl/Library_vcl.mk
+++ b/vcl/Library_vcl.mk
@@ -473,12 +473,12 @@ $(eval $(call gb_Library_add_exception_objects,vcl,\
vcl/source/font/Feature \
vcl/source/font/FeatureCollector \
vcl/source/font/FeatureParser \
+ vcl/source/font/FontSelectPattern \
vcl/source/font/OpenTypeFeatureDefinitionList \
vcl/source/font/PhysicalFontCollection \
vcl/source/font/PhysicalFontFace \
vcl/source/font/PhysicalFontFamily \
vcl/source/font/fontattributes \
- vcl/source/font/fontselect \
vcl/source/font/fontinstance \
vcl/source/font/fontcache \
vcl/source/font/fontcharmap \
diff --git a/vcl/headless/svptext.cxx b/vcl/headless/svptext.cxx
index 4f64c7469aff..3822bac4070c 100644
--- a/vcl/headless/svptext.cxx
+++ b/vcl/headless/svptext.cxx
@@ -65,7 +65,7 @@ bool SvpSalGraphics::AddTempDevFont( PhysicalFontCollection* pFontCollection,
bool SvpSalGraphics::CreateFontSubset(
const OUString& rToFile,
- const PhysicalFontFace* pFont,
+ const vcl::font::PhysicalFontFace* pFont,
const sal_GlyphId* pGlyphIds,
const sal_uInt8* pEncoding,
sal_Int32* pWidths,
@@ -75,7 +75,7 @@ bool SvpSalGraphics::CreateFontSubset(
return m_aTextRenderImpl.CreateFontSubset(rToFile, pFont, pGlyphIds, pEncoding, pWidths, nGlyphCount, rInfo);
}
-const void* SvpSalGraphics::GetEmbedFontData(const PhysicalFontFace* pFont, tools::Long* pDataLen)
+const void* SvpSalGraphics::GetEmbedFontData(const vcl::font::PhysicalFontFace* pFont, tools::Long* pDataLen)
{
return m_aTextRenderImpl.GetEmbedFontData(pFont, pDataLen);
}
@@ -85,7 +85,7 @@ void SvpSalGraphics::FreeEmbedFontData( const void* pData, tools::Long nLen )
m_aTextRenderImpl.FreeEmbedFontData(pData, nLen);
}
-void SvpSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFont,
+void SvpSalGraphics::GetGlyphWidths( const vcl::font::PhysicalFontFace* pFont,
bool bVertical,
std::vector< sal_Int32 >& rWidths,
Ucs2UIntMap& rUnicodeEnc )
diff --git a/vcl/inc/PhysicalFontCollection.hxx b/vcl/inc/PhysicalFontCollection.hxx
index 79358d6a49ae..ee1fdad285c9 100644
--- a/vcl/inc/PhysicalFontCollection.hxx
+++ b/vcl/inc/PhysicalFontCollection.hxx
@@ -43,7 +43,7 @@ public:
~PhysicalFontCollection();
// fill the list with device font faces
- void Add( PhysicalFontFace* );
+ void Add( vcl::font::PhysicalFontFace* );
void Clear();
int Count() const { return maPhysicalFontFamilies.size(); }
diff --git a/vcl/inc/font/FontSelectPattern.hxx b/vcl/inc/font/FontSelectPattern.hxx
index 077c1c941996..78be730130f1 100644
--- a/vcl/inc/font/FontSelectPattern.hxx
+++ b/vcl/inc/font/FontSelectPattern.hxx
@@ -36,6 +36,7 @@ class Size;
namespace vcl::font
{
+class PhysicalFontFace;
class VCL_DLLPUBLIC FontSelectPattern : public FontAttributes
{
diff --git a/vcl/inc/PhysicalFontFace.hxx b/vcl/inc/font/PhysicalFontFace.hxx
index c2743e4c1ca1..0fa71de0af44 100644
--- a/vcl/inc/PhysicalFontFace.hxx
+++ b/vcl/inc/font/PhysicalFontFace.hxx
@@ -28,7 +28,7 @@
#include <vcl/dllapi.h>
#include <vcl/fontcharmap.hxx>
-#include "fontattributes.hxx"
+#include <fontattributes.hxx>
class LogicalFontInstance;
struct FontMatchStatus;
@@ -44,6 +44,10 @@ struct FontCapabilities;
class PhysicalFontFamily;
}
+namespace vcl::font
+{
+class FontSelectPattern;
+
struct FontMatchStatus
{
public:
@@ -53,7 +57,6 @@ public:
const OUString* mpTargetStyleName;
};
-
// TODO: no more direct access to members
// TODO: get rid of height/width for scalable fonts
// TODO: make cloning cheaper
@@ -80,6 +83,8 @@ protected:
explicit PhysicalFontFace(const FontAttributes&);
};
+}
+
#endif // INCLUDED_VCL_INC_PHYSICALFONTFACE_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/font/PhysicalFontFaceCollection.hxx b/vcl/inc/font/PhysicalFontFaceCollection.hxx
index 9b4622690bfb..c9e3e64b6640 100644
--- a/vcl/inc/font/PhysicalFontFaceCollection.hxx
+++ b/vcl/inc/font/PhysicalFontFaceCollection.hxx
@@ -23,7 +23,7 @@
#include <vcl/dllapi.h>
-#include <PhysicalFontFace.hxx>
+#include "PhysicalFontFace.hxx"
#include <vector>
diff --git a/vcl/inc/font/PhysicalFontFamily.hxx b/vcl/inc/font/PhysicalFontFamily.hxx
index d807c4f648e5..a3c4d0b90a31 100644
--- a/vcl/inc/font/PhysicalFontFamily.hxx
+++ b/vcl/inc/font/PhysicalFontFamily.hxx
@@ -28,9 +28,6 @@
#include <unotools/fontcfg.hxx>
-#include <PhysicalFontFace.hxx>
-
-class PhysicalFontFace;
class PhysicalFontCollection;
namespace vcl::font
@@ -59,6 +56,8 @@ struct typed_flags<vcl::font::FontTypeFaces> : is_typed_flags<vcl::font::FontTyp
namespace vcl::font
{
+class FontSelectPattern;
+class PhysicalFontFace;
class PhysicalFontFaceCollection;
class VCL_PLUGIN_PUBLIC PhysicalFontFamily
diff --git a/vcl/inc/fontinstance.hxx b/vcl/inc/fontinstance.hxx
index fa8fcba15806..aad22017e0d4 100644
--- a/vcl/inc/fontinstance.hxx
+++ b/vcl/inc/fontinstance.hxx
@@ -48,7 +48,7 @@ class VCL_PLUGIN_PUBLIC LogicalFontInstance : public salhelper::SimpleReferenceO
{
// just declaring the factory function doesn't work AKA
// friend LogicalFontInstance* PhysicalFontFace::CreateFontInstance(const FontSelectPattern&) const;
- friend class PhysicalFontFace;
+ friend class vcl::font::PhysicalFontFace;
friend class ImplFontCache;
public: // TODO: make data members private
@@ -72,8 +72,8 @@ public: // TODO: make data members private
double GetAverageWidthFactor() const { return m_nAveWidthFactor; }
const vcl::font::FontSelectPattern& GetFontSelectPattern() const { return m_aFontSelData; }
- const PhysicalFontFace* GetFontFace() const { return m_pFontFace.get(); }
- PhysicalFontFace* GetFontFace() { return m_pFontFace.get(); }
+ const vcl::font::PhysicalFontFace* GetFontFace() const { return m_pFontFace.get(); }
+ vcl::font::PhysicalFontFace* GetFontFace() { return m_pFontFace.get(); }
const ImplFontCache* GetFontCache() const { return mpFontCache; }
bool GetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const;
@@ -85,7 +85,7 @@ public: // TODO: make data members private
static inline void DecodeOpenTypeTag(const uint32_t nTableTag, char* pTagName);
protected:
- explicit LogicalFontInstance(const PhysicalFontFace&, const vcl::font::FontSelectPattern&);
+ explicit LogicalFontInstance(const vcl::font::PhysicalFontFace&, const vcl::font::FontSelectPattern&);
virtual bool ImplGetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const = 0;
@@ -103,7 +103,7 @@ private:
const vcl::font::FontSelectPattern m_aFontSelData;
hb_font_t* m_pHbFont;
double m_nAveWidthFactor;
- rtl::Reference<PhysicalFontFace> m_pFontFace;
+ rtl::Reference<vcl::font::PhysicalFontFace> m_pFontFace;
std::optional<bool> m_xbIsGraphiteFont;
};
diff --git a/vcl/inc/headless/svpgdi.hxx b/vcl/inc/headless/svpgdi.hxx
index 7be2f35e2cc1..e7c0c884e20f 100644
--- a/vcl/inc/headless/svpgdi.hxx
+++ b/vcl/inc/headless/svpgdi.hxx
@@ -31,6 +31,7 @@
#include <vcl/sysdata.hxx>
#include <config_cairo_canvas.h>
+#include <font/PhysicalFontFace.hxx>
#include <salgdi.hxx>
#include <sallayout.hxx>
#include "svpcairotextrender.hxx"
@@ -183,16 +184,16 @@ public:
virtual void ClearDevFontCache() override;
virtual bool AddTempDevFont( PhysicalFontCollection*, const OUString& rFileURL, const OUString& rFontName ) override;
virtual bool CreateFontSubset( const OUString& rToFile,
- const PhysicalFontFace*,
+ const vcl::font::PhysicalFontFace*,
const sal_GlyphId* pGlyphIds,
const sal_uInt8* pEncoding,
sal_Int32* pWidths,
int nGlyphs,
FontSubsetInfo& rInfo
) override;
- virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen) override;
+ virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* pDataLen) override;
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) override;
- virtual void GetGlyphWidths( const PhysicalFontFace*,
+ virtual void GetGlyphWidths( const vcl::font::PhysicalFontFace*,
bool bVertical,
std::vector< sal_Int32 >& rWidths,
Ucs2UIntMap& rUnicodeEnc ) override;
diff --git a/vcl/inc/outdev.h b/vcl/inc/outdev.h
index 85b4ca601ac7..c9185bcc23fb 100644
--- a/vcl/inc/outdev.h
+++ b/vcl/inc/outdev.h
@@ -25,8 +25,8 @@
#include <tools/gen.hxx>
#include <vcl/vclptr.hxx>
+#include "font/PhysicalFontFace.hxx"
#include "fontinstance.hxx"
-#include "PhysicalFontFace.hxx"
#include "impfontcache.hxx"
class Size;
diff --git a/vcl/inc/pch/precompiled_vcl.hxx b/vcl/inc/pch/precompiled_vcl.hxx
index b42d7e50c2f5..9fea18da7661 100644
--- a/vcl/inc/pch/precompiled_vcl.hxx
+++ b/vcl/inc/pch/precompiled_vcl.hxx
@@ -13,7 +13,7 @@
manual changes will be rewritten by the next run of update_pch.sh (which presumably
also fixes all possible problems, so it's usually better to use it).
- Generated on 2021-08-04 20:14:15 using:
+ Generated on 2021-09-21 16:33:04 using:
./bin/update_pch vcl vcl --cutoff=6 --exclude:system --include:module --include:local
If after updating build fails, use the following command to locate conflicting headers:
@@ -33,9 +33,11 @@
#include <deque>
#include <float.h>
#include <functional>
+#include <hb.h>
#include <initializer_list>
#include <iomanip>
#include <limits>
+#include <list>
#include <map>
#include <math.h>
#include <memory>
@@ -52,7 +54,6 @@
#include <unordered_map>
#include <utility>
#include <vector>
-#include <boost/functional/hash.hpp>
#include <boost/math/special_functions/sinc.hpp>
#include <boost/multi_array.hpp>
#include <boost/property_tree/json_parser.hpp>
@@ -80,6 +81,7 @@
#include <rtl/bootstrap.hxx>
#include <rtl/byteseq.hxx>
#include <rtl/character.hxx>
+#include <rtl/cipher.h>
#include <rtl/crc.h>
#include <rtl/digest.h>
#include <rtl/instance.hxx>
@@ -129,8 +131,6 @@
#include <basegfx/vector/b2enums.hxx>
#include <basegfx/vector/b2ivector.hxx>
#include <bitmap/BitmapWriteAccess.hxx>
-#include <com/sun/star/awt/Key.hpp>
-#include <com/sun/star/awt/KeyGroup.hpp>
#include <com/sun/star/beans/PropertyValue.hpp>
#include <com/sun/star/datatransfer/DataFlavor.hpp>
#include <com/sun/star/datatransfer/XTransferable2.hpp>
@@ -146,8 +146,13 @@
#include <com/sun/star/embed/Aspects.hpp>
#include <com/sun/star/frame/XTerminateListener.hpp>
#include <com/sun/star/i18n/Calendar2.hpp>
+#include <com/sun/star/i18n/DirectionProperty.hpp>
+#include <com/sun/star/i18n/KCharacterType.hpp>
+#include <com/sun/star/i18n/NativeNumberXmlAttributes.hpp>
+#include <com/sun/star/i18n/ParseResult.hpp>
#include <com/sun/star/i18n/TransliterationModules.hpp>
#include <com/sun/star/i18n/TransliterationModulesExtra.hpp>
+#include <com/sun/star/i18n/UnicodeScript.hpp>
#include <com/sun/star/lang/DisposedException.hpp>
#include <com/sun/star/lang/EventObject.hpp>
#include <com/sun/star/lang/Locale.hpp>
@@ -190,10 +195,14 @@
#include <cppuhelper/weak.hxx>
#include <cppuhelper/weakagg.hxx>
#include <cppuhelper/weakref.hxx>
+#include <font/FontSelectPattern.hxx>
+#include <font/PhysicalFontFace.hxx>
+#include <font/PhysicalFontFaceCollection.hxx>
#include <i18nlangtag/lang.h>
#include <i18nlangtag/languagetag.hxx>
#include <i18nlangtag/mslangid.hxx>
#include <i18nutil/i18nutildllapi.h>
+#include <i18nutil/transliteration.hxx>
#include <o3tl/cow_wrapper.hxx>
#include <o3tl/safeint.hxx>
#include <o3tl/sorted_vector.hxx>
@@ -246,18 +255,20 @@
#include <uno/any2.h>
#include <uno/data.h>
#include <uno/sequence2.h>
+#include <unotools/calendarwrapper.hxx>
#include <unotools/configmgr.hxx>
#include <unotools/localedatawrapper.hxx>
+#include <unotools/resmgr.hxx>
#include <unotools/syslocale.hxx>
#include <unotools/ucbstreamhelper.hxx>
#include <unotools/unotoolsdllapi.h>
#endif // PCH_LEVEL >= 3
#if PCH_LEVEL >= 4
#include <PhysicalFontCollection.hxx>
-#include <PhysicalFontFace.hxx>
#include <accel.hxx>
#include <brdwin.hxx>
#include <configsettings.hxx>
+#include <drawmode.hxx>
#include <fontattributes.hxx>
#include <impglyphitem.hxx>
#include <outdev.h>
@@ -303,6 +314,8 @@
#include <vcl/dllapi.h>
#include <vcl/dockwin.hxx>
#include <vcl/event.hxx>
+#include <vcl/filter/SvmReader.hxx>
+#include <vcl/filter/SvmWriter.hxx>
#include <vcl/fntstyle.hxx>
#include <vcl/font.hxx>
#include <vcl/formatter.hxx>
@@ -354,6 +367,7 @@
#include <vcl/unohelp.hxx>
#include <vcl/vclenum.hxx>
#include <vcl/vclevent.hxx>
+#include <vcl/vcllayout.hxx>
#include <vcl/vclptr.hxx>
#include <vcl/virdev.hxx>
#include <vcl/weld.hxx>
diff --git a/vcl/inc/pdf/pdfbuildin_fonts.hxx b/vcl/inc/pdf/pdfbuildin_fonts.hxx
index 88629be914c3..fbcc04a9e6fa 100644
--- a/vcl/inc/pdf/pdfbuildin_fonts.hxx
+++ b/vcl/inc/pdf/pdfbuildin_fonts.hxx
@@ -21,7 +21,7 @@
#include <sal/config.h>
-#include <PhysicalFontFace.hxx>
+#include <font/PhysicalFontFace.hxx>
#include <fontinstance.hxx>
namespace vcl::pdf
@@ -52,12 +52,12 @@ class BuildinFontInstance final : public LogicalFontInstance
bool ImplGetGlyphBoundRect(sal_GlyphId nID, tools::Rectangle& rRect, bool) const override;
public:
- BuildinFontInstance(const PhysicalFontFace&, const vcl::font::FontSelectPattern&);
+ BuildinFontInstance(const vcl::font::PhysicalFontFace&, const vcl::font::FontSelectPattern&);
bool GetGlyphOutline(sal_GlyphId nId, basegfx::B2DPolyPolygon& rPoly, bool) const override;
};
-class BuildinFontFace final : public PhysicalFontFace
+class BuildinFontFace final : public vcl::font::PhysicalFontFace
{
static const BuildinFont m_aBuildinFonts[14];
const BuildinFont& mrBuildin;
diff --git a/vcl/inc/pdf/pdffontcache.hxx b/vcl/inc/pdf/pdffontcache.hxx
index 094652fefe89..a6b58d8e7b00 100644
--- a/vcl/inc/pdf/pdffontcache.hxx
+++ b/vcl/inc/pdf/pdffontcache.hxx
@@ -37,7 +37,7 @@ namespace vcl
bool m_bVertical;
std::type_info* m_typeFontFace;
- FontIdentifier( const PhysicalFontFace*, bool bVertical );
+ FontIdentifier( const vcl::font::PhysicalFontFace*, bool bVertical );
// Less than needed for std::set and std::map
bool operator<( const FontIdentifier& rRight ) const
@@ -60,11 +60,11 @@ namespace vcl
std::vector< FontData > m_aFonts;
FontToIndexMap m_aFontToIndex;
- FontData& getFont( const PhysicalFontFace*, bool bVertical );
+ FontData& getFont( const vcl::font::PhysicalFontFace*, bool bVertical );
public:
PDFFontCache() {}
- sal_Int32 getGlyphWidth( const PhysicalFontFace*, sal_GlyphId, bool bVertical, SalGraphics* );
+ sal_Int32 getGlyphWidth( const vcl::font::PhysicalFontFace*, sal_GlyphId, bool bVertical, SalGraphics* );
};
}
diff --git a/vcl/inc/pdf/pdfwriter_impl.hxx b/vcl/inc/pdf/pdfwriter_impl.hxx
index 21c2b799654b..c3f63be2693d 100644
--- a/vcl/inc/pdf/pdfwriter_impl.hxx
+++ b/vcl/inc/pdf/pdfwriter_impl.hxx
@@ -64,7 +64,7 @@ class FontSubsetInfo;
class ZCodec;
class EncHashTransporter;
struct BitStreamState;
-class PhysicalFontFace;
+namespace vcl::font { class PhysicalFontFace; }
class SvStream;
class SvMemoryStream;
@@ -721,8 +721,8 @@ private:
std::vector< TilingEmit > m_aTilings;
std::vector< TransparencyEmit > m_aTransparentObjects;
/* contains all font subsets in use */
- std::map<const PhysicalFontFace*, FontSubset> m_aSubsets;
- std::map<const PhysicalFontFace*, EmbedFont> m_aSystemFonts;
+ std::map<const vcl::font::PhysicalFontFace*, FontSubset> m_aSubsets;
+ std::map<const vcl::font::PhysicalFontFace*, EmbedFont> m_aSystemFonts;
sal_Int32 m_nNextFID;
PDFFontCache m_aFontCache;
@@ -807,7 +807,7 @@ i12626
void appendLiteralStringEncrypt( std::string_view rInString, const sal_Int32 nInObjectNumber, OStringBuffer& rOutBuffer );
/* creates fonts and subsets that will be emitted later */
- void registerGlyph(const GlyphItem* pGlyph, const PhysicalFontFace* pFont, const std::vector<sal_Ucs>& rCodeUnits, sal_uInt8& nMappedGlyph, sal_Int32& nMappedFontObject);
+ void registerGlyph(const GlyphItem* pGlyph, const vcl::font::PhysicalFontFace* pFont, const std::vector<sal_Ucs>& rCodeUnits, sal_uInt8& nMappedGlyph, sal_Int32& nMappedFontObject);
/* emits a text object according to the passed layout */
/* TODO: remove rText as soon as SalLayout will change so that rText is not necessary anymore */
@@ -852,9 +852,9 @@ i12626
/* writes a builtin font object and returns its objectid (or 0 in case of failure ) */
sal_Int32 emitBuildinFont( const pdf::BuildinFontFace*, sal_Int32 nObject );
/* writes a type1 system font object and returns its mapping from font ids to object ids (or 0 in case of failure ) */
- std::map< sal_Int32, sal_Int32 > emitSystemFont( const PhysicalFontFace*, EmbedFont const & );
+ std::map< sal_Int32, sal_Int32 > emitSystemFont(const vcl::font::PhysicalFontFace*, EmbedFont const &);
/* writes a font descriptor and returns its object id (or 0) */
- sal_Int32 emitFontDescriptor( const PhysicalFontFace*, FontSubsetInfo const &, sal_Int32 nSubsetID, sal_Int32 nStream );
+ sal_Int32 emitFontDescriptor(const vcl::font::PhysicalFontFace*, FontSubsetInfo const &, sal_Int32 nSubsetID, sal_Int32 nStream);
/* writes a ToUnicode cmap, returns the corresponding stream object */
sal_Int32 createToUnicodeCMap( sal_uInt8 const * pEncoding, const sal_Ucs* pCodeUnits, const sal_Int32* pCodeUnitsPerGlyph,
const sal_Int32* pEncToUnicodeIndex, int nGlyphs );
diff --git a/vcl/inc/qt5/QtFont.hxx b/vcl/inc/qt5/QtFont.hxx
index f2b250f33d18..237523e2d10a 100644
--- a/vcl/inc/qt5/QtFont.hxx
+++ b/vcl/inc/qt5/QtFont.hxx
@@ -37,7 +37,7 @@ class QtFont final : public QFont, public LogicalFontInstance
virtual hb_font_t* ImplInitHbFont() override;
- explicit QtFont(const PhysicalFontFace&, const vcl::font::FontSelectPattern&);
+ explicit QtFont(const vcl::font::PhysicalFontFace&, const vcl::font::FontSelectPattern&);
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/inc/qt5/QtFontFace.hxx b/vcl/inc/qt5/QtFontFace.hxx
index 6089a18b38c2..5b0460443e90 100644
--- a/vcl/inc/qt5/QtFontFace.hxx
+++ b/vcl/inc/qt5/QtFontFace.hxx
@@ -22,7 +22,7 @@
#include <sal/config.h>
#include <vclpluginapi.h>
-#include <PhysicalFontFace.hxx>
+#include <font/PhysicalFontFace.hxx>
#include <tools/ref.hxx>
#include <vcl/fontcapabilities.hxx>
@@ -37,7 +37,7 @@ namespace vcl::font
class FontSelectPattern;
}
-class QtFontFace final : public PhysicalFontFace
+class QtFontFace final : public vcl::font::PhysicalFontFace
{
public:
static QtFontFace* fromQFont(const QFont& rFont);
diff --git a/vcl/inc/qt5/QtGraphics.hxx b/vcl/inc/qt5/QtGraphics.hxx
index db08f8418844..a285f07bb353 100644
--- a/vcl/inc/qt5/QtGraphics.hxx
+++ b/vcl/inc/qt5/QtGraphics.hxx
@@ -228,16 +228,17 @@ public:
virtual void ClearDevFontCache() override;
virtual bool AddTempDevFont(PhysicalFontCollection*, const OUString& rFileURL,
const OUString& rFontName) override;
- virtual bool CreateFontSubset(const OUString& rToFile, const PhysicalFontFace* pFont,
+ virtual bool CreateFontSubset(const OUString& rToFile, const vcl::font::PhysicalFontFace* pFont,
const sal_GlyphId* pGlyphIds, const sal_uInt8* pEncoding,
sal_Int32* pWidths, int nGlyphs,
FontSubsetInfo& rInfo // out parameter
) override;
- virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen) override;
+ virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*,
+ tools::Long* pDataLen) override;
virtual void FreeEmbedFontData(const void* pData, tools::Long nDataLen) override;
- virtual void GetGlyphWidths(const PhysicalFontFace*, bool bVertical,
+ virtual void GetGlyphWidths(const vcl::font::PhysicalFontFace*, bool bVertical,
std::vector<sal_Int32>& rWidths, Ucs2UIntMap& rUnicodeEnc) override;
virtual std::unique_ptr<GenericSalLayout> GetTextLayout(int nFallbackLevel) override;
diff --git a/vcl/inc/quartz/salgdi.h b/vcl/inc/quartz/salgdi.h
index ffffe7f9a1f5..4210499c52d9 100644
--- a/vcl/inc/quartz/salgdi.h
+++ b/vcl/inc/quartz/salgdi.h
@@ -44,7 +44,7 @@
#include <fontinstance.hxx>
#include <impfontmetricdata.hxx>
-#include <PhysicalFontFace.hxx>
+#include <font/PhysicalFontFace.hxx>
#include <salgdi.hxx>
#include <quartz/salgdicommon.hxx>
@@ -58,7 +58,7 @@ class FontAttributes;
class XorEmulation;
// CoreText-specific physically available font face
-class CoreTextFontFace : public PhysicalFontFace
+class CoreTextFontFace : public vcl::font::PhysicalFontFace
{
public:
CoreTextFontFace( const FontAttributes&, sal_IntPtr nFontID );
@@ -102,7 +102,7 @@ public:
bool mbFauxBold;
private:
- explicit CoreTextStyle(const PhysicalFontFace&, const vcl::font::FontSelectPattern&);
+ explicit CoreTextStyle(const vcl::font::PhysicalFontFace&, const vcl::font::FontSelectPattern&);
hb_font_t* ImplInitHbFont() override;
bool ImplGetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const override;
@@ -552,7 +552,7 @@ public:
// implementation note: encoding 0 with glyph id 0 should be added implicitly
// as "undefined character"
virtual bool CreateFontSubset( const OUString& rToFile,
- const PhysicalFontFace* pFont,
+ const vcl::font::PhysicalFontFace* pFont,
const sal_GlyphId* pGlyphIds,
const sal_uInt8* pEncoding,
sal_Int32* pWidths,
@@ -564,12 +564,12 @@ public:
// embeddable by GetDevFontList or NULL in case of error
// parameters: pFont: describes the font in question
// pDataLen: out parameter, contains the byte length of the returned buffer
- virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen)
+ virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* pDataLen)
override;
// frees the font data again
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) override;
- virtual void GetGlyphWidths( const PhysicalFontFace*,
+ virtual void GetGlyphWidths( const vcl::font::PhysicalFontFace*,
bool bVertical,
std::vector< sal_Int32 >& rWidths,
Ucs2UIntMap& rUnicodeEnc ) override;
@@ -582,7 +582,7 @@ public:
GetGraphicsData() const override;
private:
- static bool GetRawFontData( const PhysicalFontFace* pFontData,
+ static bool GetRawFontData( const vcl::font::PhysicalFontFace* pFontData,
std::vector<unsigned char>& rBuffer,
bool* pJustCFF );
};
diff --git a/vcl/inc/salgdi.hxx b/vcl/inc/salgdi.hxx
index 99b9a55eb855..3abfbd726eb4 100644
--- a/vcl/inc/salgdi.hxx
+++ b/vcl/inc/salgdi.hxx
@@ -38,7 +38,10 @@
class PhysicalFontCollection;
class SalBitmap;
class FontAttributes;
-class PhysicalFontFace;
+namespace vcl::font {
+ class FontSelectPattern;
+ class PhysicalFontFace;
+}
class SalLayout;
namespace tools { class Rectangle; }
class FontSubsetInfo;
@@ -173,7 +176,7 @@ public:
// as "undefined character"
virtual bool CreateFontSubset(
const OUString& rToFile,
- const PhysicalFontFace* pFont,
+ const vcl::font::PhysicalFontFace* pFont,
const sal_GlyphId* pGlyphIDs,
const sal_uInt8* pEncoding,
sal_Int32* pWidths,
@@ -184,7 +187,7 @@ public:
// embeddable by GetDevFontList or NULL in case of error
// parameters: pFont: describes the font in question
// pDataLen: out parameter, contains the byte length of the returned buffer
- virtual const void* GetEmbedFontData(const PhysicalFontFace* pFont, tools::Long* pDataLen) = 0;
+ virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace* pFont, tools::Long* pDataLen) = 0;
// free the font data again
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) = 0;
@@ -194,7 +197,7 @@ public:
// between unicode and glyph id
// leave widths vector and mapping untouched in case of failure
virtual void GetGlyphWidths(
- const PhysicalFontFace* pFont,
+ const vcl::font::PhysicalFontFace* pFont,
bool bVertical,
std::vector< sal_Int32 >& rWidths,
Ucs2UIntMap& rUnicodeEnc ) = 0;
@@ -648,7 +651,7 @@ protected:
vcl::WidgetDrawInterface* forWidget() { return m_pWidgetDraw ? m_pWidgetDraw.get() : this; }
static void GetGlyphWidths(const vcl::AbstractTrueTypeFont& rTTF,
- const PhysicalFontFace& rFontFace, bool bVertical,
+ const vcl::font::PhysicalFontFace& rFontFace, bool bVertical,
std::vector<sal_Int32>& rWidths, Ucs2UIntMap& rUnicodeEnc);
static bool CreateTTFfontSubset(vcl::AbstractTrueTypeFont& aTTF, const OString& rSysPath,
diff --git a/vcl/inc/sallayout.hxx b/vcl/inc/sallayout.hxx
index a3b33b6b3bc1..8dc16d9021c1 100644
--- a/vcl/inc/sallayout.hxx
+++ b/vcl/inc/sallayout.hxx
@@ -45,10 +45,14 @@
#define MAX_FALLBACK 16
-class PhysicalFontFace;
class GenericSalLayout;
class SalGraphics;
enum class SalLayoutFlags;
+
+namespace vcl::font {
+ class PhysicalFontFace;
+}
+
namespace vcl::text {
class TextLayoutCache;
}
@@ -62,7 +66,7 @@ public:
void GetCaretPositions(int nArraySize, tools::Long* pCaretXArray) const override;
bool GetNextGlyph(const GlyphItem** pGlyph, Point& rPos, int& nStart,
const LogicalFontInstance** ppGlyphFont = nullptr,
- const PhysicalFontFace** pFallbackFont = nullptr) const override;
+ const vcl::font::PhysicalFontFace** pFallbackFont = nullptr) const override;
bool GetOutline(basegfx::B2DPolyPolygonVector&) const override;
bool IsKashidaPosValid(int nCharPos) const override;
SalLayoutGlyphs GetGlyphs() const final override;
@@ -119,7 +123,7 @@ public:
bool GetNextGlyph(const GlyphItem** pGlyph, Point& rPos, int& nStart,
const LogicalFontInstance** ppGlyphFont = nullptr,
- const PhysicalFontFace** pFallbackFont = nullptr) const override;
+ const vcl::font::PhysicalFontFace** pFallbackFont = nullptr) const override;
const SalLayoutGlyphsImpl& GlyphsImpl() const { return m_GlyphItems; }
diff --git a/vcl/inc/textrender.hxx b/vcl/inc/textrender.hxx
index aa2057ba62c1..7d9718b790a3 100644
--- a/vcl/inc/textrender.hxx
+++ b/vcl/inc/textrender.hxx
@@ -26,7 +26,7 @@
class ImplFontMetricData;
class PhysicalFontCollection;
-class PhysicalFontFace;
+namespace vcl::font { class PhysicalFontFace; }
class TextRenderImpl
{
@@ -45,17 +45,17 @@ public:
virtual bool AddTempDevFont( PhysicalFontCollection*, const OUString& rFileURL, const OUString& rFontName ) = 0;
virtual bool CreateFontSubset(
const OUString& rToFile,
- const PhysicalFontFace*,
+ const vcl::font::PhysicalFontFace*,
const sal_GlyphId* pGlyphIDs,
const sal_uInt8* pEncoding,
sal_Int32* pWidths,
int nGlyphs,
FontSubsetInfo& rInfo) = 0;
- virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen) = 0;
+ virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* pDataLen) = 0;
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) = 0;
virtual void GetGlyphWidths(
- const PhysicalFontFace*,
+ const vcl::font::PhysicalFontFace*,
bool bVertical,
std::vector< sal_Int32 >& rWidths,
Ucs2UIntMap& rUnicodeEnc ) = 0;
diff --git a/vcl/inc/unx/cairotextrender.hxx b/vcl/inc/unx/cairotextrender.hxx
index 3879bf5d975d..c046b00c9e49 100644
--- a/vcl/inc/unx/cairotextrender.hxx
+++ b/vcl/inc/unx/cairotextrender.hxx
@@ -22,6 +22,8 @@
#include <unx/freetypetextrender.hxx>
+class GenericSalLayout;
+class SalGraphics;
typedef struct _cairo cairo_t;
class VCL_DLLPUBLIC CairoTextRender : public FreeTypeTextRenderImpl
diff --git a/vcl/inc/unx/freetype_glyphcache.hxx b/vcl/inc/unx/freetype_glyphcache.hxx
index 285a1ddd4a2f..d7b71514cd69 100644
--- a/vcl/inc/unx/freetype_glyphcache.hxx
+++ b/vcl/inc/unx/freetype_glyphcache.hxx
@@ -22,7 +22,7 @@
#include <sal/config.h>
#include <unx/glyphcache.hxx>
-#include <PhysicalFontFace.hxx>
+#include <font/PhysicalFontFace.hxx>
#include <fontinstance.hxx>
#include <vcl/glyphitem.hxx>
@@ -92,7 +92,7 @@ private:
mutable FontCharMapRef mxFontCharMap;
};
-class FreetypeFontFace : public PhysicalFontFace
+class FreetypeFontFace : public vcl::font::PhysicalFontFace
{
private:
FreetypeFontInfo* mpFreetypeFontInfo;
@@ -100,7 +100,7 @@ private:
public:
FreetypeFontFace( FreetypeFontInfo*, const FontAttributes& );
- virtual rtl::Reference<LogicalFontInstance> CreateFontInstance( const vcl::font::FontSelectPattern& ) const override;
+ virtual rtl::Reference<LogicalFontInstance> CreateFontInstance(const vcl::font::FontSelectPattern&) const override;
virtual sal_IntPtr GetFontId() const override { return mpFreetypeFontInfo->GetFontId(); }
FontCharMapRef GetFontCharMap() const override { return mpFreetypeFontInfo->GetFontCharMap(); }
@@ -121,7 +121,7 @@ class SAL_DLLPUBLIC_RTTI FreetypeFontInstance final : public LogicalFontInstance
virtual hb_font_t* ImplInitHbFont() override;
virtual bool ImplGetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const override;
- explicit FreetypeFontInstance(const PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP);
+ explicit FreetypeFontInstance(const vcl::font::PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP);
public:
virtual ~FreetypeFontInstance() override;
diff --git a/vcl/inc/unx/freetypetextrender.hxx b/vcl/inc/unx/freetypetextrender.hxx
index 7866f966a196..6b17a15db06f 100644
--- a/vcl/inc/unx/freetypetextrender.hxx
+++ b/vcl/inc/unx/freetypetextrender.hxx
@@ -49,17 +49,17 @@ public:
virtual bool AddTempDevFont( PhysicalFontCollection*, const OUString& rFileURL, const OUString& rFontName ) override;
virtual bool CreateFontSubset(
const OUString& rToFile,
- const PhysicalFontFace*,
+ const vcl::font::PhysicalFontFace*,
const sal_GlyphId* pGlyphIDs,
const sal_uInt8* pEncoding,
sal_Int32* pWidths,
int nGlyphs,
FontSubsetInfo& rInfo) override;
- virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen) override;
+ virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* pDataLen) override;
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) override;
virtual void GetGlyphWidths(
- const PhysicalFontFace*,
+ const vcl::font::PhysicalFontFace*,
bool bVertical,
std::vector< sal_Int32 >& rWidths,
Ucs2UIntMap& rUnicodeEnc ) override;
diff --git a/vcl/inc/unx/genpspgraphics.h b/vcl/inc/unx/genpspgraphics.h
index cc8c346b862c..977083b948c2 100644
--- a/vcl/inc/unx/genpspgraphics.h
+++ b/vcl/inc/unx/genpspgraphics.h
@@ -30,7 +30,7 @@
#include <unx/GenPspGfxBackend.hxx>
-class PhysicalFontFace;
+namespace vcl::font { class PhysicalFontFace; }
class PhysicalFontCollection;
namespace psp { struct JobData; class PrinterGfx; }
@@ -93,15 +93,15 @@ public:
const OUString& rFontName);
virtual bool CreateFontSubset( const OUString& rToFile,
- const PhysicalFontFace*,
+ const vcl::font::PhysicalFontFace*,
const sal_GlyphId* pGlyphIDs,
const sal_uInt8* pEncoding,
sal_Int32* pWidths,
int nGlyphs,
FontSubsetInfo& rInfo ) override;
- virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen) override;
+ virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* pDataLen) override;
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) override;
- virtual void GetGlyphWidths( const PhysicalFontFace*,
+ virtual void GetGlyphWidths( const vcl::font::PhysicalFontFace*,
bool bVertical,
std::vector< sal_Int32 >& rWidths,
Ucs2UIntMap& rUnicodeEnc ) override;
diff --git a/vcl/inc/unx/salgdi.h b/vcl/inc/unx/salgdi.h
index af6642010546..bc5653e05c41 100644
--- a/vcl/inc/unx/salgdi.h
+++ b/vcl/inc/unx/salgdi.h
@@ -51,7 +51,7 @@ class X11SalVirtualDevice;
class X11SalGraphicsImpl;
class X11SkiaSalVirtualDevice;
class PhysicalFontCollection;
-class PhysicalFontFace;
+namespace vcl::font { class PhysicalFontFace; }
class SalGraphicsImpl;
class TextRenderImpl;
@@ -122,18 +122,18 @@ public:
virtual bool CreateFontSubset(
const OUString& rToFile,
- const PhysicalFontFace*,
+ const vcl::font::PhysicalFontFace*,
const sal_GlyphId* pGlyphIDs,
const sal_uInt8* pEncoding,
sal_Int32* pWidths,
int nGlyphs,
FontSubsetInfo& rInfo ) override;
- virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen) override;
+ virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* pDataLen) override;
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) override;
virtual void GetGlyphWidths(
- const PhysicalFontFace*,
+ const vcl::font::PhysicalFontFace*,
bool bVertical,
std::vector< sal_Int32 >& rWidths,
Ucs2UIntMap& rUnicodeEnc ) override;
diff --git a/vcl/inc/win/salgdi.h b/vcl/inc/win/salgdi.h
index 4ea2546b9ae3..f02eadf60c14 100644
--- a/vcl/inc/win/salgdi.h
+++ b/vcl/inc/win/salgdi.h
@@ -26,7 +26,7 @@
#include <salgdi.hxx>
#include <fontinstance.hxx>
#include <fontattributes.hxx>
-#include <PhysicalFontFace.hxx>
+#include <font/PhysicalFontFace.hxx>
#include <impfont.hxx>
#include <vcl/fontcapabilities.hxx>
#include <vcl/fontcharmap.hxx>
@@ -58,7 +58,7 @@ class ImplFontMetricData;
#define PALRGB_TO_RGB(nPalRGB) ((nPalRGB)&0x00ffffff)
// win32 specific physically available font face
-class WinFontFace : public PhysicalFontFace
+class WinFontFace : public vcl::font::PhysicalFontFace
{
public:
explicit WinFontFace( const FontAttributes&,
@@ -174,7 +174,7 @@ private:
void DeInitGraphics();
public:
- HFONT ImplDoSetFont(vcl::font::FontSelectPattern const & i_rFont, const PhysicalFontFace * i_pFontFace, HFONT& o_rOldFont);
+ HFONT ImplDoSetFont(vcl::font::FontSelectPattern const & i_rFont, const vcl::font::PhysicalFontFace * i_pFontFace, HFONT& o_rOldFont);
HDC getHDC() const { return mhLocalDC; }
void setHDC(HDC aNew);
@@ -364,7 +364,7 @@ public:
// implementation note: encoding 0 with glyph id 0 should be added implicitly
// as "undefined character"
virtual bool CreateFontSubset( const OUString& rToFile,
- const PhysicalFontFace*,
+ const vcl::font::PhysicalFontFace*,
const sal_GlyphId* pGlyphIDs,
const sal_uInt8* pEncoding,
sal_Int32* pWidths,
@@ -376,10 +376,10 @@ public:
// embeddable by GetDevFontList or NULL in case of error
// parameters: pFont: describes the font in question
// pDataLen: out parameter, contains the byte length of the returned buffer
- virtual const void* GetEmbedFontData(const PhysicalFontFace*, tools::Long* pDataLen) override;
+ virtual const void* GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* pDataLen) override;
// frees the font data again
virtual void FreeEmbedFontData( const void* pData, tools::Long nDataLen ) override;
- virtual void GetGlyphWidths( const PhysicalFontFace*,
+ virtual void GetGlyphWidths( const vcl::font::PhysicalFontFace*,
bool bVertical,
std::vector< sal_Int32 >& rWidths,
Ucs2UIntMap& rUnicodeEnc ) override;
@@ -400,7 +400,7 @@ public:
void ImplUpdateSysColorEntries();
int ImplIsSysColorEntry( Color nColor );
void ImplGetLogFontFromFontSelect( const vcl::font::FontSelectPattern&,
- const PhysicalFontFace*, LOGFONTW& );
+ const vcl::font::PhysicalFontFace*, LOGFONTW& );
#define MAX_64KSALPOINTS ((((sal_uInt16)0xFFFF)-8)/sizeof(POINTS))
diff --git a/vcl/qa/cppunit/fontmocks.hxx b/vcl/qa/cppunit/fontmocks.hxx
index 8f3ad6eba5f1..7367acab69ee 100644
--- a/vcl/qa/cppunit/fontmocks.hxx
+++ b/vcl/qa/cppunit/fontmocks.hxx
@@ -7,18 +7,20 @@
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
+#pragma once
+
#include <sal/config.h>
-#include <PhysicalFontFace.hxx>
+#include <font/FontSelectPattern.hxx>
+#include <font/PhysicalFontFace.hxx>
#include <font/PhysicalFontFaceCollection.hxx>
#include <fontattributes.hxx>
#include <fontinstance.hxx>
-#include <font/FontSelectPattern.hxx>
class TestFontInstance : public LogicalFontInstance
{
public:
- TestFontInstance(PhysicalFontFace const& rFontFace,
+ TestFontInstance(vcl::font::PhysicalFontFace const& rFontFace,
vcl::font::FontSelectPattern const& rFontSelectPattern)
: LogicalFontInstance(rFontFace, rFontSelectPattern)
{
@@ -33,17 +35,17 @@ protected:
bool ImplGetGlyphBoundRect(sal_GlyphId, tools::Rectangle&, bool) const override { return true; }
};
-class TestFontFace : public PhysicalFontFace
+class TestFontFace : public vcl::font::PhysicalFontFace
{
public:
TestFontFace(sal_uIntPtr nId)
- : PhysicalFontFace(FontAttributes())
+ : vcl::font::PhysicalFontFace(FontAttributes())
, mnFontId(nId)
{
}
TestFontFace(FontAttributes const& rFontAttributes, sal_uIntPtr nId)
- : PhysicalFontFace(rFontAttributes)
+ : vcl::font::PhysicalFontFace(rFontAttributes)
, mnFontId(nId)
{
}
diff --git a/vcl/qa/cppunit/physicalfontface.cxx b/vcl/qa/cppunit/physicalfontface.cxx
new file mode 100644
index 000000000000..30fe616c1cd0
--- /dev/null
+++ b/vcl/qa/cppunit/physicalfontface.cxx
@@ -0,0 +1,301 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <sal/config.h>
+
+#include <test/bootstrapfixture.hxx>
+#include <cppunit/TestAssert.h>
+
+#include <tools/degree.hxx>
+
+#include <vcl/font.hxx>
+
+#include <font/PhysicalFontFace.hxx>
+#include <fontattributes.hxx>
+
+#include "fontmocks.hxx"
+
+#include <memory>
+
+const sal_IntPtr FONTID = 1;
+
+class VclPhysicalFontFaceTest : public test::BootstrapFixture
+{
+public:
+ VclPhysicalFontFaceTest()
+ : BootstrapFixture(true, false)
+ {
+ }
+
+ void testShouldCompareAsLesserFontFaceWithShorterWidth();
+ void testShouldCompareAsGreaterFontFaceWithLongerWidth();
+ void testShouldCompareAsLesserFontFaceWithLighterWeight();
+ void testShouldCompareAsGreaterFontFaceWithHeavierWeight();
+ void testShouldCompareAsLesserFontFaceWithLesserItalics();
+ void testShouldCompareAsGreaterFontFaceWithGreaterItalics();
+ void testShouldCompareAsGreaterFontFaceWitHigherAlphabeticalFamilyName();
+ void testShouldCompareAsGreaterFontFaceWitLesserAlphabeticalFamilyName();
+ void testShouldCompareAsGreaterFontFaceWithHigherAlphabeticalStyleName();
+ void testShouldCompareAsGreaterFontFaceWithLesserAlphabeticalStyleName();
+ void testShouldCompareAsSameFontFace();
+ void testMatchStatusValue();
+
+ CPPUNIT_TEST_SUITE(VclPhysicalFontFaceTest);
+ CPPUNIT_TEST(testShouldCompareAsLesserFontFaceWithShorterWidth);
+ CPPUNIT_TEST(testShouldCompareAsGreaterFontFaceWithLongerWidth);
+ CPPUNIT_TEST(testShouldCompareAsLesserFontFaceWithLighterWeight);
+ CPPUNIT_TEST(testShouldCompareAsGreaterFontFaceWithHeavierWeight);
+ CPPUNIT_TEST(testShouldCompareAsLesserFontFaceWithLesserItalics);
+ CPPUNIT_TEST(testShouldCompareAsGreaterFontFaceWithGreaterItalics);
+ CPPUNIT_TEST(testShouldCompareAsGreaterFontFaceWitHigherAlphabeticalFamilyName);
+ CPPUNIT_TEST(testShouldCompareAsGreaterFontFaceWitLesserAlphabeticalFamilyName);
+ CPPUNIT_TEST(testShouldCompareAsGreaterFontFaceWithHigherAlphabeticalStyleName);
+ CPPUNIT_TEST(testShouldCompareAsGreaterFontFaceWithLesserAlphabeticalStyleName);
+ CPPUNIT_TEST(testShouldCompareAsSameFontFace);
+ CPPUNIT_TEST(testMatchStatusValue);
+
+ CPPUNIT_TEST_SUITE_END();
+};
+
+void VclPhysicalFontFaceTest::testShouldCompareAsLesserFontFaceWithShorterWidth()
+{
+ FontAttributes aFontAttrsShorterWidth;
+ aFontAttrsShorterWidth.SetWidthType(WIDTH_CONDENSED);
+ rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrsShorterWidth, FONTID));
+
+ FontAttributes aFontAttrsLongerWidth;
+ aFontAttrsLongerWidth.SetWidthType(WIDTH_NORMAL);
+ rtl::Reference<TestFontFace> aComparedToFontFace(
+ new TestFontFace(aFontAttrsLongerWidth, FONTID));
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-1),
+ aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
+}
+
+void VclPhysicalFontFaceTest::testShouldCompareAsGreaterFontFaceWithLongerWidth()
+{
+ FontAttributes aFontAttrsLongerWidth;
+ aFontAttrsLongerWidth.SetWidthType(WIDTH_NORMAL);
+ rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrsLongerWidth, FONTID));
+
+ FontAttributes aFontAttrsShorterWidth;
+ aFontAttrsShorterWidth.SetWidthType(WIDTH_CONDENSED);
+ rtl::Reference<TestFontFace> aComparedToFontFace(
+ new TestFontFace(aFontAttrsShorterWidth, FONTID));
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1),
+ aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
+}
+
+void VclPhysicalFontFaceTest::testShouldCompareAsLesserFontFaceWithLighterWeight()
+{
+ FontAttributes aFontAttrsLighterWeight;
+ aFontAttrsLighterWeight.SetWidthType(WIDTH_NORMAL);
+ aFontAttrsLighterWeight.SetWeight(WEIGHT_THIN);
+ rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrsLighterWeight, FONTID));
+
+ FontAttributes aFontAttrsHeavierWeight;
+ aFontAttrsHeavierWeight.SetWeight(WEIGHT_BOLD);
+ aFontAttrsHeavierWeight.SetWidthType(WIDTH_NORMAL);
+ rtl::Reference<TestFontFace> aComparedToFontFace(
+ new TestFontFace(aFontAttrsHeavierWeight, FONTID));
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-1),
+ aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
+}
+
+void VclPhysicalFontFaceTest::testShouldCompareAsGreaterFontFaceWithHeavierWeight()
+{
+ FontAttributes aFontAttrsHeavierWeight;
+ aFontAttrsHeavierWeight.SetWidthType(WIDTH_NORMAL);
+ aFontAttrsHeavierWeight.SetWeight(WEIGHT_BOLD);
+ rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrsHeavierWeight, FONTID));
+
+ FontAttributes aFontAttrsLighterWeight;
+ aFontAttrsLighterWeight.SetWidthType(WIDTH_NORMAL);
+ aFontAttrsLighterWeight.SetWeight(WEIGHT_THIN);
+ rtl::Reference<TestFontFace> aComparedToFontFace(
+ new TestFontFace(aFontAttrsLighterWeight, FONTID));
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1),
+ aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
+}
+
+void VclPhysicalFontFaceTest::testShouldCompareAsLesserFontFaceWithLesserItalics()
+{
+ FontAttributes aFontAttrsLesserItalics;
+ aFontAttrsLesserItalics.SetWidthType(WIDTH_NORMAL);
+ aFontAttrsLesserItalics.SetWeight(WEIGHT_THIN);
+ rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrsLesserItalics, FONTID));
+
+ FontAttributes aFontAttrsGreaterItalics;
+ aFontAttrsGreaterItalics.SetWeight(WEIGHT_BOLD);
+ aFontAttrsGreaterItalics.SetWidthType(WIDTH_NORMAL);
+ rtl::Reference<TestFontFace> aComparedToFontFace(
+ new TestFontFace(aFontAttrsGreaterItalics, FONTID));
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-1),
+ aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
+}
+
+void VclPhysicalFontFaceTest::testShouldCompareAsGreaterFontFaceWithGreaterItalics()
+{
+ FontAttributes aFontAttrsGreaterItalics;
+ aFontAttrsGreaterItalics.SetWidthType(WIDTH_NORMAL);
+ aFontAttrsGreaterItalics.SetWeight(WEIGHT_BOLD);
+ rtl::Reference<TestFontFace> aTestedFontFace(
+ new TestFontFace(aFontAttrsGreaterItalics, FONTID));
+
+ FontAttributes aFontAttrsLesserItalics;
+ aFontAttrsLesserItalics.SetWidthType(WIDTH_NORMAL);
+ aFontAttrsLesserItalics.SetWeight(WEIGHT_THIN);
+ rtl::Reference<TestFontFace> aComparedToFontFace(
+ new TestFontFace(aFontAttrsLesserItalics, FONTID));
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1),
+ aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
+}
+
+void VclPhysicalFontFaceTest::testShouldCompareAsGreaterFontFaceWitHigherAlphabeticalFamilyName()
+{
+ FontAttributes aFontAttrs1;
+ aFontAttrs1.SetWidthType(WIDTH_NORMAL);
+ aFontAttrs1.SetWeight(WEIGHT_NORMAL);
+ aFontAttrs1.SetFamilyName("B family");
+ rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrs1, FONTID));
+
+ FontAttributes aFontAttrs2;
+ aFontAttrs2.SetWidthType(WIDTH_NORMAL);
+ aFontAttrs2.SetWeight(WEIGHT_NORMAL);
+ aFontAttrs2.SetFamilyName("A Family");
+ rtl::Reference<TestFontFace> aComparedToFontFace(new TestFontFace(aFontAttrs2, FONTID));
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1),
+ aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
+}
+
+void VclPhysicalFontFaceTest::testShouldCompareAsGreaterFontFaceWitLesserAlphabeticalFamilyName()
+{
+ FontAttributes aFontAttrs1;
+ aFontAttrs1.SetWidthType(WIDTH_NORMAL);
+ aFontAttrs1.SetWeight(WEIGHT_NORMAL);
+ aFontAttrs1.SetFamilyName("A family");
+ rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrs1, FONTID));
+
+ FontAttributes aFontAttrs2;
+ aFontAttrs2.SetWidthType(WIDTH_NORMAL);
+ aFontAttrs2.SetWeight(WEIGHT_NORMAL);
+ aFontAttrs2.SetFamilyName("B Family");
+ rtl::Reference<TestFontFace> aComparedToFontFace(new TestFontFace(aFontAttrs2, FONTID));
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-1),
+ aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
+}
+
+void VclPhysicalFontFaceTest::testShouldCompareAsGreaterFontFaceWithHigherAlphabeticalStyleName()
+{
+ FontAttributes aFontAttrs1;
+ aFontAttrs1.SetWidthType(WIDTH_NORMAL);
+ aFontAttrs1.SetWeight(WEIGHT_NORMAL);
+ aFontAttrs1.SetFamilyName("DejaVu Sans");
+ aFontAttrs1.SetStyleName("B Style");
+ rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrs1, FONTID));
+
+ FontAttributes aFontAttrs2;
+ aFontAttrs2.SetWidthType(WIDTH_NORMAL);
+ aFontAttrs2.SetWeight(WEIGHT_NORMAL);
+ aFontAttrs2.SetFamilyName("DejaVu Sans");
+ aFontAttrs2.SetStyleName("A Style");
+ rtl::Reference<TestFontFace> aComparedToFontFace(new TestFontFace(aFontAttrs2, FONTID));
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(1),
+ aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
+}
+
+void VclPhysicalFontFaceTest::testShouldCompareAsGreaterFontFaceWithLesserAlphabeticalStyleName()
+{
+ FontAttributes aFontAttrs1;
+ aFontAttrs1.SetWidthType(WIDTH_NORMAL);
+ aFontAttrs1.SetWeight(WEIGHT_NORMAL);
+ aFontAttrs1.SetFamilyName("DejaVu Sans");
+ aFontAttrs1.SetStyleName("A Style");
+ rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrs1, FONTID));
+
+ FontAttributes aFontAttrs2;
+ aFontAttrs2.SetWidthType(WIDTH_NORMAL);
+ aFontAttrs2.SetWeight(WEIGHT_NORMAL);
+ aFontAttrs2.SetFamilyName("DejaVu Sans");
+ aFontAttrs2.SetStyleName("B Style");
+ rtl::Reference<TestFontFace> aComparedToFontFace(new TestFontFace(aFontAttrs2, FONTID));
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(-1),
+ aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
+}
+
+void VclPhysicalFontFaceTest::testShouldCompareAsSameFontFace()
+{
+ FontAttributes aFontAttrs1;
+ aFontAttrs1.SetWidthType(WIDTH_NORMAL);
+ aFontAttrs1.SetWeight(WEIGHT_NORMAL);
+ aFontAttrs1.SetFamilyName("DejaVu Sans");
+ aFontAttrs1.SetStyleName("Style");
+ rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrs1, FONTID));
+
+ FontAttributes aFontAttrs2;
+ aFontAttrs2.SetWidthType(WIDTH_NORMAL);
+ aFontAttrs2.SetWeight(WEIGHT_NORMAL);
+ aFontAttrs2.SetFamilyName("DejaVu Sans");
+ aFontAttrs2.SetStyleName("Style");
+ rtl::Reference<TestFontFace> aComparedToFontFace(new TestFontFace(aFontAttrs2, FONTID));
+
+ CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(0),
+ aTestedFontFace->CompareIgnoreSize(*aComparedToFontFace));
+}
+
+void VclPhysicalFontFaceTest::testMatchStatusValue()
+{
+ FontAttributes aFontAttrs;
+ aFontAttrs.SetFamilyName("DejaVu Sans");
+ aFontAttrs.SetStyleName("Book");
+ aFontAttrs.SetPitch(FontPitch::PITCH_VARIABLE);
+ aFontAttrs.SetWidthType(WIDTH_NORMAL);
+ aFontAttrs.SetWeight(WEIGHT_BOLD);
+ rtl::Reference<TestFontFace> aTestedFontFace(new TestFontFace(aFontAttrs, FONTID));
+
+ std::unique_ptr<OUString> pTargetStyleName(new OUString("Book"));
+ vcl::font::FontMatchStatus aFontMatchStatus = { 0, 0, 0, pTargetStyleName.get() };
+
+ vcl::Font aTestFont("DejaVu Sans", "Book", Size(0, 36));
+
+ vcl::font::FontSelectPattern aFSP(aTestFont, "DejaVu Sans", Size(0, 36), 36, true);
+ aFSP.mbEmbolden = false;
+ aFSP.mnOrientation = Degree10(10);
+ aFSP.SetWeight(WEIGHT_BOLD);
+ aFSP.SetPitch(FontPitch::PITCH_VARIABLE);
+ aFSP.maTargetName = "DejaVu Sans";
+
+ const int EXPECTED_FAMILY = 240'000;
+ const int EXPECTED_STYLE = 120'000;
+ const int EXPECTED_PITCH = 20'000;
+ const int EXPECTED_WIDTHTYPE = 400;
+ const int EXPECTED_WEIGHT = 1'000;
+ const int EXPECTED_ITALIC = 900;
+ const int EXPECTED_ORIENTATION = 80;
+
+ const int EXPECTED_MATCH = EXPECTED_FAMILY + EXPECTED_STYLE + EXPECTED_PITCH
+ + EXPECTED_WIDTHTYPE + EXPECTED_WEIGHT + EXPECTED_ITALIC
+ + EXPECTED_ORIENTATION;
+
+ CPPUNIT_ASSERT(aTestedFontFace->IsBetterMatch(aFSP, aFontMatchStatus));
+ CPPUNIT_ASSERT_EQUAL(EXPECTED_MATCH, aFontMatchStatus.mnFaceMatch);
+}
+
+CPPUNIT_TEST_SUITE_REGISTRATION(VclPhysicalFontFaceTest);
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/vcl/qa/cppunit/physicalfontfacecollection.cxx b/vcl/qa/cppunit/physicalfontfacecollection.cxx
index 56f44d2b39b9..3a8cedde76d5 100644
--- a/vcl/qa/cppunit/physicalfontfacecollection.cxx
+++ b/vcl/qa/cppunit/physicalfontfacecollection.cxx
@@ -42,8 +42,8 @@ void VclPhysicalFontFaceCollectionTest::testShouldGetFontId()
vcl::font::PhysicalFontFaceCollection aCollection;
aCollection.Add(new TestFontFace(1988756));
- rtl::Reference<PhysicalFontFace> pActual(new TestFontFace(1988756));
- rtl::Reference<PhysicalFontFace> pExpected = aCollection.Get(0);
+ rtl::Reference<vcl::font::PhysicalFontFace> pActual(new TestFontFace(1988756));
+ rtl::Reference<vcl::font::PhysicalFontFace> pExpected = aCollection.Get(0);
CPPUNIT_ASSERT_EQUAL(pExpected->GetFontId(), pActual->GetFontId());
CPPUNIT_ASSERT_EQUAL(1, aCollection.Count());
diff --git a/vcl/qt5/QtFont.cxx b/vcl/qt5/QtFont.cxx
index 8079576f156f..a9d84e897c1b 100644
--- a/vcl/qt5/QtFont.cxx
+++ b/vcl/qt5/QtFont.cxx
@@ -120,7 +120,7 @@ static inline void applyStyle(QtFont& rFont, FontItalic eItalic)
}
}
-QtFont::QtFont(const PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP)
+QtFont::QtFont(const vcl::font::PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP)
: LogicalFontInstance(rPFF, rFSP)
{
setFamily(toQString(rPFF.GetFamilyName()));
diff --git a/vcl/qt5/QtFontFace.cxx b/vcl/qt5/QtFontFace.cxx
index 0eb51bf850b6..ffe88f242835 100644
--- a/vcl/qt5/QtFontFace.cxx
+++ b/vcl/qt5/QtFontFace.cxx
@@ -39,7 +39,7 @@
using namespace vcl;
QtFontFace::QtFontFace(const QtFontFace& rSrc)
- : PhysicalFontFace(rSrc)
+ : vcl::font::PhysicalFontFace(rSrc)
, m_aFontId(rSrc.m_aFontId)
, m_eFontIdType(rSrc.m_eFontIdType)
{
diff --git a/vcl/qt5/QtGraphics_Text.cxx b/vcl/qt5/QtGraphics_Text.cxx
index 3f1e196d6d7a..457338888323 100644
--- a/vcl/qt5/QtGraphics_Text.cxx
+++ b/vcl/qt5/QtGraphics_Text.cxx
@@ -216,7 +216,8 @@ const sal_uInt8* QtTrueTypeFont::table(sal_uInt32 ord, sal_uInt32& size) const
}
}
-bool QtGraphics::CreateFontSubset(const OUString& rToFile, const PhysicalFontFace* pFontFace,
+bool QtGraphics::CreateFontSubset(const OUString& rToFile,
+ const vcl::font::PhysicalFontFace* pFontFace,
const sal_GlyphId* pGlyphIds, const sal_uInt8* pEncoding,
sal_Int32* pGlyphWidths, int nGlyphCount, FontSubsetInfo& rInfo)
{
@@ -254,14 +255,15 @@ bool QtGraphics::CreateFontSubset(const OUString& rToFile, const PhysicalFontFac
pGlyphIds, pEncoding, pGlyphWidths, nGlyphCount);
}
-const void* QtGraphics::GetEmbedFontData(const PhysicalFontFace*, tools::Long* /*pDataLen*/)
+const void* QtGraphics::GetEmbedFontData(const vcl::font::PhysicalFontFace*,
+ tools::Long* /*pDataLen*/)
{
return nullptr;
}
void QtGraphics::FreeEmbedFontData(const void* /*pData*/, tools::Long /*nDataLen*/) {}
-void QtGraphics::GetGlyphWidths(const PhysicalFontFace* pFontFace, bool bVertical,
+void QtGraphics::GetGlyphWidths(const vcl::font::PhysicalFontFace* pFontFace, bool bVertical,
std::vector<sal_Int32>& rWidths, Ucs2UIntMap& rUnicodeEnc)
{
const QtFontFace* pQtFontFace = static_cast<const QtFontFace*>(pFontFace);
diff --git a/vcl/quartz/ctfonts.cxx b/vcl/quartz/ctfonts.cxx
index 5a9a8f27e0d6..5e958f73c35a 100644
--- a/vcl/quartz/ctfonts.cxx
+++ b/vcl/quartz/ctfonts.cxx
@@ -46,7 +46,7 @@ static double toRadian(int nDegree)
return nDegree * (M_PI / 1800.0);
}
-CoreTextStyle::CoreTextStyle(const PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP)
+CoreTextStyle::CoreTextStyle(const vcl::font::PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP)
: LogicalFontInstance(rPFF, rFSP)
, mfFontStretch( 1.0 )
, mfFontRotation( 0.0 )
diff --git a/vcl/quartz/salgdi.cxx b/vcl/quartz/salgdi.cxx
index 3cfa39cc98fc..ab67e851612a 100644
--- a/vcl/quartz/salgdi.cxx
+++ b/vcl/quartz/salgdi.cxx
@@ -109,7 +109,7 @@ bool CoreTextGlyphFallbackSubstititution::FindFontSubstitute(vcl::font::FontSele
}
CoreTextFontFace::CoreTextFontFace( const FontAttributes& rDFA, sal_IntPtr nFontId )
- : PhysicalFontFace( rDFA )
+ : vcl::font::PhysicalFontFace( rDFA )
, mnFontId( nFontId )
, mbFontCapabilitiesRead( false )
{
@@ -556,7 +556,7 @@ static void FakeDirEntry( const char aTag[5], ByteCount nOfs, ByteCount nLen,
// fake a TTF or CFF font as directly accessing font file is not possible
// when only the fontid is known. This approach also handles *.font fonts.
-bool AquaSalGraphics::GetRawFontData( const PhysicalFontFace* pFontData,
+bool AquaSalGraphics::GetRawFontData( const vcl::font::PhysicalFontFace* pFontData,
std::vector<unsigned char>& rBuffer, bool* pJustCFF )
{
const CoreTextFontFace* pMacFont = static_cast<const CoreTextFontFace*>(pFontData);
@@ -742,7 +742,7 @@ bool AquaSalGraphics::GetRawFontData( const PhysicalFontFace* pFontData,
return true;
}
-void AquaSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFontData, bool bVertical,
+void AquaSalGraphics::GetGlyphWidths( const vcl::font::PhysicalFontFace* pFontData, bool bVertical,
std::vector< sal_Int32 >& rGlyphWidths, Ucs2UIntMap& rUnicodeEnc )
{
rGlyphWidths.clear();
@@ -768,7 +768,7 @@ void AquaSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFontData, bool bV
::CloseTTFont( pSftFont );
}
-const void* AquaSalGraphics::GetEmbedFontData(const PhysicalFontFace*, tools::Long* /*pDataLen*/)
+const void* AquaSalGraphics::GetEmbedFontData(const vcl::font::PhysicalFontFace*, tools::Long* /*pDataLen*/)
{
return nullptr;
}
diff --git a/vcl/quartz/salgdicommon.cxx b/vcl/quartz/salgdicommon.cxx
index 4061aefb4a40..b4b24d4e5f4d 100644
--- a/vcl/quartz/salgdicommon.cxx
+++ b/vcl/quartz/salgdicommon.cxx
@@ -47,7 +47,7 @@
using namespace vcl;
bool AquaSalGraphics::CreateFontSubset( const OUString& rToFile,
- const PhysicalFontFace* pFontData,
+ const vcl::font::PhysicalFontFace* pFontData,
const sal_GlyphId* pGlyphIds, const sal_uInt8* pEncoding,
sal_Int32* pGlyphWidths, const int nGlyphCount,
FontSubsetInfo& rInfo )
diff --git a/vcl/source/font/fontselect.cxx b/vcl/source/font/FontSelectPattern.cxx
index 3ea89bde90e1..23e7673c8da2 100644
--- a/vcl/source/font/fontselect.cxx
+++ b/vcl/source/font/FontSelectPattern.cxx
@@ -20,10 +20,11 @@
#include <sal/config.h>
#include <o3tl/safeint.hxx>
#include <tools/gen.hxx>
+
#include <vcl/font.hxx>
-#include <PhysicalFontFace.hxx>
#include <font/FontSelectPattern.hxx>
+#include <font/PhysicalFontFace.hxx>
namespace vcl::font
{
diff --git a/vcl/source/font/PhysicalFontCollection.cxx b/vcl/source/font/PhysicalFontCollection.cxx
index c97beb478c79..42dc11d303e2 100644
--- a/vcl/source/font/PhysicalFontCollection.cxx
+++ b/vcl/source/font/PhysicalFontCollection.cxx
@@ -276,7 +276,7 @@ vcl::font::PhysicalFontFamily* PhysicalFontCollection::GetGlyphFallbackFont( vcl
return pFallbackData;
}
-void PhysicalFontCollection::Add( PhysicalFontFace* pNewData )
+void PhysicalFontCollection::Add( vcl::font::PhysicalFontFace* pNewData )
{
OUString aSearchName = GetEnglishSearchFontName( pNewData->GetFamilyName() );
diff --git a/vcl/source/font/PhysicalFontFace.cxx b/vcl/source/font/PhysicalFontFace.cxx
index 7d278df9871d..6acfe3da1575 100644
--- a/vcl/source/font/PhysicalFontFace.cxx
+++ b/vcl/source/font/PhysicalFontFace.cxx
@@ -24,9 +24,12 @@
#include <unotools/fontdefs.hxx>
#include <fontattributes.hxx>
+
#include <font/FontSelectPattern.hxx>
+#include <font/PhysicalFontFace.hxx>
-#include <PhysicalFontFace.hxx>
+namespace vcl::font
+{
PhysicalFontFace::PhysicalFontFace( const FontAttributes& rDFA )
: FontAttributes( rDFA )
@@ -176,5 +179,6 @@ bool PhysicalFontFace::IsBetterMatch( const vcl::font::FontSelectPattern& rFSD,
rStatus.mnWidthMatch = nWidthMatch;
return true;
}
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/vcl/source/font/fontcache.cxx b/vcl/source/font/fontcache.cxx
index 5e94441466b0..c125d49f0d1b 100644
--- a/vcl/source/font/fontcache.cxx
+++ b/vcl/source/font/fontcache.cxx
@@ -18,10 +18,11 @@
*/
#include <sal/config.h>
+
#include <sal/log.hxx>
#include <PhysicalFontCollection.hxx>
-#include <PhysicalFontFace.hxx>
+#include <font/PhysicalFontFace.hxx>
#include <font/PhysicalFontFamily.hxx>
#include <fontinstance.hxx>
#include <impfontcache.hxx>
@@ -143,7 +144,7 @@ rtl::Reference<LogicalFontInstance> ImplFontCache::GetFontInstance( PhysicalFont
if( !pFontInstance && pFontFamily) // still no cache hit => create a new font instance
{
- PhysicalFontFace* pFontData = pFontFamily->FindBestFontFace(aFontSelData);
+ vcl::font::PhysicalFontFace* pFontData = pFontFamily->FindBestFontFace(aFontSelData);
// create a new logical font instance from this physical font face
pFontInstance = pFontData->CreateFontInstance( aFontSelData );
diff --git a/vcl/source/font/fontinstance.cxx b/vcl/source/font/fontinstance.cxx
index 672ac82e1bdb..49b0593ce592 100644
--- a/vcl/source/font/fontinstance.cxx
+++ b/vcl/source/font/fontinstance.cxx
@@ -22,9 +22,9 @@
#include <hb-ot.h>
#include <hb-graphite2.h>
+#include <font/PhysicalFontFace.hxx>
#include <fontinstance.hxx>
#include <impfontcache.hxx>
-#include <PhysicalFontFace.hxx>
#include <o3tl/hash_combine.hxx>
@@ -45,7 +45,7 @@ namespace std
}
-LogicalFontInstance::LogicalFontInstance(const PhysicalFontFace& rFontFace, const vcl::font::FontSelectPattern& rFontSelData )
+LogicalFontInstance::LogicalFontInstance(const vcl::font::PhysicalFontFace& rFontFace, const vcl::font::FontSelectPattern& rFontSelData )
: mxFontMetric( new ImplFontMetricData( rFontSelData ))
, mpConversion( nullptr )
, mnLineHeight( 0 )
@@ -56,7 +56,7 @@ LogicalFontInstance::LogicalFontInstance(const PhysicalFontFace& rFontFace, cons
, m_aFontSelData(rFontSelData)
, m_pHbFont(nullptr)
, m_nAveWidthFactor(1.0f)
- , m_pFontFace(&const_cast<PhysicalFontFace&>(rFontFace))
+ , m_pFontFace(&const_cast<vcl::font::PhysicalFontFace&>(rFontFace))
{
}
diff --git a/vcl/source/font/fontmetric.cxx b/vcl/source/font/fontmetric.cxx
index 2e3859b1f941..000523941813 100644
--- a/vcl/source/font/fontmetric.cxx
+++ b/vcl/source/font/fontmetric.cxx
@@ -26,9 +26,9 @@
#include <vcl/outdev.hxx>
#include <sal/log.hxx>
-#include <PhysicalFontFace.hxx>
-#include <fontinstance.hxx>
#include <font/FontSelectPattern.hxx>
+#include <font/PhysicalFontFace.hxx>
+#include <fontinstance.hxx>
#include <impfontmetricdata.hxx>
#include <sft.hxx>
@@ -53,7 +53,7 @@ FontMetric::FontMetric()
FontMetric::FontMetric( const FontMetric& rFontMetric ) = default;
-FontMetric::FontMetric(PhysicalFontFace const& rFace)
+FontMetric::FontMetric(vcl::font::PhysicalFontFace const& rFace)
: FontMetric()
{
SetFamilyName(rFace.GetFamilyName());
diff --git a/vcl/source/gdi/embeddedfontshelper.cxx b/vcl/source/gdi/embeddedfontshelper.cxx
index ebcedb45b6a4..03c80ccb885b 100644
--- a/vcl/source/gdi/embeddedfontshelper.cxx
+++ b/vcl/source/gdi/embeddedfontshelper.cxx
@@ -260,12 +260,12 @@ OUString EmbeddedFontsHelper::fontFileUrl( std::u16string_view familyName, FontF
PhysicalFontCollection fonts;
graphics->GetDevFontList( &fonts );
std::unique_ptr< vcl::font::PhysicalFontFaceCollection > fontInfo( fonts.GetFontFaceCollection());
- PhysicalFontFace* selected = nullptr;
+ vcl::font::PhysicalFontFace* selected = nullptr;
for( int i = 0;
i < fontInfo->Count();
++i )
{
- PhysicalFontFace* f = fontInfo->Get( i );
+ vcl::font::PhysicalFontFace* f = fontInfo->Get( i );
if( f->GetFamilyName() == familyName )
{
// Ignore comparing text encodings, at least for now. They cannot be trivially compared
diff --git a/vcl/source/gdi/pdfbuildin_fonts.cxx b/vcl/source/gdi/pdfbuildin_fonts.cxx
index 688b608de2e1..d6504c5c0fb7 100644
--- a/vcl/source/gdi/pdfbuildin_fonts.cxx
+++ b/vcl/source/gdi/pdfbuildin_fonts.cxx
@@ -731,7 +731,7 @@ const BuildinFont BuildinFontFace::m_aBuildinFonts[14]
};
-BuildinFontInstance::BuildinFontInstance(const PhysicalFontFace& rFontFace,
+BuildinFontInstance::BuildinFontInstance(const vcl::font::PhysicalFontFace& rFontFace,
const vcl::font::FontSelectPattern& rFSP)
: LogicalFontInstance(rFontFace, rFSP)
{
@@ -748,7 +748,7 @@ bool BuildinFontInstance::GetGlyphOutline(sal_GlyphId, basegfx::B2DPolyPolygon&,
}
BuildinFontFace::BuildinFontFace(int nId)
- : PhysicalFontFace(m_aBuildinFonts[nId].GetFontAttributes())
+ : vcl::font::PhysicalFontFace(m_aBuildinFonts[nId].GetFontAttributes())
, mrBuildin(m_aBuildinFonts[nId])
{
}
diff --git a/vcl/source/gdi/pdffontcache.cxx b/vcl/source/gdi/pdffontcache.cxx
index dadcb03048e2..e4646f8777bd 100644
--- a/vcl/source/gdi/pdffontcache.cxx
+++ b/vcl/source/gdi/pdffontcache.cxx
@@ -21,7 +21,7 @@
#include <sal/types.h>
-#include <PhysicalFontFace.hxx>
+#include <font/PhysicalFontFace.hxx>
#include <pdf/pdffontcache.hxx>
#include <salgdi.hxx>
@@ -29,14 +29,14 @@
using namespace vcl;
-PDFFontCache::FontIdentifier::FontIdentifier( const PhysicalFontFace* pFont, bool bVertical ) :
+PDFFontCache::FontIdentifier::FontIdentifier( const vcl::font::PhysicalFontFace* pFont, bool bVertical ) :
m_nFontId( pFont->GetFontId() ),
m_bVertical( bVertical ),
m_typeFontFace( const_cast<std::type_info*>(&typeid(pFont)) )
{
}
-PDFFontCache::FontData& PDFFontCache::getFont( const PhysicalFontFace* pFont, bool bVertical )
+PDFFontCache::FontData& PDFFontCache::getFont( const vcl::font::PhysicalFontFace* pFont, bool bVertical )
{
FontIdentifier aId( pFont, bVertical );
FontToIndexMap::iterator it = m_aFontToIndex.find( aId );
@@ -47,7 +47,7 @@ PDFFontCache::FontData& PDFFontCache::getFont( const PhysicalFontFace* pFont, bo
return m_aFonts.back();
}
-sal_Int32 PDFFontCache::getGlyphWidth( const PhysicalFontFace* pFont, sal_GlyphId nGlyph, bool bVertical, SalGraphics* pGraphics )
+sal_Int32 PDFFontCache::getGlyphWidth( const vcl::font::PhysicalFontFace* pFont, sal_GlyphId nGlyph, bool bVertical, SalGraphics* pGraphics )
{
sal_Int32 nWidth = 0;
FontData& rFontData( getFont( pFont, bVertical ) );
diff --git a/vcl/source/gdi/pdfwriter_impl.cxx b/vcl/source/gdi/pdfwriter_impl.cxx
index 6b02a6d384fc..7718cbd39f9c 100644
--- a/vcl/source/gdi/pdfwriter_impl.cxx
+++ b/vcl/source/gdi/pdfwriter_impl.cxx
@@ -72,7 +72,7 @@
#include <svdata.hxx>
#include <bitmap/BitmapWriteAccess.hxx>
#include <fontsubset.hxx>
-#include <PhysicalFontFace.hxx>
+#include <font/PhysicalFontFace.hxx>
#include <salgdi.hxx>
#include <textlayout.hxx>
#include <textlineinfo.hxx>
@@ -2310,7 +2310,7 @@ sal_Int32 PDFWriterImpl::emitBuildinFont(const pdf::BuildinFontFace* pFD, sal_In
return nFontObject;
}
-std::map< sal_Int32, sal_Int32 > PDFWriterImpl::emitSystemFont( const PhysicalFontFace* pFont, EmbedFont const & rEmbed )
+std::map< sal_Int32, sal_Int32 > PDFWriterImpl::emitSystemFont( const vcl::font::PhysicalFontFace* pFont, EmbedFont const & rEmbed )
{
std::map< sal_Int32, sal_Int32 > aRet;
@@ -2549,7 +2549,7 @@ sal_Int32 PDFWriterImpl::createToUnicodeCMap( sal_uInt8 const * pEncoding,
return nStream;
}
-sal_Int32 PDFWriterImpl::emitFontDescriptor( const PhysicalFontFace* pFont, FontSubsetInfo const & rInfo, sal_Int32 nSubsetID, sal_Int32 nFontStream )
+sal_Int32 PDFWriterImpl::emitFontDescriptor( const vcl::font::PhysicalFontFace* pFont, FontSubsetInfo const & rInfo, sal_Int32 nSubsetID, sal_Int32 nFontStream )
{
OStringBuffer aLine( 1024 );
// get font flags, see PDF reference 1.4 p. 358
@@ -2854,7 +2854,7 @@ bool PDFWriterImpl::emitFonts()
}
else
{
- const PhysicalFontFace* pFont = subset.first;
+ const vcl::font::PhysicalFontFace* pFont = subset.first;
OStringBuffer aErrorComment( 256 );
aErrorComment.append( "CreateFontSubset failed for font \"" );
aErrorComment.append( OUStringToOString( pFont->GetFamilyName(), RTL_TEXTENCODING_UTF8 ) );
@@ -3889,7 +3889,7 @@ void PDFWriterImpl::createDefaultCheckBoxAppearance( PDFWidget& rBox, const PDFW
FontCharMapRef pMap;
GetFontCharMap(pMap);
const LogicalFontInstance* pFontInstance = GetFontInstance();
- const PhysicalFontFace* pDevFont = pFontInstance->GetFontFace();
+ const vcl::font::PhysicalFontFace* pDevFont = pFontInstance->GetFontFace();
Pop();
// make sure OpenSymbol is embedded, and includes our checkmark
@@ -5676,7 +5676,7 @@ sal_Int32 PDFWriterImpl::getSystemFont( const vcl::Font& i_rFont )
SetFont( i_rFont );
- const PhysicalFontFace* pDevFont = GetFontInstance()->GetFontFace();
+ const vcl::font::PhysicalFontFace* pDevFont = GetFontInstance()->GetFontFace();
sal_Int32 nFontID = 0;
auto it = m_aSystemFonts.find( pDevFont );
if( it != m_aSystemFonts.end() )
@@ -5693,7 +5693,7 @@ sal_Int32 PDFWriterImpl::getSystemFont( const vcl::Font& i_rFont )
}
void PDFWriterImpl::registerGlyph(const GlyphItem* pGlyph,
- const PhysicalFontFace* pFont,
+ const vcl::font::PhysicalFontFace* pFont,
const std::vector<sal_Ucs>& rCodeUnits,
sal_uInt8& nMappedGlyph,
sal_Int32& nMappedFontObject)
@@ -6123,9 +6123,9 @@ void PDFWriterImpl::drawLayout( SalLayout& rLayout, const OUString& rText, bool
}
FontMetric aRefDevFontMetric = GetFontMetric();
- const PhysicalFontFace* pDevFont = GetFontInstance()->GetFontFace();
+ const vcl::font::PhysicalFontFace* pDevFont = GetFontInstance()->GetFontFace();
const GlyphItem* pGlyph = nullptr;
- const PhysicalFontFace* pFallbackFont = nullptr;
+ const vcl::font::PhysicalFontFace* pFallbackFont = nullptr;
// collect the glyphs into a single array
std::vector< PDFGlyph > aGlyphs;
diff --git a/vcl/source/gdi/salgdilayout.cxx b/vcl/source/gdi/salgdilayout.cxx
index 9a327dd5312f..aafa8f157e70 100644
--- a/vcl/source/gdi/salgdilayout.cxx
+++ b/vcl/source/gdi/salgdilayout.cxx
@@ -22,7 +22,7 @@
#include <memory>
#include <config_features.h>
#include <sal/log.hxx>
-#include <PhysicalFontFace.hxx>
+#include <font/PhysicalFontFace.hxx>
#include <fontsubset.hxx>
#include <salgdi.hxx>
#include <salframe.hxx>
@@ -885,7 +885,7 @@ OUString SalGraphics::getRenderBackendName() const
}
void SalGraphics::GetGlyphWidths(const vcl::AbstractTrueTypeFont& rTTF,
- const PhysicalFontFace& rFontFace, const bool bVertical,
+ const vcl::font::PhysicalFontFace& rFontFace, const bool bVertical,
std::vector<sal_Int32>& rWidths, Ucs2UIntMap& rUnicodeEnc)
{
rWidths.clear();
diff --git a/vcl/source/gdi/sallayout.cxx b/vcl/source/gdi/sallayout.cxx
index 445e2cddba07..bdd6deaaa49e 100644
--- a/vcl/source/gdi/sallayout.cxx
+++ b/vcl/source/gdi/sallayout.cxx
@@ -493,7 +493,7 @@ sal_Int32 GenericSalLayout::GetTextBreak( DeviceCoordinate nMaxWidth, DeviceCoor
bool GenericSalLayout::GetNextGlyph(const GlyphItem** pGlyph,
Point& rPos, int& nStart,
const LogicalFontInstance** ppGlyphFont,
- const PhysicalFontFace**) const
+ const vcl::font::PhysicalFontFace**) const
{
std::vector<GlyphItem>::const_iterator pGlyphIter = m_GlyphItems.begin();
std::vector<GlyphItem>::const_iterator pGlyphIterEnd = m_GlyphItems.end();
@@ -1107,7 +1107,7 @@ void MultiSalLayout::GetCaretPositions( int nMaxIndex, tools::Long* pCaretXArray
bool MultiSalLayout::GetNextGlyph(const GlyphItem** pGlyph,
Point& rPos, int& nStart,
const LogicalFontInstance** ppGlyphFont,
- const PhysicalFontFace** pFallbackFont) const
+ const vcl::font::PhysicalFontFace** pFallbackFont) const
{
// NOTE: nStart is tagged with current font index
int nLevel = static_cast<unsigned>(nStart) >> GF_FONTSHIFT;
@@ -1116,7 +1116,7 @@ bool MultiSalLayout::GetNextGlyph(const GlyphItem** pGlyph,
{
GenericSalLayout& rLayout = *mpLayouts[ nLevel ];
rLayout.InitFont();
- const PhysicalFontFace* pFontFace = rLayout.GetFont().GetFontFace();
+ const vcl::font::PhysicalFontFace* pFontFace = rLayout.GetFont().GetFontFace();
if (rLayout.GetNextGlyph(pGlyph, rPos, nStart, ppGlyphFont))
{
int nFontTag = nLevel << GF_FONTSHIFT;
diff --git a/vcl/unx/generic/gdi/font.cxx b/vcl/unx/generic/gdi/font.cxx
index 36618829279c..bc56b56286c5 100644
--- a/vcl/unx/generic/gdi/font.cxx
+++ b/vcl/unx/generic/gdi/font.cxx
@@ -83,7 +83,7 @@ std::unique_ptr<GenericSalLayout> X11SalGraphics::GetTextLayout(int nFallbackLev
bool X11SalGraphics::CreateFontSubset(
const OUString& rToFile,
- const PhysicalFontFace* pFont,
+ const vcl::font::PhysicalFontFace* pFont,
const sal_GlyphId* pGlyphIds,
const sal_uInt8* pEncoding,
sal_Int32* pWidths,
@@ -95,7 +95,7 @@ bool X11SalGraphics::CreateFontSubset(
pGlyphIds, pEncoding, pWidths, nGlyphCount, rInfo);
}
-const void* X11SalGraphics::GetEmbedFontData(const PhysicalFontFace* pFont, tools::Long* pDataLen)
+const void* X11SalGraphics::GetEmbedFontData(const vcl::font::PhysicalFontFace* pFont, tools::Long* pDataLen)
{
return mxTextRenderImpl->GetEmbedFontData(pFont, pDataLen);
}
@@ -105,7 +105,7 @@ void X11SalGraphics::FreeEmbedFontData( const void* pData, tools::Long nLen )
mxTextRenderImpl->FreeEmbedFontData(pData, nLen);
}
-void X11SalGraphics::GetGlyphWidths( const PhysicalFontFace* pFont,
+void X11SalGraphics::GetGlyphWidths( const vcl::font::PhysicalFontFace* pFont,
bool bVertical,
std::vector< sal_Int32 >& rWidths,
Ucs2UIntMap& rUnicodeEnc )
diff --git a/vcl/unx/generic/gdi/freetypetextrender.cxx b/vcl/unx/generic/gdi/freetypetextrender.cxx
index 9f66c5f5f536..2b39d8787605 100644
--- a/vcl/unx/generic/gdi/freetypetextrender.cxx
+++ b/vcl/unx/generic/gdi/freetypetextrender.cxx
@@ -33,7 +33,7 @@
#include <unx/glyphcache.hxx>
#include <unx/fc_fontoptions.hxx>
#include <unx/freetype_glyphcache.hxx>
-#include <PhysicalFontFace.hxx>
+#include <font/PhysicalFontFace.hxx>
#include <impfontmetricdata.hxx>
#include <sallayout.hxx>
@@ -157,7 +157,7 @@ std::unique_ptr<GenericSalLayout> FreeTypeTextRenderImpl::GetTextLayout(int nFal
bool FreeTypeTextRenderImpl::CreateFontSubset(
const OUString& rToFile,
- const PhysicalFontFace* pFont,
+ const vcl::font::PhysicalFontFace* pFont,
const sal_GlyphId* pGlyphIds,
const sal_uInt8* pEncoding,
sal_Int32* pWidths,
@@ -183,7 +183,7 @@ bool FreeTypeTextRenderImpl::CreateFontSubset(
return bSuccess;
}
-const void* FreeTypeTextRenderImpl::GetEmbedFontData(const PhysicalFontFace* pFont, tools::Long* pDataLen)
+const void* FreeTypeTextRenderImpl::GetEmbedFontData(const vcl::font::PhysicalFontFace* pFont, tools::Long* pDataLen)
{
// in this context the pFont->GetFontId() is a valid PSP
// font since they are the only ones left after the PDF
@@ -199,7 +199,7 @@ void FreeTypeTextRenderImpl::FreeEmbedFontData( const void* pData, tools::Long n
GenPspGraphics::DoFreeEmbedFontData( pData, nLen );
}
-void FreeTypeTextRenderImpl::GetGlyphWidths( const PhysicalFontFace* pFont,
+void FreeTypeTextRenderImpl::GetGlyphWidths( const vcl::font::PhysicalFontFace* pFont,
bool bVertical,
std::vector< sal_Int32 >& rWidths,
Ucs2UIntMap& rUnicodeEnc )
diff --git a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
index 77c1566727d4..645afddabc73 100644
--- a/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
+++ b/vcl/unx/generic/glyphs/freetype_glyphcache.cxx
@@ -373,7 +373,7 @@ FreetypeFont* FreetypeManager::CreateFont(FreetypeFontInstance* pFontInstance)
if (!pFontInstance)
return nullptr;
- const PhysicalFontFace* pFontFace = pFontInstance->GetFontFace();
+ const vcl::font::PhysicalFontFace* pFontFace = pFontInstance->GetFontFace();
if (!pFontFace)
return nullptr;
@@ -387,7 +387,7 @@ FreetypeFont* FreetypeManager::CreateFont(FreetypeFontInstance* pFontInstance)
}
FreetypeFontFace::FreetypeFontFace( FreetypeFontInfo* pFI, const FontAttributes& rDFA )
-: PhysicalFontFace( rDFA ),
+: vcl::font::PhysicalFontFace( rDFA ),
mpFreetypeFontInfo( pFI )
{
}
diff --git a/vcl/unx/generic/glyphs/glyphcache.cxx b/vcl/unx/generic/glyphs/glyphcache.cxx
index ec2afc4db8f3..79db2d87bdb0 100644
--- a/vcl/unx/generic/glyphs/glyphcache.cxx
+++ b/vcl/unx/generic/glyphs/glyphcache.cxx
@@ -66,7 +66,7 @@ FreetypeFontFile* FreetypeManager::FindFontFile(const OString& rNativeFileName)
return pFontFile;
}
-FreetypeFontInstance::FreetypeFontInstance(const PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP)
+FreetypeFontInstance::FreetypeFontInstance(const vcl::font::PhysicalFontFace& rPFF, const vcl::font::FontSelectPattern& rFSP)
: LogicalFontInstance(rPFF, rFSP)
, mxFreetypeFont(FreetypeManager::get().CreateFont(this))
{
diff --git a/vcl/unx/generic/print/genpspgraphics.cxx b/vcl/unx/generic/print/genpspgraphics.cxx
index 48b5ca8af32b..3ae0e8fa40af 100644
--- a/vcl/unx/generic/print/genpspgraphics.cxx
+++ b/vcl/unx/generic/print/genpspgraphics.cxx
@@ -46,8 +46,9 @@
#include <fontinstance.hxx>
#include <fontattributes.hxx>
#include <impfontmetricdata.hxx>
+#include <font/FontSelectPattern.hxx>
#include <PhysicalFontCollection.hxx>
-#include <PhysicalFontFace.hxx>
+#include <font/PhysicalFontFace.hxx>
#include <sallayout.hxx>
using namespace psp;
@@ -309,7 +310,7 @@ std::unique_ptr<GenericSalLayout> GenPspGraphics::GetTextLayout(int nFallbackLev
bool GenPspGraphics::CreateFontSubset(
const OUString& rToFile,
- const PhysicalFontFace* pFont,
+ const vcl::font::PhysicalFontFace* pFont,
const sal_GlyphId* pGlyphIds,
const sal_uInt8* pEncoding,
sal_Int32* pWidths,
@@ -335,7 +336,7 @@ bool GenPspGraphics::CreateFontSubset(
return bSuccess;
}
-void GenPspGraphics::GetGlyphWidths( const PhysicalFontFace* pFont,
+void GenPspGraphics::GetGlyphWidths( const vcl::font::PhysicalFontFace* pFont,
bool bVertical,
std::vector< sal_Int32 >& rWidths,
Ucs2UIntMap& rUnicodeEnc )
@@ -504,7 +505,7 @@ void GenPspGraphics::FreeEmbedFontData( const void* pData, tools::Long nLen )
DoFreeEmbedFontData( pData, nLen );
}
-const void* GenPspGraphics::GetEmbedFontData(const PhysicalFontFace* pFont, tools::Long* pDataLen)
+const void* GenPspGraphics::GetEmbedFontData(const vcl::font::PhysicalFontFace* pFont, tools::Long* pDataLen)
{
// in this context the pFont->GetFontId() is a valid PSP
// font since they are the only ones left after the PDF
diff --git a/vcl/win/gdi/salfont.cxx b/vcl/win/gdi/salfont.cxx
index 6dd8365e6955..842f5ed8830f 100644
--- a/vcl/win/gdi/salfont.cxx
+++ b/vcl/win/gdi/salfont.cxx
@@ -51,11 +51,12 @@
#include <vcl/fontcharmap.hxx>
#include <comphelper/scopeguard.hxx>
+#include <font/FontSelectPattern.hxx>
#include <fontsubset.hxx>
#include <outdev.h>
#include <font/PhysicalFontFaceCollection.hxx>
#include <PhysicalFontCollection.hxx>
-#include <PhysicalFontFace.hxx>
+#include <font/PhysicalFontFace.hxx>
#include <sft.hxx>
#include <win/saldata.hxx>
#include <win/salgdi.h>
@@ -180,13 +181,13 @@ public:
bool FindFontSubstitute(vcl::font::FontSelectPattern&, LogicalFontInstance* pLogicalFont, OUString& rMissingChars) const override;
private:
HDC mhDC;
- bool HasMissingChars(PhysicalFontFace*, OUString& rMissingChars) const;
+ bool HasMissingChars(vcl::font::PhysicalFontFace*, OUString& rMissingChars) const;
};
}
// does a font face hold the given missing characters?
-bool WinGlyphFallbackSubstititution::HasMissingChars(PhysicalFontFace* pFace, OUString& rMissingChars) const
+bool WinGlyphFallbackSubstititution::HasMissingChars(vcl::font::PhysicalFontFace* pFace, OUString& rMissingChars) const
{
WinFontFace* pWinFont = static_cast< WinFontFace* >(pFace);
FontCharMapRef xFontCharMap = pWinFont->GetFontCharMap();
@@ -303,7 +304,7 @@ bool WinGlyphFallbackSubstititution::FindFontSubstitute(vcl::font::FontSelectPat
vcl::font::PhysicalFontFamily* pFontFamily = findDevFontListByLocale(*pFontCollection, aLanguageTag);
if( pFontFamily )
{
- PhysicalFontFace* pFace = pFontFamily->FindBestFontFace( rFontSelData );
+ vcl::font::PhysicalFontFace* pFace = pFontFamily->FindBestFontFace( rFontSelData );
if( HasMissingChars( pFace, rMissingChars ) )
{
rFontSelData.maSearchName = pFontFamily->GetSearchName();
@@ -319,7 +320,7 @@ bool WinGlyphFallbackSubstititution::FindFontSubstitute(vcl::font::FontSelectPat
rFontSelData.maSearchName );
if( pFontFamily )
{
- PhysicalFontFace* pFace = pFontFamily->FindBestFontFace( rFontSelData );
+ vcl::font::PhysicalFontFace* pFace = pFontFamily->FindBestFontFace( rFontSelData );
if( HasMissingChars( pFace, rMissingChars ) )
{
rFontSelData.maSearchName = pFontFamily->GetSearchName();
@@ -338,7 +339,7 @@ bool WinGlyphFallbackSubstititution::FindFontSubstitute(vcl::font::FontSelectPat
bool bFound = false;
for( int i = 0; i < nTestFontCount; ++i )
{
- PhysicalFontFace* pFace = pTestFontList->Get( i );
+ vcl::font::PhysicalFontFace* pFace = pTestFontList->Get( i );
bFound = HasMissingChars( pFace, rMissingChars );
if( !bFound )
continue;
@@ -626,7 +627,7 @@ void ImplSalLogFontToFontW( HDC hDC, const LOGFONTW& rLogFont, Font& rFont )
WinFontFace::WinFontFace( const FontAttributes& rDFS,
BYTE eWinCharSet, BYTE nPitchAndFamily )
-: PhysicalFontFace( rDFS ),
+: vcl::font::PhysicalFontFace( rDFS ),
mnId( 0 ),
mbFontCapabilitiesRead( false ),
meWinCharSet( eWinCharSet ),
@@ -762,7 +763,7 @@ void WinSalGraphics::SetTextColor( Color nColor )
}
void ImplGetLogFontFromFontSelect( const vcl::font::FontSelectPattern& rFont,
- const PhysicalFontFace* pFontFace,
+ const vcl::font::PhysicalFontFace* pFontFace,
LOGFONTW& rLogFont )
{
OUString aName;
@@ -811,7 +812,7 @@ void ImplGetLogFontFromFontSelect( const vcl::font::FontSelectPattern& rFont,
}
HFONT WinSalGraphics::ImplDoSetFont(vcl::font::FontSelectPattern const & i_rFont,
- const PhysicalFontFace * i_pFontFace,
+ const vcl::font::PhysicalFontFace * i_pFontFace,
HFONT& o_rOldFont)
{
HFONT hNewFont = nullptr;
@@ -1535,7 +1536,7 @@ SFErrCodes ScopedTrueTypeFont::open(void const * pBuffer, sal_uInt32 nLen,
}
bool WinSalGraphics::CreateFontSubset( const OUString& rToFile,
- const PhysicalFontFace* pFont, const sal_GlyphId* pGlyphIds, const sal_uInt8* pEncoding,
+ const vcl::font::PhysicalFontFace* pFont, const sal_GlyphId* pGlyphIds, const sal_uInt8* pEncoding,
sal_Int32* pGlyphWidths, int nGlyphCount, FontSubsetInfo& rInfo )
{
// TODO: use more of the central font-subsetting code, move stuff there if needed
@@ -1604,7 +1605,7 @@ bool WinSalGraphics::CreateFontSubset( const OUString& rToFile,
pEncoding, pGlyphWidths, nGlyphCount);
}
-const void* WinSalGraphics::GetEmbedFontData(const PhysicalFontFace* pFont, tools::Long* pDataLen)
+const void* WinSalGraphics::GetEmbedFontData(const vcl::font::PhysicalFontFace* pFont, tools::Long* pDataLen)
{
// create matching FontSelectPattern
// we need just enough to get to the font file data
@@ -1630,7 +1631,7 @@ void WinSalGraphics::FreeEmbedFontData( const void* pData, tools::Long /*nLen*/
delete[] static_cast<char const *>(pData);
}
-void WinSalGraphics::GetGlyphWidths( const PhysicalFontFace* pFont,
+void WinSalGraphics::GetGlyphWidths( const vcl::font::PhysicalFontFace* pFont,
bool bVertical,
std::vector< sal_Int32 >& rWidths,
Ucs2UIntMap& rUnicodeEnc )
diff --git a/vcl/win/gdi/winlayout.cxx b/vcl/win/gdi/winlayout.cxx
index 749b9c96ec4f..0db736c256c0 100644
--- a/vcl/win/gdi/winlayout.cxx
+++ b/vcl/win/gdi/winlayout.cxx
@@ -163,7 +163,7 @@ struct BlobReference
};
}
-using BlobCacheKey = std::pair<rtl::Reference<PhysicalFontFace>, hb_tag_t>;
+using BlobCacheKey = std::pair<rtl::Reference<vcl::font::PhysicalFontFace>, hb_tag_t>;
namespace
{
@@ -189,7 +189,8 @@ static hb_blob_t* getFontTable(hb_face_t* /*face*/, hb_tag_t nTableTag, void* pU
assert(hDC);
assert(hFont);
- BlobCacheKey cacheKey{ rtl::Reference<PhysicalFontFace>(pFont->GetFontFace()), nTableTag };
+ BlobCacheKey cacheKey{ rtl::Reference<vcl::font::PhysicalFontFace>(pFont->GetFontFace()),
+ nTableTag };
auto it = gCache.find(cacheKey);
if (it != gCache.end())
{