[squeak-dev] The Trunk: Morphic-tpr.689.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Sep 25 21:57:33 UTC 2013


tim Rowledge uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-tpr.689.mcz

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

Name: Morphic-tpr.689
Author: tpr
Time: 25 September 2013, 2:55:33.002 pm
UUID: e64f2569-492c-40a3-b75c-f7a637bb67a7
Ancestors: Morphic-nice.688

finally, eviscerate MultiTextComposer ready to remove it later.
simplify NewParagraph>>composeAll, multiComposeLinesFrom:to:delta:into:priorLines:atY: & recomposeFrom:to:delta:.
remove unsent old test method testNewComposeAll2

=============== Diff against Morphic-nice.688 ===============

Item was changed:
  TextComposer subclass: #MultiTextComposer
  	instanceVariableNames: ''
  	classVariableNames: ''
  	poolDictionaries: 'TextConstants'
  	category: 'Morphic-Multilingual'!
+ 
+ !MultiTextComposer commentStamp: 'tpr 9/25/2013 13:04' prior: 0!
+ This is now a null calss we are working on removing completely!

Item was removed:
- ----- Method: MultiTextComposer>>multiComposeLinesFrom:to:delta:into:priorLines:atY:textStyle:text:container:wantsColumnBreaks: (in category 'as yet unclassified') -----
- multiComposeLinesFrom: argStart to: argStop delta: argDelta into: argLinesCollection priorLines: argPriorLines atY: argStartY textStyle: argTextStyle text: argText container: argContainer wantsColumnBreaks: argWantsColumnBreaks
- 
- 	wantsColumnBreaks := argWantsColumnBreaks.
- 	lines := argLinesCollection.
- 	theTextStyle := argTextStyle.
- 	theText := argText.
- 	theContainer := argContainer.
- 	deltaCharIndex := argDelta.
- 	currCharIndex := startCharIndex := argStart.
- 	stopCharIndex := argStop.
- 	prevLines := argPriorLines.
- 	currentY := argStartY.
- 	defaultLineHeight := theTextStyle lineGrid.
- 	maxRightX := theContainer left.
- 	possibleSlide := stopCharIndex < theText size and: [theContainer isMemberOf: Rectangle].
- 	nowSliding := false.
- 	prevIndex := 1.
- 	scanner := MultiCompositionScanner new text: theText textStyle: theTextStyle.
- 	scanner wantsColumnBreaks: wantsColumnBreaks.
- 	isFirstLine := true.
- 	self composeAllLines.
- 	isFirstLine ifTrue: ["No space in container or empty text"
- 		self 
- 			addNullLineWithIndex: startCharIndex
- 			andRectangle: (theContainer topLeft extent: 0 at defaultLineHeight)
- 	] ifFalse: [
- 		self fixupLastLineIfCR
- 	].
- 	^{lines asArray. maxRightX}
- 
- !

Item was changed:
  ----- Method: NewParagraph>>composeAll (in category 'composition') -----
  composeAll
+ 	self composeLinesFrom: firstCharacterIndex to: text size delta: 0
+ 			into: OrderedCollection new priorLines: Array new atY: container top!
- 	text string isOctetString ifTrue: [
- 		^ self composeLinesFrom: firstCharacterIndex to: text size delta: 0
- 			into: OrderedCollection new priorLines: Array new atY: container top.
- 	].
- 
- 	^ self multiComposeLinesFrom: firstCharacterIndex to: text size delta: 0
- 		into: OrderedCollection new priorLines: Array new atY: container top.
- !

Item was changed:
  ----- Method: NewParagraph>>multiComposeLinesFrom:to:delta:into:priorLines:atY: (in category 'composition') -----
  multiComposeLinesFrom: start to: stop delta: delta into: lineColl priorLines: priorLines
  	atY: startingY
  	"While the section from start to stop has changed, composition may ripple all the way to the end of the text.  However in a rectangular container, if we ever find a line beginning with the same character as before (ie corresponding to delta in the old lines), then we can just copy the old lines from there to the end of the container, with adjusted indices and y-values"
  
  	| newResult |
  
+ 	newResult := TextComposer new
- 	newResult := MultiTextComposer new
  		multiComposeLinesFrom: start 
  		to: stop 
  		delta: delta 
  		into: lineColl 
  		priorLines: priorLines
  		atY: startingY
  		textStyle: textStyle 
  		text: text 
  		container: container
  		wantsColumnBreaks: wantsColumnBreaks == true.
  	lines := newResult first asArray.
  	maxRightX := newResult second.
  	"maxRightX printString displayAt: 0 at 0."
  	^maxRightX
  !

Item was changed:
  ----- Method: NewParagraph>>recomposeFrom:to:delta: (in category 'composition') -----
  recomposeFrom: start to: stop delta: delta
  	"Recompose this paragraph.  The altered portion is between start and stop.
  	Recomposition may continue to the end of the text, due to a ripple effect.
  	Delta is the amount by which the current text is longer than it was
  	when its current lines were composed."
  	| startLine newLines |
  	"Have to recompose line above in case a word-break was affected."
  	startLine := (self lineIndexOfCharacterIndex: start) - 1 max: 1.
  	[startLine > 1 and: [(lines at: startLine-1) top = (lines at: startLine) top]]
  		whileTrue: [startLine := startLine - 1].  "Find leftmost of line pieces"
  	newLines := OrderedCollection new: lines size + 1.
  	1 to: startLine-1 do: [:i | newLines addLast: (lines at: i)].
+ 	self composeLinesFrom: (lines at: startLine) first to: stop delta: delta
- 	text string isOctetString ifTrue: [
- 		^ self composeLinesFrom: (lines at: startLine) first to: stop delta: delta
  			into: newLines priorLines: lines
+ 			atY: (lines at: startLine) top!
- 			atY: (lines at: startLine) top.
- 	].
- 	self multiComposeLinesFrom: (lines at: startLine) first to: stop delta: delta
- 		into: newLines priorLines: lines
- 		atY: (lines at: startLine) top.
- !

Item was removed:
- ----- Method: NewParagraph>>testNewComposeAll2 (in category 'composition') -----
- testNewComposeAll2
- 	| newResult |
- 	newResult := TextComposer new
- 		composeLinesFrom: firstCharacterIndex 
- 		to: text size 
- 		delta: 0
- 		into: OrderedCollection new 
- 		priorLines: Array new 
- 		atY: container top
- 		textStyle: textStyle 
- 		text: text 
- 		container: container
- 		wantsColumnBreaks: false.
- 	^{newResult. {lines. maxRightX}}
- !



More information about the Squeak-dev mailing list