Marcel Taeumel uploaded a new version of ST80 to project The Trunk: http://source.squeak.org/trunk/ST80-mt.278.mcz
==================== Summary ====================
Name: ST80-mt.278 Author: mt Time: 21 February 2022, 4:02:07.924099 pm UUID: f1296b11-db9c-3640-8b51-270b595554aa Ancestors: ST80-ct.277
Complements Graphics-mt.483
=============== Diff against ST80-ct.277 ===============
Item was changed: ----- Method: CompositionScanner>>composeLine:fromCharacterIndex:inParagraph: (in category '*ST80-Support') ----- composeLine: lineIndex fromCharacterIndex: startIndex inParagraph: aParagraph "Answer an instance of TextLineInterval that represents the next line in the paragraph." + | runLength stopCondition lineSpacing | - | runLength stopCondition | destX := spaceX := leftMargin := aParagraph leftMarginForCompositionForLine: lineIndex. destY := 0. rightMargin := aParagraph rightMarginForComposition. leftMargin >= rightMargin ifTrue: [self error: 'No room between margins to compose']. lastIndex := startIndex. "scanning sets last index" + lineHeight := baseline := 0. "Will be increased by setFont" + lineGap := lineGapSlice := -9999. "Will be increased by setFont; allow negative to show all effects of a custom #extraGap value. See TTFontDescription." + topMargin := bottomMargin := 0. - lineHeight := baseline := lineGap := lineGapSlice := 0. "Will be increased by setFont" self setStopConditions. "also sets font" self handleIndentation. runLength := text runLengthFor: startIndex. runStopIndex := (lastIndex := startIndex) + (runLength - 1). line := TextLineInterval start: lastIndex stop: 0 internalSpaces: 0 paddingWidth: 0. nextIndexAfterLineBreak := spaceCount := 0. lastBreakIsNotASpace := false. [stopCondition := self scanCharactersFrom: lastIndex to: runStopIndex in: text string rightX: rightMargin. "See setStopConditions for stopping conditions for composing." self perform: stopCondition] whileFalse.
+ lineHeight := lineHeight + lineGap. + baseline := baseline + lineGapSlice. + + "TODO: Allow special characters or text attributes to accumulate extra top or bottom margin." + (lineSpacing := textStyle lineSpacing) = 0.0 + ifFalse: [bottomMargin := bottomMargin + (lineSpacing * lineHeight) truncated]. + + line lineHeight: lineHeight baseline: baseline. + line topMargin: topMargin bottomMargin: bottomMargin. + + ^ line! - ^line - lineHeight: lineHeight + lineGap - baseline: baseline + lineGapSlice!
Item was changed: ----- Method: PluggableButtonView>>centerAlignLabelWith: (in category 'private') ----- centerAlignLabelWith: aPoint "Align the center of the label with aPoint."
| alignPt | alignPt := label boundingBox center. (label isKindOf: Paragraph) ifTrue: + [alignPt := alignPt + (0@(label textStyle defaultFont lineGapSlice))]. - [alignPt := alignPt + (0@(label textStyle leading))]. (label isForm) ifTrue: [label offset: 0 @ 0]. label align: alignPt with: aPoint !
packages@lists.squeakfoundation.org