[squeak-dev] The Trunk: Multilingual-tpr.177.mcz

Nicolas Cellier nicolas.cellier.aka.nice at gmail.com
Fri Sep 27 00:19:06 UTC 2013


I don't understand all you did...
#scanSelector is still in use sent by #scanSelectorAt:.
This is because #charsetAt: can answer either a LanguageEnvironment or an
EncodedCharSet, so why remove it now?

Why remove #isBreakable:in:in:? it is still in use by the scanJapanese...
same for breakAtSpace (for Japanese only).

Why remove composeFrom: startIndex inRectangle: snip... ?
I'm suspect that this is a slip due to moving methods between packages



2013/9/27 <commits at source.squeak.org>

> tim Rowledge uploaded a new version of Multilingual to project The Trunk:
> http://source.squeak.org/trunk/Multilingual-tpr.177.mcz
>
> ==================== Summary ====================
>
> Name: Multilingual-tpr.177
> Author: tpr
> Time: 26 September 2013, 5:02:39.835 pm
> UUID: 1a4fc492-87e5-4fa5-a7b4-2d79bd774000
> Ancestors: Multilingual-nice.176
>
> Get rid of
> EncodedCharSet class>>scanSelector
> MultiCompositionScanner>>isBreakableAt:in:in: & setFont
> minor changes to some stopcondition methods
>
> =============== Diff against Multilingual-nice.176 ===============
>
> Item was removed:
> - ----- Method: EncodedCharSet class>>scanSelector (in category 'accessing
> - displaying') -----
> - scanSelector
> - "This appears to be redundant - possibly once used as a default and now
> usurped by LanguageEnvironmet class>scanSelector ?"
> -       ^ #scanMultiCharactersFrom:to:in:rightX:stopConditions:kern:!
>
> Item was changed:
>   ----- Method: MultiCharacterScanner>>isBreakableAt:in:in: (in category
> 'scanner methods') -----
>   isBreakableAt: index in: sourceString in: encodingClass
> + "check with the encoding whether the character at index is a breakable
> character- only the JISX0208 & JapaneseEnvironment will ever return true,
> so only the scanJapaneseCharacters... method calls this"
> -
>         ^ encodingClass isBreakableAt: index in: sourceString.
>   !
>
> Item was changed:
>   ----- Method:
> MultiCharacterScanner>>scanMultiCharactersFrom:to:in:rightX:stopConditions:kern:
> (in category 'scanning') -----
>   scanMultiCharactersFrom: startIndex to: stopIndex in: sourceString
> rightX: rightX stopConditions: stops kern: kernDelta
>
>         | ascii encoding f nextDestX startEncoding floatDestX
> widthAndKernedWidth nextChar atEndOfRun |
>         lastIndex := startIndex.
>         lastIndex > stopIndex ifTrue: [lastIndex := stopIndex. ^ stops
> endOfRun].
>         startEncoding := (sourceString at: startIndex) leadingChar.
>         font ifNil: [font := (TextConstants at: #DefaultMultiStyle)
> fontArray at: 1].
>         ((font isMemberOf: StrikeFontSet) or: [font isKindOf: TTCFontSet])
> ifTrue: [
>                 f := [font fontArray at: startEncoding + 1] ifError: [nil].
>                 f ifNil: [ f := font fontArray at: 1].
>                 spaceWidth := f widthOf: Space.
>         ].
>         floatDestX := destX.
>         widthAndKernedWidth := Array new: 2.
>         atEndOfRun := false.
>         [lastIndex <= stopIndex] whileTrue: [
>                 encoding := (sourceString at: lastIndex) leadingChar.
>                 encoding ~= startEncoding ifTrue: [lastIndex := lastIndex
> - 1. ^ stops endOfRun].
>                 ascii := (sourceString at: lastIndex) charCode.
>                 (ascii < 256 and: [(stops at: ascii + 1) ~~ nil]) ifTrue:
> [^ stops at: ascii + 1].
>                 nextChar := (lastIndex + 1 <= stopIndex)
>                         ifTrue:[sourceString at: lastIndex + 1]
>                         ifFalse:[
>                                 atEndOfRun := true.
>                                 "if there is a next char in sourceString,
> then get the kern
>                                 and store it in pendingKernX"
>                                 lastIndex + 1 <= sourceString size
>                                         ifTrue:[sourceString at: lastIndex
> + 1]
>                                         ifFalse:[       nil]].
>                 font
>                         widthAndKernedWidthOfLeft: (sourceString at:
> lastIndex)
>                         right: nextChar
>                         into: widthAndKernedWidth.
>                 nextDestX := floatDestX + (widthAndKernedWidth at: 1).
>                 nextDestX > rightX ifTrue: [destX ~= firstDestX ifTrue:
> [^stops crossedX]].
>                 floatDestX := floatDestX + kernDelta +
> (widthAndKernedWidth at: 2).
>                 atEndOfRun
>                         ifTrue:[
>                                 pendingKernX := (widthAndKernedWidth at:
> 2) - (widthAndKernedWidth at: 1).
>                                 floatDestX := floatDestX - pendingKernX].
>                 destX := floatDestX .
>                 lastIndex := lastIndex + 1.
>         ].
>         lastIndex := stopIndex.
>         ^ stops endOfRun!
>
> Item was removed:
> - ----- Method:
> MultiCompositionScanner>>composeFrom:inRectangle:firstLine:leftSide:rightSide:
> (in category 'scanning') -----
> - composeFrom: startIndex inRectangle: lineRectangle
> -       firstLine: firstLine leftSide: leftSide rightSide: rightSide
> -       "Answer an instance of TextLineInterval that represents the next
> line in the paragraph."
> -       | runLength stopCondition |
> -       "Set up margins"
> -       leftMargin := lineRectangle left.
> -       leftSide ifTrue: [leftMargin := leftMargin +
> -                                               (firstLine ifTrue:
> [textStyle firstIndent]
> -                                                               ifFalse:
> [textStyle restIndent])].
> -       destX := spaceX := leftMargin.
> -       firstDestX := destX.
> -       rightMargin := lineRectangle right.
> -       rightSide ifTrue: [rightMargin := rightMargin - textStyle
> rightIndent].
> -       lastIndex := startIndex.        "scanning sets last index"
> -       destY := lineRectangle top.
> -       lineHeight := baseline := 0.  "Will be increased by setFont"
> -       self setStopConditions. "also sets font"
> -       runLength := text runLengthFor: startIndex.
> -       runStopIndex := (lastIndex := startIndex) + (runLength - 1).
> -       line := (TextLine start: lastIndex stop: 0 internalSpaces: 0
> paddingWidth: 0)
> -                               rectangle: lineRectangle.
> -       spaceCount := 0.
> -       self handleIndentation.
> -       leftMargin := destX.
> -       line leftMargin: leftMargin.
> -
> -       [stopCondition := self scanCharactersFrom: lastIndex to:
> runStopIndex
> -               in: text string rightX: rightMargin stopConditions:
> stopConditions
> -               kern: kern.
> -       "See setStopConditions for stopping conditions for composing."
> -       self perform: stopCondition] whileFalse.
> -
> -       ^ line
> -               lineHeight: lineHeight + textStyle leading
> -               baseline: baseline + textStyle leading!
>
> Item was changed:
>   ----- Method:
> MultiCompositionScanner>>composeLine:fromCharacterIndex:inParagraph: (in
> category 'scanning') -----
>   composeLine: lineIndex fromCharacterIndex: startIndex inParagraph:
> aParagraph
>         "Answer an instance of TextLineInterval that represents the next
> line in the paragraph."
>         | 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 := textStyle lineGrid.  "may be increased by
> setFont:..."
>         baseline := textStyle baseline.
> -       baselineY := destY + baseline.
>         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.
>         spaceCount := 0.
>
>         [stopCondition := self scanCharactersFrom: lastIndex to:
> runStopIndex
>                 in: text string rightX: rightMargin stopConditions:
> stopConditions
>                 kern: kern.
>         "See setStopConditions for stopping conditions for composing."
>         self perform: stopCondition] whileFalse.
>
>         ^line
>                 lineHeight: lineHeight + textStyle leading
>                 baseline: baseline + textStyle leading!
>
> Item was changed:
>   ----- Method: MultiCompositionScanner>>cr (in category 'stop
> conditions') -----
>   cr
>         "Answer true. Set up values for the text line interval currently
> being
>         composed."
>
>         pendingKernX := 0.
> +       (lastIndex < text size and: [(text at: lastIndex) = Character cr
> and: [(text at: lastIndex+1) = Character lf]]) ifTrue: [lastIndex :=
> lastIndex + 1].
> -       (lastIndex < text size and: [(text at: lastIndex) = CR and: [(text
> at: lastIndex+1) = Character lf]]) ifTrue: [lastIndex := lastIndex + 1].
>         line stop: lastIndex.
>         spaceX := destX.
>         line paddingWidth: rightMargin - spaceX.
>         ^true!
>
> Item was changed:
>   ----- Method: MultiCompositionScanner>>endOfRun (in category 'stop
> conditions') -----
>   endOfRun
>         "Answer true if scanning has reached the end of the paragraph.
>         Otherwise step conditions (mostly install potential new font) and
> answer
>         false."
>
>         | runLength |
>         lastIndex = text size
>         ifTrue: [line stop: lastIndex.
>                         spaceX := destX.
>                         line paddingWidth: rightMargin - destX.
>                         ^true]
>         ifFalse:        [
> -                       "(text at: lastIndex) charCode = 32 ifTrue: [destX
> := destX + spaceWidth]."
>                         runLength := (text runLengthFor: (lastIndex :=
> lastIndex + 1)).
>                         runStopIndex := lastIndex + (runLength - 1).
>                         self setStopConditions.
>                         ^false]
>   !
>
> Item was removed:
> - ----- Method: MultiCompositionScanner>>isBreakableAt:in:in: (in category
> 'multilingual scanning') -----
> - isBreakableAt: index in: sourceString in: encodingClass
> -
> -       ^ encodingClass isBreakableAt: index in: sourceString.
> - !
>
> Item was removed:
> - ----- Method: MultiCompositionScanner>>setFont (in category 'stop
> conditions') -----
> - setFont
> -       super setFont.
> -       breakAtSpace := false.!
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20130927/05d689da/attachment.htm


More information about the Squeak-dev mailing list