[squeak-dev] The Trunk: MorphicExtras-nice.123.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Oct 6 16:47:59 UTC 2013


Nicolas Cellier uploaded a new version of MorphicExtras to project The Trunk:
http://source.squeak.org/trunk/MorphicExtras-nice.123.mcz

==================== Summary ====================

Name: MorphicExtras-nice.123
Author: nice
Time: 6 October 2013, 6:46:51.35 pm
UUID: 87efaf6e-b5ba-41bb-920c-14a039fed508
Ancestors: MorphicExtras-nice.122

Remove unnecessary runX inst var from CanvasCharacterScanner (written but never read).
Also remove fillBlt neither read nor written.
Add kern to paddedSpace: handling must be uniform in all CharacterScanner family in order to avoid glitches.

=============== Diff against MorphicExtras-nice.122 ===============

Item was changed:
  CharacterScanner subclass: #CanvasCharacterScanner
+ 	instanceVariableNames: 'canvas foregroundColor lineY defaultTextColor'
- 	instanceVariableNames: 'canvas fillBlt foregroundColor runX lineY defaultTextColor'
  	classVariableNames: ''
  	poolDictionaries: ''
  	category: 'MorphicExtras-Support'!
  
  !CanvasCharacterScanner commentStamp: '<historical>' prior: 0!
  A displaying scanner which draws its output to a Morphic canvas.!

Item was changed:
  ----- Method: CanvasCharacterScanner>>displayLine:offset:leftInRun: (in category 'scanning') -----
  displayLine: textLine offset: offset leftInRun: leftInRun 
  	"largely copied from DisplayScanner's routine"
  
  	| nowLeftInRun startLoc startIndex stopCondition |
  	line := textLine.
  	foregroundColor ifNil: [foregroundColor := Color black].
  	leftMargin := (line leftMarginForAlignment: alignment) + offset x.
  	rightMargin := line rightMargin + offset x.
  	lineY := line top + offset y.
  	lastIndex := textLine first.
  	nowLeftInRun := leftInRun <= 0 
  				ifTrue: 
  					[self setStopConditions.	"also sets the font"
  					text runLengthFor: lastIndex]
  				ifFalse: [leftInRun]. 
+ 	destX := leftMargin.
- 	runX := destX := leftMargin.
  	runStopIndex := lastIndex + (nowLeftInRun - 1) min: line last.
  	spaceCount := 0.
  	[
  			"remember where this portion of the line starts"
  			startLoc := destX @ destY.
  			startIndex := lastIndex.
  
  			"find the end of this portion of the line"
  			stopCondition := self 
  						scanCharactersFrom: lastIndex
  						to: runStopIndex
  						in: text string
  						rightX: rightMargin
  						stopConditions: stopConditions
  						kern: kern.	"displaying: false"
  
  			"display that portion of the line"
  			canvas 
  				drawString: text string
  				from: startIndex
  				to: lastIndex
  				at: startLoc
  				font: font
  				color: foregroundColor.
  
  			"handle the stop condition"
  			self perform: stopCondition
  	] whileFalse.
  	^runStopIndex - lastIndex!

Item was changed:
  ----- Method: CanvasCharacterScanner>>endOfRun (in category 'stop conditions') -----
  endOfRun
  	"The end of a run in the display case either means that there is actually 
  	a change in the style (run code) to be associated with the string or the 
  	end of this line has been reached."
  	| runLength |
  
  	lastIndex = line last ifTrue: [^true].
- 	runX := destX.
  	runLength := text runLengthFor: (lastIndex := lastIndex + 1).
  	runStopIndex := lastIndex + (runLength - 1) min: line last.
  	self setStopConditions.
  	^ false!

Item was changed:
  ----- Method: CanvasCharacterScanner>>paddedSpace (in category 'stop conditions') -----
  paddedSpace
  	"Each space is a stop condition when the alignment is right justified. 
  	Padding must be added to the base width of the space according to 
  	which space in the line this space is and according to the amount of 
  	space that remained at the end of the line when it was composed."
  
+ 	destX := destX + spaceWidth + kern + (line justifiedPadFor: spaceCount font: font).
- 	destX := destX + spaceWidth + (line justifiedPadFor: spaceCount font: font).
  	lastIndex := lastIndex + 1.
  	pendingKernX := 0.
  	^ false!



More information about the Squeak-dev mailing list