Marcel Taeumel uploaded a new version of Graphics to project The Trunk:
http://source.squeak.org/trunk/Graphics-mt.397.mcz==================== Summary ====================
Name: Graphics-mt.397
Author: mt
Time: 4 May 2018, 3:57:07.881404 pm
UUID: 3dce1413-6ad1-a249-8115-0bbb3bd2a241
Ancestors: Graphics-nice.396
Avoid the creation of strange-looking fonts. If that font already exhibits the requested emphasis, do not try to do further magic.
=============== Diff against Graphics-nice.396 ===============
Item was changed:
----- Method: StrikeFont>>emphasized: (in category 'emphasis') -----
emphasized: code
"Answer a copy of the receiver with emphasis set to include code."
| derivative addedEmphasis base safeCode |
code = 0 ifTrue: [^ self].
+ code = self emphasis ifTrue: [^ self].
(derivativeFonts == nil or: [derivativeFonts size = 0]) ifTrue: [^ self].
derivative := derivativeFonts at: (safeCode := code min: derivativeFonts size).
derivative == nil ifFalse: [^ derivative]. "Already have this style"
"Dont have it -- derive from another with one with less emphasis"
addedEmphasis := 1 bitShift: safeCode highBit - 1.
base := self emphasized: safeCode - addedEmphasis. "Order is Bold, Ital, Under, Narrow"
addedEmphasis = 1 ifTrue: "Compute synthetic bold version of the font"
[derivative := (base copy ensureCleanBold name: base name , 'B') makeBoldGlyphs].
addedEmphasis = 2 ifTrue: "Compute synthetic italic version of the font"
[ derivative := (base copy name: base name , 'I') makeItalicGlyphs].
addedEmphasis = 4 ifTrue: "Compute underlined version of the font"
[derivative := (base copy name: base name , 'U') makeUnderlinedGlyphs].
addedEmphasis = 8 ifTrue: "Compute narrow version of the font"
[derivative := (base copy name: base name , 'N') makeCondensedGlyphs].
addedEmphasis = 16 ifTrue: "Compute struck-out version of the font"
[derivative := (base copy name: base name , 'X') makeStruckOutGlyphs].
derivative emphasis: safeCode.
derivativeFonts at: safeCode put: derivative.
^ derivative!