[squeak-dev] The Trunk: Graphics-mt.501.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Mar 16 14:08:27 UTC 2022
Marcel Taeumel uploaded a new version of Graphics to project The Trunk:
http://source.squeak.org/trunk/Graphics-mt.501.mcz
==================== Summary ====================
Name: Graphics-mt.501
Author: mt
Time: 16 March 2022, 3:08:20.005608 pm
UUID: 69349e70-0302-ae46-aa63-3f615833c0ae
Ancestors: Graphics-mt.500
Complements TrueType-mt.90.
=============== Diff against Graphics-mt.500 ===============
Item was added:
+ ----- Method: AbstractFont>>characterFormAt: (in category 'character shapes') -----
+ characterFormAt: aCharacter
+
+ self subclassResponsibility.!
Item was added:
+ ----- Method: AbstractFont>>formOf: (in category 'character shapes') -----
+ formOf: aCharacter
+
+ self subclassResponsibility.!
Item was added:
+ ----- Method: AbstractFont>>widthOfByteCharacter: (in category 'measuring') -----
+ widthOfByteCharacter: aCharacter
+ "Return the width of the given character whose codePoint is <= 16rFF."
+
+ ^ self widthOf: aCharacter!
Item was changed:
----- Method: AbstractFont>>widthOfString:from:to: (in category 'measuring') -----
widthOfString: aString from: startIndex to: stopIndex
+ "Measure the length of the given string between start and stop index."
+
- "Measure the length of the given string between start and stop index"
| resultX |
resultX := 0.
startIndex to: stopIndex do: [:i |
resultX := resultX + (self widthOf: (aString at: i))].
+ ^ resultX
+
+ "TODO: Use scanner to support kerning.
+ CharacterScanner new
+ measureString: asString inFont: self
+ from: startIndex to: stopIndex
+ "!
- ^resultX!
Item was added:
+ ----- Method: FixedFaceFont>>isTTCFont (in category 'testing') -----
+ isTTCFont
+
+ ^ baseFont isTTCFont!
Item was changed:
----- Method: StrikeFont>>characterFormAt: (in category 'character shapes') -----
characterFormAt: character
"Answer a Form copied out of the glyphs for the argument, character."
+
| ascii leftX rightX |
ascii := self codeForCharacter: character.
- (ascii between: minAscii and: maxAscii) ifFalse: [ascii := maxAscii + 1].
leftX := xTable at: ascii + 1.
rightX := xTable at: ascii + 2.
leftX < 0 ifTrue: [^ glyphs copy: (0 at 0 corner: 0 at self height)].
^ glyphs copy: (leftX @ 0 corner: rightX @ self height)!
Item was changed:
----- Method: StrikeFont>>glyphInfoOf:into: (in category 'accessing') -----
glyphInfoOf: aCharacter into: glyphInfoArray
+ "Answer the glyph info for aCharacter. If I don't have such a character use my fallback font."
+
- "return the glyph info for aCharacter; if I don't have such a character, try my fallback font, if I have one of those.
- Unlike some other implementors, the returned info for a missing character is not given for the question-mark but rather the zero-ascii char."
| code |
+ (self hasGlyphOf: aCharacter) ifFalse: [
+ ^ self fallbackFont
+ foregroundColor: self foregroundColor;
+ glyphInfoOf: aCharacter into: glyphInfoArray].
+
+ code := self codeForCharacter: aCharacter.
- (self hasGlyphOf: aCharacter)
- ifTrue: [code := self codeForCharacter: aCharacter]
- ifFalse: [fallbackFont
- ifNotNil: [^ fallbackFont glyphInfoOf: aCharacter into: glyphInfoArray].
- code := 0].
glyphInfoArray at: 1 put: glyphs;
at: 2 put: (xTable at: code + 1);
at: 3 put: (xTable at: code + 2);
+ at: 4 put: self ascent "(self ascentOf: aCharacter)";
+ at: 5 put: self.
- at: 4 put: (self ascentOf: aCharacter);
- at: 5 put: self.
^ glyphInfoArray!
More information about the Squeak-dev
mailing list
|