If East Asian people were unable
to see the Latin characters, it
becomes a barrier to mutual
understanding.
FontLink will break that barrier.
JIRA issue: CORE-9616
JIRA issue: CORE-15480
- Modify font substitutes.
- Unify the lock variables.
- Add FONTLINK and
FONTLINK_CHAIN structures.
- Add FontLink_Create and
FontLink_Destroy functions.
- Add FontLink_Chain_Init,
FontLink_Chain_Free,
FontLink_Chain_LoadReg,
FontLink_Chain_Populate, and
FontLink_Chain_FindGlyph
functions.
- Implement FontLink.
- Add font file DroidSansFallback.ttf
for LiveCD.
Based on CORE-19346 "segoe-ui-symbo.patch".
In order to display gender glyphs (U+2642 and
U+2640; ♂ and ♀), we add a font substitute from
"Segoe UI Symbol" to "Arial".
ReactOS Arial has many symbol glyphs, so I think
we can use it for "Segoe UI Symbol" font substitute.
The glyph size problem will be fixed in #6156.
CORE-19346
... and let the latter one substitute to whatever we want.
Hindi however had "Helv" -> "Tahoma", but "MS Sans Serif" -> "FreeSans".
Now its "Helv" will go to "FreeSans".
An addendum to 0.4.14-dev-20-g 2f4fb903b4
because since then we don't have the Ubuntu font anymore.
The substitutes are also not needed any longer.
We can use Tahoma here without causing any change in the current rendering,
because for all languages the former
Ubuntu substitutions did point either to Tahoma,
or to the same thing, that Tahoma atm points to
(for those language that do require additional glyphs).
This way we do not only get the substitutions closer to 2k3sp2, but will also
simplify our maintenance and testing, because the same font is guaranteed to be used then
for all themes: Classic, Blackshade and Lautus: The font which has the needed glyphs for
that specific language.
E.g.
"FreeSans" for Hindi,
"Tahoma" for most Western languages, and
"Droid Sans Fallback" for Chinese and Japanese language.
Things are cleaner and simpler this way.
- Delete "DejaVu Sans Mono" font files (DejaVuSansMono.ttf etc.).
- Re-map "Terminal" font substitute to "Lucida Console" except for HebrewFonts and UnicodeFonts.
- Re-map HebrewFonts "Terminal" font substitute to "Courier New".
- Re-map UnicodeFonts "Terminal" font substitute to "Courier New". And then, re-map UnicodeFonts "Courier" font substitute to "Courier New". Delete UnicodeFonts "Courier New" font substitute.
CORE-18605
I manually applied the final state of the reviewed (#4829) by hand.
The commit relies on (#4837) which added the Greek Tahoma glyphs, and the result now
does finally draw fine with unbold Tahoma also for the Greek ros installation.
See the final screenshot that I added today within (#4829).
Since 0.4.14-dev-6-g f45dd65 we do have a proper "Verdana" font,
so there is no need for substitution with "DejaVu Sans" any longer. That is the proper MS name for such a font.
And with 0.4.14-dev-20-g 2f4fb90 we even deleted the "DejaVu Sans" font,
so it makes no sense to keep it as a substitution target.
So adapt fonts.inf and muifonts.h, and also a test where it was still referenced.
MS 2k3sp2 does neither have such a font substitute, nor such a font.
[INF] These 2 lines are nonsense now for 2 different reasons even:
Since 0.4.13-dev-764-g dbb4432b25
we do have a proper "Times New Roman" font, so there is no need for
substitution any longer.
And since 0.4.14-dev-20-g 2f4fb903b4
we don't even have the substitution-target "DejaVu Serif" anymore.
[SETUP] Similar glitch in muifonts.h
[ROSTESTS] Thin out gdi32:GetTextMetrics test
Deletes tests for 3 fonts that we do not longer have
Helvetica must be font substitute to Arial font.
- Change some Helvetica substitutes to "Arial" from "Liberation Sans". Not all Helvetica. Some languages are lacking support.
Updated the font substitutions to use the new Hebrew glyphs in the updated Tahoma font.
Also added substitution for the Ubuntu font to make the Lautus and Modern themes legible with Hebrew UI elements.
Follow up to PR #789 and #790 ; CORE-14880, CORE-14943