Nicolas Cellier uploaded a new version of ST80 to project The Trunk:
http://source.squeak.org/trunk/ST80-nice.156.mcz ==================== Summary ==================== Name: ST80-nice.156 Author: nice Time: 6 October 2013, 6:43:25.006 pm UUID: 3dd39ced-b569-46e3-b147-3b38b1b67b30 Ancestors: ST80-nice.155 Remove unnecessary runX inst var from DisplayScanner (written but never read). =============== Diff against ST80-nice.155 =============== Item was changed: ----- Method: DisplayScanner>>displayLines:in:clippedBy: (in category '*ST80-Support') ----- displayLines: linesInterval in: aParagraph clippedBy: visibleRectangle "The central display routine. The call on the primitive (scanCharactersFrom:to:in:rightX:) will be interrupted according to an array of stop conditions passed to the scanner at which time the code to handle the stop condition is run and the call on the primitive continued until a stop condition returns true (which means the line has terminated)." | leftInRun | "leftInRun is the # of characters left to scan in the current run; when 0, it is time to call 'self setStopConditions'" morphicOffset := 0@0. leftInRun := 0. self initializeFromParagraph: aParagraph clippedBy: visibleRectangle. ignoreColorChanges := false. foregroundColor := paragraphColor := aParagraph foregroundColor. backgroundColor := aParagraph backgroundColor. aParagraph backgroundColor isTransparent ifTrue: [fillBlt := nil] ifFalse: [fillBlt := bitBlt copy. "Blt to fill spaces, tabs, margins" fillBlt sourceForm: nil; sourceOrigin: 0@0. fillBlt fillColor: aParagraph backgroundColor]. rightMargin := aParagraph rightMarginForDisplay. lineY := aParagraph topAtLineIndex: linesInterval first. bitBlt destForm deferUpdatesIn: visibleRectangle while: [ linesInterval do: [:lineIndex | | string startIndex lastPos runLength stopCondition baselineY | line := aParagraph lines at: lineIndex. lastIndex := line first. leftInRun <= 0 ifTrue: [self setStopConditions. "also sets the font, alignment and emphasisCode" leftInRun := text runLengthFor: line first]. leftMargin := aParagraph leftMarginForDisplayForLine: lineIndex alignment: alignment. + destX := leftMargin. - destX := runX := leftMargin. lineHeight := line lineHeight. fillBlt == nil ifFalse: [fillBlt destX: visibleRectangle left destY: lineY width: visibleRectangle width height: lineHeight; copyBits]. baselineY := lineY + line baseline. destY := baselineY - font ascent. "Should have happened in setFont" runLength := leftInRun. runStopIndex := lastIndex + (runLength - 1) min: line last. leftInRun := leftInRun - (runStopIndex - lastIndex + 1). spaceCount := 0. string := text string. self handleIndentation. [ startIndex := lastIndex. lastPos := destX@destY. stopCondition := self scanCharactersFrom: lastIndex to: runStopIndex in: string rightX: rightMargin stopConditions: stopConditions kern: kern. lastIndex >= startIndex ifTrue:[ font displayString: string on: bitBlt from: startIndex to: lastIndex at: lastPos kern: kern]. "see setStopConditions for stopping conditions for displaying." self perform: stopCondition ] whileFalse. fillBlt == nil ifFalse: [fillBlt destX: destX destY: lineY width: visibleRectangle right-destX height: lineHeight; copyBits]. lineY := lineY + lineHeight]]! |
Free forum by Nabble | Edit this page |