[ooo-build-commit] .: 3 commits - patches/dev300 patches/gstreamer
Thorsten Behrens
thorsten at kemper.freedesktop.org
Mon Aug 16 06:38:58 PDT 2010
patches/dev300/apply | 39
patches/dev300/ooo59127.vcl.honourcairofont.diff | 1236 -----------------
patches/gstreamer/gstreamer-svtools-content-types.diff | 9
3 files changed, 22 insertions(+), 1262 deletions(-)
New commits:
commit a5c543f0fe0a711682c1262e9b925a1e0b7df6bd
Author: Thorsten Behrens <thb at openoffice.org>
Date: Mon Aug 16 15:33:44 2010 +0200
gstreamer-svtools: adapted context
* patches/gstreamer/gstreamer-svtools-content-types.diff:
diff --git a/patches/gstreamer/gstreamer-svtools-content-types.diff b/patches/gstreamer/gstreamer-svtools-content-types.diff
index e15c722..b85e535 100644
--- a/patches/gstreamer/gstreamer-svtools-content-types.diff
+++ b/patches/gstreamer/gstreamer-svtools-content-types.diff
@@ -50,7 +50,7 @@ diff --git svl/inc/svl/svtools.hrc svl/inc/svl/svtools.hrc
index 18223a0..3a64a3a 100644
--- svl/inc/svl/svl.hrc
+++ svl/inc/svl/svl.hrc
-@@ -133,110 +133,112 @@
+@@ -133,111 +133,113 @@
#define STR_SVT_MIMETYPE_APP_ZIP (STR_SVT_MIMETYPE_START+10)
#define STR_SVT_MIMETYPE_AUDIO_AIFF (STR_SVT_MIMETYPE_START+11)
#define STR_SVT_MIMETYPE_AUDIO_BASIC (STR_SVT_MIMETYPE_START+12)
@@ -266,7 +266,8 @@ index 18223a0..3a64a3a 100644
+#define STR_SVT_MIMETYPE_APP_SXIPACKED (STR_SVT_MIMETYPE_START+116)
#define STR_SVT_MIMETYPE_END (STR_SVT_MIMETYPE_APP_SXIPACKED)
- #define STR_SVT_PRNDLG_START (STR_SVT_MIMETYPE_END+1)
+ #define STR_COLUM_DT_AUTO (STR_SVT_MIMETYPE_END+1)
+
diff --git svl/source/misc/inettype.cxx svl/source/misc/inettype.cxx
index 93f98d6..8b321c9 100644
--- svl/source/misc/inettype.cxx
commit a621cd43153b470bce5aa096e8a17328b3e896d7
Author: Thorsten Behrens <thb at openoffice.org>
Date: Mon Aug 16 15:13:25 2010 +0200
Enabled gstreamer-svtools patch again
* patches/dev300/apply: enabled below
* patches/gstreamer/gstreamer-svtools-content-types.diff: tweaked
paths to moved files
diff --git a/patches/dev300/apply b/patches/dev300/apply
index 5e270c5..0779753 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -2232,7 +2232,7 @@ gstreamer-scp2.diff
gstreamer-config-office.diff
gstreamer-slideshow.diff
gstreamer-solenv.diff
-# FIXME dev300-m83 gstreamer-svtools-content-types.diff
+gstreamer-svtools-content-types.diff
gstreamer-avmedia-file-types.diff
gstreamer-vcl.diff
avmedia-source-gstreamer-ChangeLog.diff
diff --git a/patches/gstreamer/gstreamer-svtools-content-types.diff b/patches/gstreamer/gstreamer-svtools-content-types.diff
index e1bf2d1..e15c722 100644
--- a/patches/gstreamer/gstreamer-svtools-content-types.diff
+++ b/patches/gstreamer/gstreamer-svtools-content-types.diff
@@ -48,8 +48,8 @@ index 57d357d..398d519 100644
CONTENT_TYPE_X_CNT_MESSAGE,
diff --git svl/inc/svl/svtools.hrc svl/inc/svl/svtools.hrc
index 18223a0..3a64a3a 100644
---- svl/inc/svl/svtools.hrc
-+++ svl/inc/svl/svtools.hrc
+--- svl/inc/svl/svl.hrc
++++ svl/inc/svl/svl.hrc
@@ -133,110 +133,112 @@
#define STR_SVT_MIMETYPE_APP_ZIP (STR_SVT_MIMETYPE_START+10)
#define STR_SVT_MIMETYPE_AUDIO_AIFF (STR_SVT_MIMETYPE_START+11)
commit 7ed627cf8f6898fd1168fa8245b90a7f71a9359a
Author: Thorsten Behrens <thb at openoffice.org>
Date: Mon Aug 16 15:08:07 2010 +0200
Removed honourcairofont.diff (upstreamed)
* patches/dev300/apply: removed below patch, cleansed then-empty
section
* patches/dev300/ooo59127.vcl.honourcairofont.diff: rm-ed
diff --git a/patches/dev300/apply b/patches/dev300/apply
index 70cb5ae..5e270c5 100644
--- a/patches/dev300/apply
+++ b/patches/dev300/apply
@@ -74,23 +74,23 @@ SUSE-10.0 : NovellBase
SUSE-10.1 : NovellBase, BerkeleyDB43, EMFPlus, Java14, BrokenSystemNSS, SUSE101
SUSE-10.2 : NovellBase, BerkeleyDB43, EMFPlus, Java14, OpenGLTransitionsMesa703
SUSE-10.3 : NovellBase, BerkeleyDB43, EMFPlus, Java14, GCC41
-SUSE-11.0 : NovellBase, BerkeleyDB43, EMFPlus, CairoFonts, PostgreSQL
-SUSE-11.1 : NovellBase, BerkeleyDB43, EMFPlus, CairoFonts, ImpressFontSize, PostgreSQL
-SUSE-11.2 : NovellBase, BerkeleyDB43, EMFPlus, CairoFonts, ImpressFontSize, PostgreSQL, SUSE112
-SUSE : NovellBase, BerkeleyDB43, EMFPlus, CairoFonts, ImpressFontSize, PostgreSQL, SUSE112
+SUSE-11.0 : NovellBase, BerkeleyDB43, EMFPlus, PostgreSQL
+SUSE-11.1 : NovellBase, BerkeleyDB43, EMFPlus, ImpressFontSize, PostgreSQL
+SUSE-11.2 : NovellBase, BerkeleyDB43, EMFPlus, ImpressFontSize, PostgreSQL, SUSE112
+SUSE : NovellBase, BerkeleyDB43, EMFPlus, ImpressFontSize, PostgreSQL, SUSE112
# Slackware
-Slackware : LinuxCommon, SlackwareOnly, NotDebian, Mono, msaccess, CairoFonts
+Slackware : LinuxCommon, SlackwareOnly, NotDebian, Mono, msaccess
# Debian
DebianBase : LinuxCommon, DebianBaseOnly, GCCSTL, BerkeleyDB43, Split, PostgreSQL
-Debian : DebianBase, DebianOnly, DebianSidOnly, Debian32Only, CairoFonts, HPPA, AXP, kFreeBSD
+Debian : DebianBase, DebianOnly, DebianSidOnly, Debian32Only, HPPA, AXP, kFreeBSD
DebianEtch : DebianBase, DebianOnly, DebianEtchOnly, Debian32Only
# Ubuntu
UbuntuBased : DebianBase, UbuntuOnly
-UbuntuHardy : UbuntuBased, UbuntuHardyOnly, CairoFonts
-UbuntuJaunty : UbuntuBased, UbuntuJauntyOnly, CairoFonts
-UbuntuKarmic : UbuntuBased, UbuntuKarmicOnly, CairoFonts
-UbuntuLucid : UbuntuBased, UbuntuLucidOnly, CairoFonts
-UbuntuMaverick : UbuntuBased, UbuntuMaverickOnly, CairoFonts
+UbuntuHardy : UbuntuBased, UbuntuHardyOnly
+UbuntuJaunty : UbuntuBased, UbuntuJauntyOnly
+UbuntuKarmic : UbuntuBased, UbuntuKarmicOnly
+UbuntuLucid : UbuntuBased, UbuntuLucidOnly
+UbuntuMaverick : UbuntuBased, UbuntuMaverickOnly
UbuntuL10n : UbuntuBased, UbuntuL10nOnly
# DroplineGNOME
DroplineGNOME : LinuxCommon, DroplineGNOMEOnly, NotDebian, Mono, msaccess
@@ -98,11 +98,11 @@ DroplineGNOME64 : LinuxCommon, DroplineGNOMEOnly, NotDebian, Mono, msaccess
# Ark Linux
Ark: LinuxCommon, NotDebian, ArkOnly, BerkeleyDB43, KDE4
# www.pld-linux.org
-PLDBase: LinuxCommon, NotDebian, CairoFonts, PLDOnly
+PLDBase: LinuxCommon, NotDebian, PLDOnly
PLD: PLDBase
PLD64: PLDBase
# Mandriva Linux
-MandrivaBase: CairoFonts, MandrivaOnly, LinuxCommon, MandrivaOnlyUnix, Split, NotDebian
+MandrivaBase: MandrivaOnly, LinuxCommon, MandrivaOnlyUnix, Split, NotDebian
Mandriva: MandrivaBase
Mandriva64: MandrivaBase
# Frugalware Linux
@@ -110,12 +110,12 @@ Frugalware: LinuxCommon, GnomeVFS, GlobalDesktopFiles, NonArkCommon, NoRpath, No
# openmamba
openmamba: LinuxCommon, GlobalDesktopFiles
#Gentoo
-GentooBase : LinuxCommon, GentooOnly, NotDebian, CairoFonts, BerkeleyDB43, IntegrateExtensions
+GentooBase : LinuxCommon, GentooOnly, NotDebian, BerkeleyDB43, IntegrateExtensions
GentooUnstable: GentooBase, GentooExperimental
Gentoo : GentooBase
Gentoo64: GentooBase
# rPath Linux
-rPathCommon: LinuxCommon, NotDebian, BerkeleyDB43, CairoFonts
+rPathCommon: LinuxCommon, NotDebian, BerkeleyDB43
rpl2: rPathCommon
rpl2-64: rPathCommon
# ArchLinux
@@ -154,7 +154,7 @@ OxygenOfficeLinux: OxygenOfficeLinuxCommon, OxygenOfficePalettes, OxygenOfficeDe
OxygenOfficeWindows: OxygenOfficeWin32Common, OxygenOfficePalettes, OxygenOfficeDefaultSettings, OxygenOfficeExtras, OxygenOfficeWin32Only
# FSFhu
FSFhuWindows : Win32Common, FSFhuWin32Only, Fpickers, CustomUserConfig, LiberationFontsOnWindows, IntegrateExtensions, MagyarLinuxLibertineFonts
-FSFhuLinux : NovellBase, EMFPlus, CairoFonts, LiberationFontsOnWindows, IntegrateExtensions
+FSFhuLinux : NovellBase, EMFPlus, LiberationFontsOnWindows, IntegrateExtensions
FSFhuMacOSX : MacOSXCommon, MacOSXOnly, NovellOnly, NovellOnlyExtensionFixes, CustomUserConfig, IntegrateExtensions
# Plain build; just with base build fixes
PlainLinux: PlainBuildFixes
@@ -2220,11 +2220,6 @@ ooo86080.unopkg.bodge.diff
oooXXXX.partial-revert-ooo95118.diff
-
-[ CairoFonts ]
-# needs Gtk2.0 >= 2.10 and cairo, so this is on the own section
-# FIXME dev300-m77 ooo59127.vcl.honourcairofont.diff #disabled
-
[ DebianBaseOnly ]
soffice-opengl-and-locking-config.diff, mklose
diff --git a/patches/dev300/ooo59127.vcl.honourcairofont.diff b/patches/dev300/ooo59127.vcl.honourcairofont.diff
deleted file mode 100644
index 769ced8..0000000
--- a/patches/dev300/ooo59127.vcl.honourcairofont.diff
+++ /dev/null
@@ -1,1236 +0,0 @@
-From 6f71cef8edf771e6f6d390b5fefdcd94caf9bdc7 Mon Sep 17 00:00:00 2001
-From: Jan Holesovsky <kendy at suse.cz>
-Date: Fri, 14 May 2010 17:01:24 +0200
-Subject: [PATCH 459/878] ooo59127.vcl.honourcairofont.diff
-
----
- vcl/inc/vcl/fontmanager.hxx | 37 ++++-
- vcl/inc/vcl/impfont.hxx | 36 +++++
- vcl/inc/vcl/outdev.hxx | 3 +
- vcl/inc/vcl/outfont.hxx | 4 -
- vcl/inc/vcl/salgdi.hxx | 2 +
- vcl/inc/vcl/vclenum.hxx | 21 +++
- vcl/source/gdi/outdev3.cxx | 8 +
- vcl/source/glyphs/gcach_ftyp.cxx | 84 ++++++++----
- vcl/source/glyphs/gcach_ftyp.hxx | 5 +-
- vcl/unx/headless/svpgdi.cxx | 4 +
- vcl/unx/headless/svpgdi.hxx | 1 +
- vcl/unx/headless/svppspgraphics.cxx | 29 +----
- vcl/unx/headless/svppspgraphics.hxx | 1 +
- vcl/unx/inc/pspgraphics.h | 1 +
- vcl/unx/inc/salgdi.h | 1 +
- vcl/unx/source/fontmanager/fontcache.cxx | 13 +--
- vcl/unx/source/fontmanager/fontconfig.cxx | 194 ++++++++++++++++++++--------
- vcl/unx/source/fontmanager/fontmanager.cxx | 8 +-
- vcl/unx/source/gdi/pspgraphics.cxx | 30 +----
- vcl/unx/source/gdi/salgdi3.cxx | 189 +++++++++++++++++++++++++++-
- vcl/unx/source/gdi/xlfd_extd.cxx | 3 -
- vcl/win/inc/salgdi.h | 1 +
- vcl/win/source/gdi/salgdi3.cxx | 6 +
- 23 files changed, 511 insertions(+), 170 deletions(-)
-
-diff --git a/vcl/inc/vcl/fontmanager.hxx b/vcl/inc/vcl/fontmanager.hxx
-index 3977b2f..a856533 100644
---- a/vcl/inc/vcl/fontmanager.hxx
-+++ b/vcl/inc/vcl/fontmanager.hxx
-@@ -137,6 +137,33 @@ enum type {
- };
- }
-
-+namespace fchint
-+{
-+enum type {
-+ Nohint = 0,
-+ Slight = 1,
-+ Medium = 2,
-+ Full = 3
-+};
-+}
-+
-+struct FontConfigHints
-+{
-+ fcstatus::type m_eEmbeddedbitmap;
-+ fcstatus::type m_eAntialias;
-+ fcstatus::type m_eAutoHint;
-+ fcstatus::type m_eHinting;
-+ fchint::type m_eHintStyle;
-+
-+ FontConfigHints() :
-+ m_eEmbeddedbitmap( fcstatus::isunset ),
-+ m_eAntialias( fcstatus::isunset ),
-+ m_eAutoHint( fcstatus::isunset ),
-+ m_eHinting( fcstatus::isunset ),
-+ m_eHintStyle( fchint::Full )
-+ {}
-+};
-+
- /*
- * the difference between FastPrintFontInfo and PrintFontInfo
- * is that the information in FastPrintFontInfo can usually
-@@ -162,8 +189,6 @@ struct FastPrintFontInfo
- weight::type m_eWeight;
- pitch::type m_ePitch;
- rtl_TextEncoding m_aEncoding;
-- fcstatus::type m_eEmbeddedbitmap;
-- fcstatus::type m_eAntialias;
- bool m_bSubsettable;
- bool m_bEmbeddable;
-
-@@ -175,9 +200,7 @@ struct FastPrintFontInfo
- m_eWidth( width::Unknown ),
- m_eWeight( weight::Unknown ),
- m_ePitch( pitch::Unknown ),
-- m_aEncoding( RTL_TEXTENCODING_DONTKNOW ),
-- m_eEmbeddedbitmap( fcstatus::isunset ),
-- m_eAntialias( fcstatus::isunset )
-+ m_aEncoding( RTL_TEXTENCODING_DONTKNOW )
- {}
- };
-
-@@ -294,9 +317,6 @@ class VCL_DLLPUBLIC PrintFontManager
- bool m_bHaveVerticalSubstitutedGlyphs;
- bool m_bUserOverride;
-
-- fcstatus::type m_eEmbeddedbitmap;
-- fcstatus::type m_eAntialias;
--
- std::map< sal_Unicode, sal_Int32 > m_aEncodingVector;
- std::map< sal_Unicode, rtl::OString > m_aNonEncoded;
-
-@@ -736,6 +756,7 @@ public:
- false else
- */
- bool matchFont( FastPrintFontInfo& rInfo, const com::sun::star::lang::Locale& rLocale );
-+ FontConfigHints getFontConfigHints(const FastPrintFontInfo& rInfo, int nSize, void (*subcallback)(void *));
-
- rtl::OUString Substitute( const rtl::OUString& rFontName, rtl::OUString& rMissingCodes,
- const rtl::OString& rLangAttrib, italic::type eItalic, weight::type eWeight,
-diff --git a/vcl/inc/vcl/impfont.hxx b/vcl/inc/vcl/impfont.hxx
-index 4942fb6..ce17c2e 100644
---- a/vcl/inc/vcl/impfont.hxx
-+++ b/vcl/inc/vcl/impfont.hxx
-@@ -133,6 +133,42 @@ public:
- bool operator==( const ImplFontMetric& ) const;
- };
-
-+// ------------------
-+// - ImplFontHints -
-+// ------------------
-+
-+class ImplFontHints
-+{
-+public:
-+ FontEmbeddedBitmap meEmbeddedBitmap; // whether the embedded bitmaps should be used
-+ FontAntiAlias meAntiAlias; // whether the font should be antialiased
-+ FontAutoHint meAutoHint; // whether the font should be autohinted
-+ FontHinting meHinting; // whether the font should be hinted
-+ FontHintStyle meHintStyle; // type of font hinting to be used
-+public:
-+ ImplFontHints() :
-+ meEmbeddedBitmap(EMBEDDEDBITMAP_DONTKNOW),
-+ meAntiAlias(ANTIALIAS_DONTKNOW),
-+ meAutoHint(AUTOHINT_DONTKNOW),
-+ meHinting(HINTING_DONTKNOW),
-+ meHintStyle(HINT_SLIGHT)
-+ {}
-+ ImplFontHints(FontEmbeddedBitmap eEmbeddedBitmap, FontAntiAlias eAntiAlias,
-+ FontAutoHint eAutoHint, FontHinting eHinting, FontHintStyle eHintStyle) :
-+ meEmbeddedBitmap(eEmbeddedBitmap),
-+ meAntiAlias(eAntiAlias),
-+ meAutoHint(eAutoHint),
-+ meHinting(eHinting),
-+ meHintStyle(eHintStyle)
-+ {}
-+ FontAutoHint GetUseAutoHint() const { return meAutoHint; }
-+ FontHintStyle GetHintStyle() const { return meHintStyle; }
-+ bool DontUseEmbeddedBitmaps() const { return meEmbeddedBitmap == EMBEDDEDBITMAP_FALSE; }
-+ bool DontUseAntiAlias() const { return meAntiAlias == ANTIALIAS_FALSE; }
-+ bool DontUseHinting() const { return (meHinting == HINTING_FALSE) || (GetHintStyle() == HINT_NONE); }
-+};
-+
-+
- // -------------------
- // - ImplFontCharMap -
- // -------------------
-diff --git a/vcl/inc/vcl/outdev.hxx b/vcl/inc/vcl/outdev.hxx
-index 7c2e73f..ae4d91b 100644
---- a/vcl/inc/vcl/outdev.hxx
-+++ b/vcl/inc/vcl/outdev.hxx
-@@ -76,6 +76,8 @@ class AlphaMask;
- class FontCharMap;
- class SalLayout;
- class ImplLayoutArgs;
-+class ImplFontHints;
-+class ImplFontAttributes;
- class VirtualDevice;
-
- namespace com {
-@@ -555,6 +557,7 @@ public:
-
- SAL_DLLPRIVATE static FontEmphasisMark ImplGetEmphasisMarkStyle( const Font& rFont );
- SAL_DLLPRIVATE static BOOL ImplIsUnderlineAbove( const Font& );
-+ SAL_DLLPRIVATE void ImplGetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const;
-
-
- // tells whether this output device is RTL in an LTR UI or LTR in a RTL UI
-diff --git a/vcl/inc/vcl/outfont.hxx b/vcl/inc/vcl/outfont.hxx
-index 7a682ce..80ea3fc 100644
---- a/vcl/inc/vcl/outfont.hxx
-+++ b/vcl/inc/vcl/outfont.hxx
-@@ -98,8 +98,6 @@ public: // TODO: create matching interface class
- bool IsDeviceFont() const { return mbDevice; }
- bool IsEmbeddable() const { return mbEmbeddable; }
- bool IsSubsettable() const { return mbSubsettable; }
-- FontEmbeddedBitmap UseEmbeddedBitmap() const { return meEmbeddedBitmap; }
-- FontAntiAlias UseAntiAlias() const { return meAntiAlias; }
-
- public: // TODO: hide members behind accessor methods
- String maMapNames; // List of family name aliass separated with ';'
-@@ -108,8 +106,6 @@ public: // TODO: hide members behind accessor methods
- bool mbDevice; // true: built in font
- bool mbSubsettable; // true: a subset of the font can be created
- bool mbEmbeddable; // true: the font can be embedded
-- FontEmbeddedBitmap meEmbeddedBitmap; // whether the embedded bitmaps should be used
-- FontAntiAlias meAntiAlias; // whether the font should be antialiased
- };
-
- // ----------------
-diff --git a/vcl/inc/vcl/salgdi.hxx b/vcl/inc/vcl/salgdi.hxx
-index 38cd84e..04676d8 100644
---- a/vcl/inc/vcl/salgdi.hxx
-+++ b/vcl/inc/vcl/salgdi.hxx
-@@ -234,6 +234,8 @@ public:
- void ReleaseFonts() { SetFont( NULL, 0 ); }
- // get the current font's metrics
- virtual void GetFontMetric( ImplFontMetricData* ) = 0;
-+ virtual void GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const = 0;
-+
- // get kernign pairs of the current font
- // return only PairCount if (pKernPairs == NULL)
- virtual ULONG GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs ) = 0;
-diff --git a/vcl/inc/vcl/vclenum.hxx b/vcl/inc/vcl/vclenum.hxx
-index afcce4c..d92a946 100644
---- a/vcl/inc/vcl/vclenum.hxx
-+++ b/vcl/inc/vcl/vclenum.hxx
-@@ -281,6 +281,27 @@ enum FontAntiAlias { ANTIALIAS_DONTKNOW, ANTIALIAS_FALSE, ANTIALIAS_TRUE };
-
- #endif
-
-+#ifndef ENUM_FONTAUTOHINT_DECLARED
-+#define ENUM_FONTAUTOHINT_DECLARED
-+
-+enum FontAutoHint { AUTOHINT_DONTKNOW, AUTOHINT_FALSE, AUTOHINT_TRUE };
-+
-+#endif
-+
-+#ifndef ENUM_FONTHINTING_DECLARED
-+#define ENUM_FONTHINTING_DECLARED
-+
-+enum FontHinting { HINTING_DONTKNOW, HINTING_FALSE, HINTING_TRUE };
-+
-+#endif
-+
-+#ifndef ENUM_FONTHINTSTYLE_DECLARED
-+#define ENUM_FONTHINTSTYLE_DECLARED
-+
-+enum FontHintStyle { HINT_NONE, HINT_SLIGHT, HINT_MEDIUM, HINT_FULL };
-+
-+#endif
-+
- // ------------------------------------------------------------
-
- #ifndef ENUM_KEYFUNCTYPE_DECLARED
-diff --git a/vcl/source/gdi/outdev3.cxx b/vcl/source/gdi/outdev3.cxx
-index a37d086..c743552 100644
---- a/vcl/source/gdi/outdev3.cxx
-+++ b/vcl/source/gdi/outdev3.cxx
-@@ -7703,6 +7703,14 @@ BOOL OutputDevice::IsFontAvailable( const String& rFontName ) const
-
- // -----------------------------------------------------------------------
-
-+void OutputDevice::ImplGetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints &rHints) const
-+{
-+ if ( mpGraphics )
-+ mpGraphics->GetFontHints( rFontAttributes, nSize, rHints );
-+}
-+
-+// -----------------------------------------------------------------------
-+
- FontMetric OutputDevice::GetFontMetric() const
- {
- DBG_TRACE( "OutputDevice::GetFontMetric()" );
-diff --git a/vcl/source/glyphs/gcach_ftyp.cxx b/vcl/source/glyphs/gcach_ftyp.cxx
-index 93af9db..92fb890 100644
---- a/vcl/source/glyphs/gcach_ftyp.cxx
-+++ b/vcl/source/glyphs/gcach_ftyp.cxx
-@@ -40,6 +40,7 @@
- #include "vcl/impfont.hxx"
- #include "vcl/bitmap.hxx"
- #include "vcl/bmpacc.hxx"
-+#include "vcl/virdev.hxx"
-
- #include "tools/poly.hxx"
- #include "basegfx/matrix/b2dhommatrix.hxx"
-@@ -620,9 +621,6 @@ long FreetypeManager::AddFontDir( const String& rUrlName )
- aDFA.mbSubsettable= false;
- aDFA.mbEmbeddable = false;
-
-- aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
-- aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
--
- FT_Done_Face( aFaceFT );
- AddFontFile( aCFileName, nFaceNum, ++mnNextFontId, aDFA, NULL );
- ++nCount;
-@@ -702,6 +700,7 @@ FreetypeServerFont::FreetypeServerFont( const ImplFontSelectData& rFSD, FtFontIn
- : ServerFont( rFSD ),
- mnPrioEmbedded(nDefaultPrioEmbedded),
- mnPrioAntiAlias(nDefaultPrioAntiAlias),
-+ mnPrioAutoHint(nDefaultPrioAutoHint),
- mpFontInfo( pFI ),
- maFaceFT( NULL ),
- maSizeFT( NULL ),
-@@ -835,42 +834,69 @@ FreetypeServerFont::FreetypeServerFont( const ImplFontSelectData& rFSD, FtFontIn
-
- mbArtItalic = (rFSD.meItalic != ITALIC_NONE && pFI->GetFontAttributes().GetSlant() == ITALIC_NONE);
- mbArtBold = (rFSD.meWeight > WEIGHT_MEDIUM && pFI->GetFontAttributes().GetWeight() <= WEIGHT_MEDIUM);
--
-- //static const int TT_CODEPAGE_RANGE_874 = (1L << 16); // Thai
-- //static const int TT_CODEPAGE_RANGE_932 = (1L << 17); // JIS/Japan
-- //static const int TT_CODEPAGE_RANGE_936 = (1L << 18); // Chinese: Simplified
-- //static const int TT_CODEPAGE_RANGE_949 = (1L << 19); // Korean Wansung
-- //static const int TT_CODEPAGE_RANGE_950 = (1L << 20); // Chinese: Traditional
-- //static const int TT_CODEPAGE_RANGE_1361 = (1L << 21); // Korean Johab
-- static const int TT_CODEPAGE_RANGES1_CJKT = 0x3F0000; // all of the above
-- const TT_OS2* pOs2 = (const TT_OS2*)FT_Get_Sfnt_Table( maFaceFT, ft_sfnt_os2 );
-- if ((pOs2) && (pOs2->ulCodePageRange1 & TT_CODEPAGE_RANGES1_CJKT )
-+ mbUseGamma = false;
-+ if (mbArtBold)
-+ {
-+ //static const int TT_CODEPAGE_RANGE_874 = (1L << 16); // Thai
-+ //static const int TT_CODEPAGE_RANGE_932 = (1L << 17); // JIS/Japan
-+ //static const int TT_CODEPAGE_RANGE_936 = (1L << 18); // Chinese: Simplified
-+ //static const int TT_CODEPAGE_RANGE_949 = (1L << 19); // Korean Wansung
-+ //static const int TT_CODEPAGE_RANGE_950 = (1L << 20); // Chinese: Traditional
-+ //static const int TT_CODEPAGE_RANGE_1361 = (1L << 21); // Korean Johab
-+ static const int TT_CODEPAGE_RANGES1_CJKT = 0x3F0000; // all of the above
-+ const TT_OS2* pOs2 = (const TT_OS2*)FT_Get_Sfnt_Table( maFaceFT, ft_sfnt_os2 );
-+ if ((pOs2) && (pOs2->ulCodePageRange1 & TT_CODEPAGE_RANGES1_CJKT )
- && rFSD.mnHeight < 20)
- mbUseGamma = true;
-- else
-- mbUseGamma = false;
-+ }
-
-- if (mbUseGamma)
-+ ImplFontHints aHints;
-+ VirtualDevice vdev( 1 );
-+ vdev.ImplGetFontHints( pFI->GetFontAttributes(), mnWidth, aHints );
-+
-+ FontAutoHint eHint = aHints.GetUseAutoHint();
-+ if (eHint == AUTOHINT_DONTKNOW)
-+ eHint = mbUseGamma ? AUTOHINT_TRUE : AUTOHINT_FALSE;
-+
-+ if (eHint == AUTOHINT_TRUE)
- mnLoadFlags |= FT_LOAD_FORCE_AUTOHINT;
-
- if( (mnSin != 0) && (mnCos != 0) ) // hinting for 0/90/180/270 degrees only
- mnLoadFlags |= FT_LOAD_NO_HINTING;
- mnLoadFlags |= FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH; //#88334#
-
-- if (mpFontInfo->DontUseAntiAlias())
-- mnPrioAntiAlias = 0;
-- if (mpFontInfo->DontUseEmbeddedBitmaps())
-- mnPrioEmbedded = 0;
-+ if (aHints.DontUseAntiAlias())
-+ mnPrioAntiAlias = 0;
-+ if (aHints.DontUseEmbeddedBitmaps())
-+ mnPrioEmbedded = 0;
-+ if (aHints.DontUseHinting())
-+ mnPrioAutoHint = 0;
-
- #if (FTVERSION >= 2005) || defined(TT_CONFIG_OPTION_BYTECODE_INTERPRETER)
-- if( nDefaultPrioAutoHint <= 0 )
-+ if( mnPrioAutoHint <= 0 )
- #endif
- mnLoadFlags |= FT_LOAD_NO_HINTING;
-
--#ifdef FT_LOAD_TARGET_LIGHT
-- // enable "light hinting" if available
-+#if defined(FT_LOAD_TARGET_LIGHT) && defined(FT_LOAD_TARGET_NORMAL)
- if( !(mnLoadFlags & FT_LOAD_NO_HINTING) && (nFTVERSION >= 2103))
-- mnLoadFlags |= FT_LOAD_TARGET_LIGHT;
-+ {
-+ mnLoadFlags |= FT_LOAD_TARGET_NORMAL;
-+ switch (aHints.GetHintStyle())
-+ {
-+ case HINT_NONE:
-+ mnLoadFlags |= FT_LOAD_NO_HINTING;
-+ break;
-+ case HINT_SLIGHT:
-+ mnLoadFlags |= FT_LOAD_TARGET_LIGHT;
-+ break;
-+ case HINT_MEDIUM:
-+ break;
-+ case HINT_FULL:
-+ default:
-+ break;
-+ }
-+ }
-+
- #endif
-
- if( ((mnCos != 0) && (mnSin != 0)) || (mnPrioEmbedded <= 0) )
-@@ -1228,13 +1254,15 @@ int FreetypeServerFont::FixupGlyphIndex( int nGlyphIndex, sal_UCS4 aChar ) const
- }
- }
-
--#if !defined(TT_CONFIG_OPTION_BYTECODE_INTERPRETER)
-+#if 0
- // #95556# autohinting not yet optimized for non-western glyph styles
- if( !(mnLoadFlags & (FT_LOAD_NO_HINTING | FT_LOAD_FORCE_AUTOHINT) )
- && ( (aChar >= 0x0600 && aChar < 0x1E00) // south-east asian + arabic
- ||(aChar >= 0x2900 && aChar < 0xD800) // CJKV
- ||(aChar >= 0xF800) ) ) // presentation + symbols
-+ {
- nGlyphFlags |= GF_UNHINTED;
-+ }
- #endif
-
- if( nGlyphIndex != 0 )
-@@ -1376,11 +1404,11 @@ bool FreetypeServerFont::GetGlyphBitmap1( int nGlyphIndex, RawBitmap& rRawBitmap
- #if (FTVERSION >= 2002)
- // for 0/90/180/270 degree fonts enable autohinting even if not advisable
- // non-hinted and non-antialiased bitmaps just look too ugly
-- if( (mnCos==0 || mnSin==0) && (nDefaultPrioAutoHint > 0) )
-+ if( (mnCos==0 || mnSin==0) && (mnPrioAutoHint > 0) )
- nLoadFlags &= ~FT_LOAD_NO_HINTING;
- #endif
-
-- if( mnPrioEmbedded <= nDefaultPrioAutoHint )
-+ if( mnPrioEmbedded <= mnPrioAutoHint )
- nLoadFlags |= FT_LOAD_NO_BITMAP;
-
- FT_Error rc = -1;
-@@ -1545,7 +1573,7 @@ bool FreetypeServerFont::GetGlyphBitmap8( int nGlyphIndex, RawBitmap& rRawBitmap
- // autohinting in FT<=2.0.4 makes antialiased glyphs look worse
- nLoadFlags |= FT_LOAD_NO_HINTING;
- #else
-- if( (nGlyphFlags & GF_UNHINTED) || (nDefaultPrioAutoHint < mnPrioAntiAlias) )
-+ if( (nGlyphFlags & GF_UNHINTED) || (mnPrioAutoHint < mnPrioAntiAlias) )
- nLoadFlags |= FT_LOAD_NO_HINTING;
- #endif
-
-diff --git a/vcl/source/glyphs/gcach_ftyp.hxx b/vcl/source/glyphs/gcach_ftyp.hxx
-index 3f8a891..93172fd 100644
---- a/vcl/source/glyphs/gcach_ftyp.hxx
-+++ b/vcl/source/glyphs/gcach_ftyp.hxx
-@@ -85,10 +85,6 @@ public:
- int GetFaceNum() const { return mnFaceNum; }
- int GetSynthetic() const { return mnSynthetic; }
- sal_IntPtr GetFontId() const { return mnFontId; }
-- bool DontUseAntiAlias() const
-- { return maDevFontAttributes.UseAntiAlias() == ANTIALIAS_FALSE; }
-- bool DontUseEmbeddedBitmaps() const
-- { return maDevFontAttributes.UseEmbeddedBitmap() == EMBEDDEDBITMAP_FALSE; }
- bool IsSymbolFont() const { return maDevFontAttributes.IsSymbolFont(); }
- const ImplFontAttributes& GetFontAttributes() const { return maDevFontAttributes; }
-
-@@ -213,6 +209,7 @@ private:
- int mnWidth;
- int mnPrioEmbedded;
- int mnPrioAntiAlias;
-+ int mnPrioAutoHint;
- FtFontInfo* mpFontInfo;
- FT_Int mnLoadFlags;
- double mfStretch;
-diff --git a/vcl/unx/headless/svpgdi.cxx b/vcl/unx/headless/svpgdi.cxx
-index d34387e..c06688d 100644
---- a/vcl/unx/headless/svpgdi.cxx
-+++ b/vcl/unx/headless/svpgdi.cxx
-@@ -584,3 +584,7 @@ bool SvpSalGraphics::supportsOperation( OutDevSupportType ) const
- {
- return false;
- }
-+
-+void SvpSalGraphics::GetFontHints( const ImplFontAttributes& , int , ImplFontHints& ) const
-+{
-+}
-diff --git a/vcl/unx/headless/svpgdi.hxx b/vcl/unx/headless/svpgdi.hxx
-index 2f3458d..ff3623e 100644
---- a/vcl/unx/headless/svpgdi.hxx
-+++ b/vcl/unx/headless/svpgdi.hxx
-@@ -167,6 +167,7 @@ public:
-
- virtual SystemGraphicsData GetGraphicsData() const;
- virtual SystemFontData GetSysFontData( int nFallbacklevel ) const;
-+ virtual void GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const;
- };
-
- #endif
-diff --git a/vcl/unx/headless/svppspgraphics.cxx b/vcl/unx/headless/svppspgraphics.cxx
-index c9e4bfb..b1aeec2 100644
---- a/vcl/unx/headless/svppspgraphics.cxx
-+++ b/vcl/unx/headless/svppspgraphics.cxx
-@@ -1160,32 +1160,6 @@ ImplDevFontAttributes PspGraphics::Info2DevFontAttributes( const psp::FastPrintF
- aDFA.mePitch = ToFontPitch (rInfo.m_ePitch);
- aDFA.mbSymbolFlag = (rInfo.m_aEncoding == RTL_TEXTENCODING_SYMBOL);
-
-- switch (rInfo.m_eEmbeddedbitmap)
-- {
-- default:
-- aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
-- break;
-- case psp::fcstatus::istrue:
-- aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_TRUE;
-- break;
-- case psp::fcstatus::isfalse:
-- aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_FALSE;
-- break;
-- }
--
-- switch (rInfo.m_eAntialias)
-- {
-- default:
-- aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
-- break;
-- case psp::fcstatus::istrue:
-- aDFA.meAntiAlias = ANTIALIAS_TRUE;
-- break;
-- case psp::fcstatus::isfalse:
-- aDFA.meAntiAlias = ANTIALIAS_FALSE;
-- break;
-- }
--
- switch( rInfo.m_eType )
- {
- case psp::fonttype::Builtin:
-@@ -1392,3 +1366,6 @@ SystemGraphicsData PspGraphics::GetGraphicsData() const
- return aRes;
- }
-
-+void PspGraphics::GetFontHints( const ImplFontAttributes& , int , ImplFontHints& ) const
-+{
-+}
-diff --git a/vcl/unx/headless/svppspgraphics.hxx b/vcl/unx/headless/svppspgraphics.hxx
-index e41be68..223d7a5 100644
---- a/vcl/unx/headless/svppspgraphics.hxx
-+++ b/vcl/unx/headless/svppspgraphics.hxx
-@@ -187,6 +187,7 @@ public:
-
- virtual SystemGraphicsData GetGraphicsData() const;
- virtual SystemFontData GetSysFontData( int nFallbacklevel ) const;
-+ virtual void GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const;
- };
-
- #endif // _SVP_PSPGRAPHICS_HXX
-diff --git a/vcl/unx/inc/pspgraphics.h b/vcl/unx/inc/pspgraphics.h
-index 751c006..714081c 100644
---- a/vcl/unx/inc/pspgraphics.h
-+++ b/vcl/unx/inc/pspgraphics.h
-@@ -103,6 +103,7 @@ public:
- virtual void SetTextColor( SalColor nSalColor );
- virtual USHORT SetFont( ImplFontSelectData*, int nFallbackLevel );
- virtual void GetFontMetric( ImplFontMetricData* );
-+ virtual void GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const;
- virtual ULONG GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
- virtual ImplFontCharMap* GetImplFontCharMap() const;
- virtual void GetDevFontList( ImplDevFontList* );
-diff --git a/vcl/unx/inc/salgdi.h b/vcl/unx/inc/salgdi.h
-index f749479..5947012 100644
---- a/vcl/unx/inc/salgdi.h
-+++ b/vcl/unx/inc/salgdi.h
-@@ -250,6 +250,7 @@ public:
- virtual void SetTextColor( SalColor nSalColor );
- virtual USHORT SetFont( ImplFontSelectData*, int nFallbackLevel );
- virtual void GetFontMetric( ImplFontMetricData* );
-+ virtual void GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const;
- virtual ULONG GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
- virtual ImplFontCharMap* GetImplFontCharMap() const;
- virtual void GetDevFontList( ImplDevFontList* );
-diff --git a/vcl/unx/source/fontmanager/fontcache.cxx b/vcl/unx/source/fontmanager/fontcache.cxx
-index 5caad39..44b109d 100644
---- a/vcl/unx/source/fontmanager/fontcache.cxx
-+++ b/vcl/unx/source/fontmanager/fontcache.cxx
-@@ -212,9 +212,9 @@ void FontCache::flush()
- aLine.Append( ';' );
- aLine.Append( (*it)->m_bUserOverride ? "1" : "0" );
- aLine.Append( ';' );
-- aLine.Append( ByteString::CreateFromInt32( (*it)->m_eEmbeddedbitmap ) );
-+ aLine.Append( ByteString::CreateFromInt32( 0 ) );
- aLine.Append( ';' );
-- aLine.Append( ByteString::CreateFromInt32( (*it)->m_eAntialias ) );
-+ aLine.Append( ByteString::CreateFromInt32( 0 ) );
-
- switch( (*it)->m_eType )
- {
-@@ -424,9 +424,6 @@ void FontCache::read()
- = atoi( pLine + nTokenPos[14] );
- pFont->m_bUserOverride
- = (atoi( pLine + nTokenPos[15] ) != 0);
-- pFont->m_eEmbeddedbitmap
-- = (fcstatus::type)atoi(pLine+nTokenPos[16]);
-- pFont->m_eAntialias = (fcstatus::type)atoi(pLine+nTokenPos[17]);
- int nStyleTokenNr = 18;
- switch( eType )
- {
-@@ -558,8 +555,6 @@ void FontCache::copyPrintFont( const PrintFontManager::PrintFont* pFrom, PrintFo
- pTo->m_nYMax = pFrom->m_nYMax;
- pTo->m_bHaveVerticalSubstitutedGlyphs = pFrom->m_bHaveVerticalSubstitutedGlyphs;
- pTo->m_bUserOverride = pFrom->m_bUserOverride;
-- pTo->m_eEmbeddedbitmap = pFrom->m_eEmbeddedbitmap;
-- pTo->m_eAntialias = pFrom->m_eAntialias;
- }
-
- /*
-@@ -621,9 +616,7 @@ bool FontCache::equalsPrintFont( const PrintFontManager::PrintFont* pLeft, Print
- pRight->m_nXMax != pLeft->m_nXMax ||
- pRight->m_nYMax != pLeft->m_nYMax ||
- pRight->m_bHaveVerticalSubstitutedGlyphs != pLeft->m_bHaveVerticalSubstitutedGlyphs ||
-- pRight->m_bUserOverride != pLeft->m_bUserOverride ||
-- pRight->m_eEmbeddedbitmap != pLeft->m_eEmbeddedbitmap ||
-- pRight->m_eAntialias != pLeft->m_eAntialias
-+ pRight->m_bUserOverride != pLeft->m_bUserOverride
- )
- return false;
- std::list< int >::const_iterator lit, rit;
-diff --git a/vcl/unx/source/fontmanager/fontconfig.cxx b/vcl/unx/source/fontmanager/fontconfig.cxx
-index ece84fb..12a0e77 100644
---- a/vcl/unx/source/fontmanager/fontconfig.cxx
-+++ b/vcl/unx/source/fontmanager/fontconfig.cxx
-@@ -117,6 +117,7 @@ class FontCfgWrapper
- FcBool (*m_pFcConfigAppFontAddDir)(FcConfig*, const FcChar8*);
- FcBool (*m_pFcConfigSubstitute)(FcConfig*,FcPattern*,FcMatchKind);
- FcBool (*m_pFcPatternAddInteger)(FcPattern*,const char*,int);
-+ FcBool (*m_pFcPatternAddDouble)(FcPattern*,const char*,double);
- FcBool (*m_pFcPatternAddBool)(FcPattern*,const char*,FcBool);
- FcBool (*m_pFcPatternAddCharSet)(FcPattern*,const char*,const FcCharSet*);
- FcBool (*m_pFcPatternAddString)(FcPattern*,const char*,const FcChar8*);
-@@ -220,6 +221,8 @@ public:
- { return m_pFcConfigSubstitute( pConfig, pPattern, eKind ); }
- FcBool FcPatternAddInteger( FcPattern* pPattern, const char* pObject, int nValue )
- { return m_pFcPatternAddInteger( pPattern, pObject, nValue ); }
-+ FcBool FcPatternAddDouble( FcPattern* pPattern, const char* pObject, double nValue )
-+ { return m_pFcPatternAddDouble( pPattern, pObject, nValue ); }
- FcBool FcPatternAddString( FcPattern* pPattern, const char* pObject, const FcChar8* pString )
- { return m_pFcPatternAddString( pPattern, pObject, pString ); }
- FcBool FcPatternAddBool( FcPattern* pPattern, const char* pObject, bool nValue )
-@@ -231,7 +234,9 @@ public:
- { return m_pFcFreeTypeCharIndex ? m_pFcFreeTypeCharIndex( face, ucs4 ) : 0; }
-
- public: // TODO: cleanup
-- std::hash_map< rtl::OString, rtl::OString, rtl::OStringHash > m_aFontconfigNameToLocalized;
-+ FcResult FamilyFromPattern(FcPattern* pPattern, FcChar8 **family);
-+ std::hash_map< rtl::OString, rtl::OString, rtl::OStringHash > m_aFontNameToLocalized;
-+ std::hash_map< rtl::OString, rtl::OString, rtl::OStringHash > m_aLocalizedToCanonical;
- };
-
- oslGenericFunction FontCfgWrapper::loadSymbol( const char* pSymbol )
-@@ -321,6 +326,8 @@ FontCfgWrapper::FontCfgWrapper()
- loadSymbol( "FcConfigSubstitute" );
- m_pFcPatternAddInteger = (FcBool(*)(FcPattern*,const char*,int))
- loadSymbol( "FcPatternAddInteger" );
-+ m_pFcPatternAddDouble = (FcBool(*)(FcPattern*,const char*,double))
-+ loadSymbol( "FcPatternAddDouble" );
- m_pFcPatternAddBool = (FcBool(*)(FcPattern*,const char*,FcBool))
- loadSymbol( "FcPatternAddBool" );
- m_pFcPatternAddCharSet = (FcBool(*)(FcPattern*,const char*,const FcCharSet *))
-@@ -371,6 +378,7 @@ FontCfgWrapper::FontCfgWrapper()
- m_pFcDefaultSubstitute &&
- m_pFcConfigSubstitute &&
- m_pFcPatternAddInteger &&
-+ m_pFcPatternAddDouble &&
- m_pFcPatternAddCharSet &&
- m_pFcPatternAddBool &&
- m_pFcPatternAddString
-@@ -503,53 +511,52 @@ namespace
-
- return candidate;
- }
-+}
-
-+FcResult FontCfgWrapper::FamilyFromPattern(FcPattern* pPattern, FcChar8 **family)
-+{
-+ FcChar8 *origfamily;
-+ FcResult eFamilyRes = FcPatternGetString( pPattern, FC_FAMILY, 0, &origfamily );
-+ *family = origfamily;
-
-- FcResult lcl_FamilyFromPattern(FontCfgWrapper& rWrapper, FcPattern* pPattern, FcChar8 **family,
-- std::hash_map< rtl::OString, rtl::OString, rtl::OStringHash > &aFontconfigNameToLocalized)
-+ if( eFamilyRes == FcResultMatch)
- {
-- FcChar8 *origfamily;
-- FcResult eFamilyRes = rWrapper.FcPatternGetString( pPattern, FC_FAMILY, 0, &origfamily );
-- *family = origfamily;
--
-- if( eFamilyRes == FcResultMatch)
-+ FcChar8* familylang = NULL;
-+ if (FcPatternGetString( pPattern, FC_FAMILYLANG, 0, &familylang ) == FcResultMatch)
- {
-- FcChar8* familylang = NULL;
-- if (rWrapper.FcPatternGetString( pPattern, FC_FAMILYLANG, 0, &familylang ) == FcResultMatch)
-+ std::vector< lang_and_family > lang_and_families;
-+ lang_and_families.push_back(lang_and_family(familylang, *family));
-+ int k = 1;
-+ while (1)
- {
-- std::vector< lang_and_family > lang_and_families;
-+ if (FcPatternGetString( pPattern, FC_FAMILYLANG, k, &familylang ) != FcResultMatch)
-+ break;
-+ if (FcPatternGetString( pPattern, FC_FAMILY, k, family ) != FcResultMatch)
-+ break;
- lang_and_families.push_back(lang_and_family(familylang, *family));
-- int k = 1;
-- while (1)
-- {
-- if (rWrapper.FcPatternGetString( pPattern, FC_FAMILYLANG, k, &familylang ) != FcResultMatch)
-- break;
-- if (rWrapper.FcPatternGetString( pPattern, FC_FAMILY, k, family ) != FcResultMatch)
-- break;
-- lang_and_families.push_back(lang_and_family(familylang, *family));
-- ++k;
-- }
--
-- //possible to-do, sort by UILocale instead of process locale
-- rtl_Locale* pLoc;
-- osl_getProcessLocale(&pLoc);
-- localizedsorter aSorter(pLoc);
-- *family = aSorter.bestname(lang_and_families);
--
-- std::vector<lang_and_family>::const_iterator aEnd = lang_and_families.end();
-- for (std::vector<lang_and_family>::const_iterator aIter = lang_and_families.begin(); aIter != aEnd; ++aIter)
-- {
-- const char *candidate = (const char*)(aIter->second);
-- if (rtl_str_compare(candidate, (const char*)(*family)) != 0)
-- aFontconfigNameToLocalized[OString(candidate)] = OString((const char*)(*family));
-- }
-+ ++k;
-+ }
-+
-+ //possible to-do, sort by UILocale instead of process locale
-+ rtl_Locale* pLoc;
-+ osl_getProcessLocale(&pLoc);
-+ localizedsorter aSorter(pLoc);
-+ *family = aSorter.bestname(lang_and_families);
-+
-+ std::vector<lang_and_family>::const_iterator aEnd = lang_and_families.end();
-+ for (std::vector<lang_and_family>::const_iterator aIter = lang_and_families.begin(); aIter != aEnd; ++aIter)
-+ {
-+ const char *candidate = (const char*)(aIter->second);
-+ if (rtl_str_compare(candidate, (const char*)(*family)) != 0)
-+ m_aFontNameToLocalized[OString(candidate)] = OString((const char*)(*family));
- }
-+ if (rtl_str_compare((const char*)origfamily, (const char*)(*family)) != 0)
-+ m_aLocalizedToCanonical[OString((const char*)(*family))] = OString((const char*)origfamily);
- }
--
-- return eFamilyRes;
- }
--}
-
-+ return eFamilyRes;
-+}
-
- /*
- * PrintFontManager::initFontconfig
-@@ -585,18 +592,16 @@ int PrintFontManager::countFontconfigFonts( std::hash_map<rtl::OString, int, rtl
- int weight = 0;
- int spacing = 0;
- int nCollectionEntry = -1;
-- FcBool outline = false, embitmap = true, antialias = true;
-+ FcBool outline = false;
-
- FcResult eFileRes = rWrapper.FcPatternGetString( pFSet->fonts[i], FC_FILE, 0, &file );
-- FcResult eFamilyRes = lcl_FamilyFromPattern(rWrapper, pFSet->fonts[i], &family, rWrapper.m_aFontconfigNameToLocalized );
-+ FcResult eFamilyRes = rWrapper.FamilyFromPattern( pFSet->fonts[i], &family );
- FcResult eStyleRes = rWrapper.FcPatternGetString( pFSet->fonts[i], FC_STYLE, 0, &style );
- FcResult eSlantRes = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_SLANT, 0, &slant );
- FcResult eWeightRes = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_WEIGHT, 0, &weight );
- FcResult eSpacRes = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_SPACING, 0, &spacing );
- FcResult eOutRes = rWrapper.FcPatternGetBool( pFSet->fonts[i], FC_OUTLINE, 0, &outline );
- FcResult eIndexRes = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_INDEX, 0, &nCollectionEntry );
-- FcResult eEmbeddedBitmap = rWrapper.FcPatternGetBool( pFSet->fonts[i], FC_EMBEDDED_BITMAP, 0, &embitmap );
-- FcResult eAntialias = rWrapper.FcPatternGetBool( pFSet->fonts[i], FC_ANTIALIAS, 0, &antialias );
-
- if( eFileRes != FcResultMatch || eFamilyRes != FcResultMatch || eOutRes != FcResultMatch )
- continue;
-@@ -739,15 +744,6 @@ int PrintFontManager::countFontconfigFonts( std::hash_map<rtl::OString, int, rtl
- {
- pUpdate->m_aStyleName = OStringToOUString( OString( (sal_Char*)style ), RTL_TEXTENCODING_UTF8 );
- }
-- if( eEmbeddedBitmap == FcResultMatch )
-- {
-- pUpdate->m_eEmbeddedbitmap = embitmap ? fcstatus::istrue : fcstatus::isfalse;
-- }
-- if( eAntialias == FcResultMatch )
-- {
-- pUpdate->m_eAntialias = antialias ? fcstatus::istrue : fcstatus::isfalse;
-- }
--
-
- // update font cache
- m_pFontCache->updateFontCacheEntry( pUpdate, false );
-@@ -952,8 +948,8 @@ rtl::OUString PrintFontManager::Substitute(const rtl::OUString& rFontName,
- if( eFileRes == FcResultMatch )
- {
- OString sFamily((sal_Char*)family);
-- std::hash_map< rtl::OString, rtl::OString, rtl::OStringHash >::const_iterator aI = rWrapper.m_aFontconfigNameToLocalized.find(sFamily);
-- if (aI != rWrapper.m_aFontconfigNameToLocalized.end())
-+ std::hash_map< rtl::OString, rtl::OString, rtl::OStringHash >::const_iterator aI = rWrapper.m_aFontNameToLocalized.find(sFamily);
-+ if (aI != rWrapper.m_aFontNameToLocalized.end())
- sFamily = aI->second;
- aName = rtl::OStringToOUString( sFamily, RTL_TEXTENCODING_UTF8 );
- }
-@@ -984,6 +980,98 @@ rtl::OUString PrintFontManager::Substitute(const rtl::OUString& rFontName,
- return aName;
- }
-
-+FontConfigHints PrintFontManager::getFontConfigHints(
-+ const FastPrintFontInfo& rInfo, int nSize, void (*subcallback)(void *) )
-+{
-+ FontConfigHints aHints;
-+#ifdef ENABLE_FONTCONFIG
-+ FontCfgWrapper& rWrapper = FontCfgWrapper::get();
-+ if( ! rWrapper.isValid() )
-+ return aHints;
-+
-+ FcConfig* pConfig = rWrapper.FcConfigGetCurrent();
-+ FcPattern* pPattern = rWrapper.FcPatternCreate();
-+
-+ OString sFamily = OUStringToOString( rInfo.m_aFamilyName, RTL_TEXTENCODING_UTF8 );
-+
-+ std::hash_map< rtl::OString, rtl::OString, rtl::OStringHash >::const_iterator aI = rWrapper.m_aLocalizedToCanonical.find(sFamily);
-+ if (aI != rWrapper.m_aLocalizedToCanonical.end())
-+ sFamily = aI->second;
-+ if( sFamily.getLength() )
-+ rWrapper.FcPatternAddString( pPattern, FC_FAMILY, (FcChar8*)sFamily.getStr() );
-+
-+ addtopattern(rWrapper, pPattern, rInfo.m_eItalic, rInfo.m_eWeight, rInfo.m_eWidth, rInfo.m_ePitch);
-+ rWrapper.FcPatternAddDouble( pPattern, FC_PIXEL_SIZE, nSize);
-+
-+ FcBool embitmap = true, antialias = true, autohint = true, hinting = true;
-+ int hintstyle = FC_HINT_FULL;
-+
-+ rWrapper.FcConfigSubstitute( pConfig, pPattern, FcMatchPattern );
-+ if (subcallback) subcallback(pPattern);
-+ rWrapper.FcDefaultSubstitute( pPattern );
-+
-+ FcResult eResult = FcResultNoMatch;
-+ FcFontSet *pFontSet = rWrapper.getFontSet();
-+ FcPattern* pResult = rWrapper.FcFontSetMatch( pConfig, &pFontSet, 1, pPattern, &eResult );
-+ if( pResult )
-+ {
-+ FcFontSet* pSet = rWrapper.FcFontSetCreate();
-+ rWrapper.FcFontSetAdd( pSet, pResult );
-+ if( pSet->nfont > 0 )
-+ {
-+ FcResult eEmbeddedBitmap = rWrapper.FcPatternGetBool(pSet->fonts[0],
-+ FC_EMBEDDED_BITMAP, 0, &embitmap);
-+ FcResult eAntialias = rWrapper.FcPatternGetBool(pSet->fonts[0],
-+ FC_ANTIALIAS, 0, &antialias);
-+ FcResult eAutoHint = rWrapper.FcPatternGetBool(pSet->fonts[0],
-+ FC_AUTOHINT, 0, &autohint);
-+ FcResult eHinting = rWrapper.FcPatternGetBool(pSet->fonts[0],
-+ FC_HINTING, 0, &hinting);
-+ FcResult eHintStyle = rWrapper.FcPatternGetInteger(pSet->fonts[0],
-+ FC_HINT_STYLE, 0, &hintstyle);
-+
-+ if( eEmbeddedBitmap == FcResultMatch )
-+ aHints.m_eEmbeddedbitmap = embitmap ? fcstatus::istrue : fcstatus::isfalse;
-+ if( eAntialias == FcResultMatch )
-+ aHints.m_eAntialias = antialias ? fcstatus::istrue : fcstatus::isfalse;
-+ if( eAutoHint == FcResultMatch )
-+ aHints.m_eAutoHint = autohint ? fcstatus::istrue : fcstatus::isfalse;
-+ if( eHinting == FcResultMatch )
-+ aHints.m_eHinting = hinting ? fcstatus::istrue : fcstatus::isfalse;
-+ if (eHintStyle != FcResultMatch)
-+ aHints.m_eHintStyle = fchint::Full;
-+ else
-+ {
-+ switch (hintstyle)
-+ {
-+ case FC_HINT_NONE:
-+ aHints.m_eHintStyle = fchint::Nohint;
-+ break;
-+ case FC_HINT_SLIGHT:
-+ aHints.m_eHintStyle = fchint::Slight;
-+ break;
-+ case FC_HINT_MEDIUM:
-+ aHints.m_eHintStyle = fchint::Medium;
-+ break;
-+ case FC_HINT_FULL:
-+ default:
-+ aHints.m_eHintStyle = fchint::Full;
-+ break;
-+ }
-+ }
-+ }
-+ // info: destroying the pSet destroys pResult implicitly
-+ // since pResult was "added" to pSet
-+ rWrapper.FcFontSetDestroy( pSet );
-+ }
-+
-+ // cleanup
-+ rWrapper.FcPatternDestroy( pPattern );
-+
-+#endif
-+ return aHints;
-+}
-+
- bool PrintFontManager::matchFont( FastPrintFontInfo& rInfo, const com::sun::star::lang::Locale& rLocale )
- {
- FontCfgWrapper& rWrapper = FontCfgWrapper::get();
-diff --git a/vcl/unx/source/fontmanager/fontmanager.cxx b/vcl/unx/source/fontmanager/fontmanager.cxx
-index 8ac7705..3151c20 100644
---- a/vcl/unx/source/fontmanager/fontmanager.cxx
-+++ b/vcl/unx/source/fontmanager/fontmanager.cxx
-@@ -353,9 +353,7 @@ PrintFontManager::PrintFont::PrintFont( fonttype::type eType ) :
- m_nXMax( 0 ),
- m_nYMax( 0 ),
- m_bHaveVerticalSubstitutedGlyphs( false ),
-- m_bUserOverride( false ),
-- m_eEmbeddedbitmap( fcstatus::isunset ),
-- m_eAntialias( fcstatus::isunset )
-+ m_bUserOverride( false )
- {
- }
-
-@@ -2632,8 +2630,6 @@ void PrintFontManager::fillPrintFontInfo( PrintFont* pFont, FastPrintFontInfo& r
- rInfo.m_eWeight = pFont->m_eWeight;
- rInfo.m_ePitch = pFont->m_ePitch;
- rInfo.m_aEncoding = pFont->m_aEncoding;
-- rInfo.m_eEmbeddedbitmap = pFont->m_eEmbeddedbitmap;
-- rInfo.m_eAntialias = pFont->m_eAntialias;
-
- rInfo.m_bEmbeddable = (pFont->m_eType == fonttype::Type1);
- rInfo.m_bSubsettable = (pFont->m_eType == fonttype::TrueType); // TODO: rename to SfntType
-@@ -3938,8 +3934,6 @@ bool PrintFontManager::readOverrideMetrics()
- BuiltinFont* pFont = new BuiltinFont();
- pFont->m_nDirectory = 0;
- pFont->m_bUserOverride = false;
-- pFont->m_eEmbeddedbitmap = fcstatus::isunset;
-- pFont->m_eAntialias = fcstatus::isunset;
- pFont->m_pMetrics = new PrintFontMetrics;
- memset( pFont->m_pMetrics->m_aPages, 0xff, sizeof( pFont->m_pMetrics->m_aPages ) );
- pFont->m_pMetrics->m_bKernPairsQueried = true;
-diff --git a/vcl/unx/source/gdi/pspgraphics.cxx b/vcl/unx/source/gdi/pspgraphics.cxx
-index f7f9a17..ed9dbb0 100644
---- a/vcl/unx/source/gdi/pspgraphics.cxx
-+++ b/vcl/unx/source/gdi/pspgraphics.cxx
-@@ -885,6 +885,10 @@ void PspGraphics::GetDevFontSubstList( OutputDevice* pOutDev )
- }
- }
-
-+void PspGraphics::GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const
-+{
-+}
-+
- void PspGraphics::GetFontMetric( ImplFontMetricData *pMetric )
- {
- const psp::PrintFontManager& rMgr = psp::PrintFontManager::get();
-@@ -1284,32 +1288,6 @@ ImplDevFontAttributes PspGraphics::Info2DevFontAttributes( const psp::FastPrintF
- aDFA.mbSubsettable = rInfo.m_bSubsettable;
- aDFA.mbEmbeddable = rInfo.m_bEmbeddable;
-
-- switch (rInfo.m_eEmbeddedbitmap)
-- {
-- default:
-- aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
-- break;
-- case psp::fcstatus::istrue:
-- aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_TRUE;
-- break;
-- case psp::fcstatus::isfalse:
-- aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_FALSE;
-- break;
-- }
--
-- switch (rInfo.m_eAntialias)
-- {
-- default:
-- aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
-- break;
-- case psp::fcstatus::istrue:
-- aDFA.meAntiAlias = ANTIALIAS_TRUE;
-- break;
-- case psp::fcstatus::isfalse:
-- aDFA.meAntiAlias = ANTIALIAS_FALSE;
-- break;
-- }
--
- switch( rInfo.m_eType )
- {
- case psp::fonttype::Builtin:
-diff --git a/vcl/unx/source/gdi/salgdi3.cxx b/vcl/unx/source/gdi/salgdi3.cxx
-index cd3d703..b54bdd4 100644
---- a/vcl/unx/source/gdi/salgdi3.cxx
-+++ b/vcl/unx/source/gdi/salgdi3.cxx
-@@ -744,6 +744,7 @@ private:
- void (*mp_show_glyphs)(cairo_t *, const cairo_glyph_t *, int );
- void (*mp_set_source_rgb)(cairo_t *, double , double , double );
- void (*mp_set_font_options)(cairo_t *, const void *);
-+ void (*mp_ft_font_options_substitute)(const void*, void*);
-
- bool canEmbolden() const { return false; }
-
-@@ -781,6 +782,8 @@ public:
- { (*mp_set_source_rgb)(cr, red, green, blue); }
- void set_font_options(cairo_t *cr, const void *options)
- { (*mp_set_font_options)(cr, options); }
-+ void ft_font_options_substitute(const void *options, void *pattern)
-+ { (*mp_ft_font_options_substitute)(options, pattern); }
- };
-
- static CairoWrapper* pCairoInstance = NULL;
-@@ -852,6 +855,8 @@ CairoWrapper::CairoWrapper()
- osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_set_source_rgb" );
- mp_set_font_options = (void (*)(cairo_t *, const void *options ))
- osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_set_font_options" );
-+ mp_ft_font_options_substitute = (void (*)(const void *, void *))
-+ osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_ft_font_options_substitute" );
-
- if( !(
- mp_xlib_surface_create_with_xrender_format &&
-@@ -869,7 +874,8 @@ CairoWrapper::CairoWrapper()
- mp_set_font_matrix &&
- mp_show_glyphs &&
- mp_set_source_rgb &&
-- mp_set_font_options
-+ mp_set_font_options &&
-+ mp_ft_font_options_substitute
- ) )
- {
- osl_unloadModule( mpCairoLib );
-@@ -1610,6 +1616,187 @@ void X11SalGraphics::GetDevFontSubstList( OutputDevice* )
-
- // ----------------------------------------------------------------------------
-
-+void cairosubcallback(void *pPattern)
-+{
-+ CairoWrapper &rCairo = CairoWrapper::get();
-+ void const *pFontOptions = Application::GetSettings().GetStyleSettings().GetCairoFontOptions();
-+ if (rCairo.isValid() && pFontOptions)
-+ {
-+ rCairo.ft_font_options_substitute(
-+ pFontOptions,pPattern);
-+ }
-+}
-+
-+void X11SalGraphics::GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints) const
-+{
-+ psp::FastPrintFontInfo aInfo;
-+ // set family name
-+ aInfo.m_aFamilyName = rFontAttributes.GetFamilyName();
-+ // set italic
-+ switch( rFontAttributes.GetSlant() )
-+ {
-+ case ITALIC_NONE:
-+ aInfo.m_eItalic = psp::italic::Upright;
-+ break;
-+ case ITALIC_NORMAL:
-+ aInfo.m_eItalic = psp::italic::Italic;
-+ break;
-+ case ITALIC_OBLIQUE:
-+ aInfo.m_eItalic = psp::italic::Oblique;
-+ break;
-+ default:
-+ aInfo.m_eItalic = psp::italic::Unknown;
-+ break;
-+
-+ }
-+ // set weight
-+ switch( rFontAttributes.GetWeight() )
-+ {
-+ case WEIGHT_THIN:
-+ aInfo.m_eWeight = psp::weight::Thin;
-+ break;
-+ case WEIGHT_ULTRALIGHT:
-+ aInfo.m_eWeight = psp::weight::UltraLight;
-+ break;
-+ case WEIGHT_LIGHT:
-+ aInfo.m_eWeight = psp::weight::Light;
-+ break;
-+ case WEIGHT_SEMILIGHT:
-+ aInfo.m_eWeight = psp::weight::SemiLight;
-+ break;
-+ case WEIGHT_NORMAL:
-+ aInfo.m_eWeight = psp::weight::Normal;
-+ break;
-+ case WEIGHT_MEDIUM:
-+ aInfo.m_eWeight = psp::weight::Medium;
-+ break;
-+ case WEIGHT_SEMIBOLD:
-+ aInfo.m_eWeight = psp::weight::SemiBold;
-+ break;
-+ case WEIGHT_BOLD:
-+ aInfo.m_eWeight = psp::weight::Bold;
-+ break;
-+ case WEIGHT_ULTRABOLD:
-+ aInfo.m_eWeight = psp::weight::UltraBold;
-+ break;
-+ case WEIGHT_BLACK:
-+ aInfo.m_eWeight = psp::weight::Black;
-+ break;
-+ default:
-+ aInfo.m_eWeight = psp::weight::Unknown;
-+ break;
-+ }
-+ // set width
-+ switch( rFontAttributes.GetWidthType() )
-+ {
-+ case WIDTH_ULTRA_CONDENSED:
-+ aInfo.m_eWidth = psp::width::UltraCondensed;
-+ break;
-+ case WIDTH_EXTRA_CONDENSED:
-+ aInfo.m_eWidth = psp::width::ExtraCondensed;
-+ break;
-+ case WIDTH_CONDENSED:
-+ aInfo.m_eWidth = psp::width::Condensed;
-+ break;
-+ case WIDTH_SEMI_CONDENSED:
-+ aInfo.m_eWidth = psp::width::SemiCondensed;
-+ break;
-+ case WIDTH_NORMAL:
-+ aInfo.m_eWidth = psp::width::Normal;
-+ break;
-+ case WIDTH_SEMI_EXPANDED:
-+ aInfo.m_eWidth = psp::width::SemiExpanded;
-+ break;
-+ case WIDTH_EXPANDED:
-+ aInfo.m_eWidth = psp::width::Expanded;
-+ break;
-+ case WIDTH_EXTRA_EXPANDED:
-+ aInfo.m_eWidth = psp::width::ExtraExpanded;
-+ break;
-+ case WIDTH_ULTRA_EXPANDED:
-+ aInfo.m_eWidth = psp::width::UltraExpanded;
-+ break;
-+ default:
-+ aInfo.m_eWidth = psp::width::Unknown;
-+ break;
-+ }
-+
-+ psp::FontConfigHints aHints(psp::PrintFontManager::get().getFontConfigHints(aInfo, nSize,
-+ cairosubcallback));
-+
-+ switch (aHints.m_eEmbeddedbitmap)
-+ {
-+ default:
-+ rFontHints.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
-+ break;
-+ case psp::fcstatus::istrue:
-+ rFontHints.meEmbeddedBitmap = EMBEDDEDBITMAP_TRUE;
-+ break;
-+ case psp::fcstatus::isfalse:
-+ rFontHints.meEmbeddedBitmap = EMBEDDEDBITMAP_FALSE;
-+ break;
-+ }
-+
-+ switch (aHints.m_eAntialias)
-+ {
-+ default:
-+ rFontHints.meAntiAlias = ANTIALIAS_DONTKNOW;
-+ break;
-+ case psp::fcstatus::istrue:
-+ rFontHints.meAntiAlias = ANTIALIAS_TRUE;
-+ break;
-+ case psp::fcstatus::isfalse:
-+ rFontHints.meAntiAlias = ANTIALIAS_FALSE;
-+ break;
-+ }
-+
-+ switch (aHints.m_eAutoHint)
-+ {
-+ default:
-+ rFontHints.meAutoHint = AUTOHINT_DONTKNOW;
-+ break;
-+ case psp::fcstatus::istrue:
-+ rFontHints.meAutoHint = AUTOHINT_TRUE;
-+ break;
-+ case psp::fcstatus::isfalse:
-+ rFontHints.meAutoHint = AUTOHINT_FALSE;
-+ break;
-+ }
-+
-+ switch (aHints.m_eHinting)
-+ {
-+ default:
-+ rFontHints.meHinting = HINTING_DONTKNOW;
-+ break;
-+ case psp::fcstatus::istrue:
-+ rFontHints.meHinting = HINTING_TRUE;
-+ break;
-+ case psp::fcstatus::isfalse:
-+ rFontHints.meHinting = HINTING_FALSE;
-+ break;
-+ }
-+
-+ switch (aHints.m_eHintStyle)
-+ {
-+ case psp::fchint::Nohint:
-+ rFontHints.meHintStyle = HINT_NONE;
-+ break;
-+ case psp::fchint::Slight:
-+ rFontHints.meHintStyle = HINT_SLIGHT;
-+ break;
-+ case psp::fchint::Medium:
-+ rFontHints.meHintStyle = HINT_MEDIUM;
-+ break;
-+ default:
-+ case psp::fchint::Full:
-+ rFontHints.meHintStyle = HINT_FULL;
-+ break;
-+ }
-+
-+}
-+
-+// ----------------------------------------------------------------------------
-+
- void
- X11SalGraphics::GetFontMetric( ImplFontMetricData *pMetric )
- {
-diff --git a/vcl/unx/source/gdi/xlfd_extd.cxx b/vcl/unx/source/gdi/xlfd_extd.cxx
-index eb17937..0753614 100644
---- a/vcl/unx/source/gdi/xlfd_extd.cxx
-+++ b/vcl/unx/source/gdi/xlfd_extd.cxx
-@@ -102,9 +102,6 @@ ExtendedXlfd::ExtendedXlfd( bool bScalable )
- mbSubsettable = false;
- mbEmbeddable = false;
-
-- meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
-- meAntiAlias = ANTIALIAS_DONTKNOW;
--
- mnQuality = -1;
- }
-
-diff --git a/vcl/win/inc/salgdi.h b/vcl/win/inc/salgdi.h
-index c39901a..0856210 100644
---- a/vcl/win/inc/salgdi.h
-+++ b/vcl/win/inc/salgdi.h
-@@ -283,6 +283,7 @@ public:
- virtual USHORT SetFont( ImplFontSelectData*, int nFallbackLevel );
- // get the current font's etrics
- virtual void GetFontMetric( ImplFontMetricData* );
-+ virtual void GetFontHints( const ImplFontAttributes& rFontAttributes, int nHints, ImplFontHints& rFontHints);
- // get kernign pairs of the current font
- // return only PairCount if (pKernPairs == NULL)
- virtual ULONG GetKernPairs( ULONG nPairs, ImplKernPairData* pKernPairs );
-diff --git a/vcl/win/source/gdi/salgdi3.cxx b/vcl/win/source/gdi/salgdi3.cxx
-index d8c8eb0..2450bd0 100644
---- a/vcl/win/source/gdi/salgdi3.cxx
-+++ b/vcl/win/source/gdi/salgdi3.cxx
-@@ -1450,6 +1450,12 @@ USHORT WinSalGraphics::SetFont( ImplFontSelectData* pFont, int nFallbackLevel )
-
- // -----------------------------------------------------------------------
-
-+void WinSalGraphics::GetFontHints( const ImplFontAttributes& rFontAttributes, int nSize, ImplFontHints& rFontHints)
-+{
-+}
-+
-+// -----------------------------------------------------------------------
-+
- void WinSalGraphics::GetFontMetric( ImplFontMetricData* pMetric )
- {
- if ( aSalShlData.mbWNT )
---
-1.7.0.1
-
More information about the ooo-build-commit
mailing list