Chris Muller uploaded a new version of Morphic to project The Trunk: http://source.squeak.org/trunk/Morphic-cmm.805.mcz
==================== Summary ====================
Name: Morphic-cmm.805 Author: cmm Time: 1 April 2015, 11:11:23.537 am UUID: 2667ac2e-7e09-4a67-8efe-2da1a499f090 Ancestors: Morphic-mt.804
- SimpleHierarchicalListMorph's now honor preferences: mouseOverForKeyboardFocus Vertical Smart Splitters - Don't let splitter bars be dragged further than their PluggableListMorphs want them to go. - PluggableTextMorph's now honor Vertical Smart Splitters to avoid wrapped lines, if possible.
=============== Diff against Morphic-mt.804 ===============
Item was added: + ----- Method: MorphicModel>>charactersOccluded (in category 'geometry') ----- + charactersOccluded + "Subclasses override as necessary to keep smart-splitters balanced." + ^ 0!
Item was changed: + ----- Method: MorphicModel>>model (in category 'accessing') ----- - ----- Method: MorphicModel>>model (in category 'access') ----- model ^ model!
Item was changed: + ----- Method: MorphicModel>>slotName (in category 'accessing') ----- - ----- Method: MorphicModel>>slotName (in category 'access') ----- slotName ^ slotName!
Item was changed: + ----- Method: MorphicModel>>wantsSlot (in category 'accessing') ----- - ----- Method: MorphicModel>>wantsSlot (in category 'access') ----- wantsSlot "Override this default for models that want to be installed in theri model" ^ false!
Item was changed: + ----- Method: PluggableListMorph>>charactersOccluded (in category 'geometry') ----- - ----- Method: PluggableListMorph>>charactersOccluded (in category 'accessing') ----- charactersOccluded "Answer the number of characters occluded in my #visibleList by my right edge." | listIndex | listIndex:=0. ^ self visibleList inject: 0 into: [ : sum : each | | eachString totalWidth indexOfLastVisible iconWidth | totalWidth:=0. eachString := each asString "withBlanksTrimmed". iconWidth := (self iconAt: (listIndex := listIndex+1)) ifNil:[0] ifNotNil: [ : icon | icon width+2 ]. indexOfLastVisible := ((1 to: eachString size) detect: [ : stringIndex | (totalWidth:=totalWidth+(self font widthOf: (eachString at: stringIndex))) > (self width - (scrollBar ifNil: [ 0 ] ifNotNil: [ scrollBar width ]) - iconWidth) ] ifNone: [ eachString size + 1 ]) - 1. sum + (eachString size - indexOfLastVisible) ]!
Item was changed: ----- Method: PluggableListMorph>>iconAt: (in category 'model access') ----- iconAt: anInteger
| index | index := (self hasFilter and: [list notNil]) + ifTrue: [self getFullList indexOf: (list at: anInteger ifAbsent: [^nil])] - ifTrue: [self getFullList indexOf: (list at: anInteger)] ifFalse: [anInteger]. ^ getIconSelector ifNotNil: [model perform: getIconSelector with: index]!
Item was added: + ----- Method: PluggableListMorph>>initialize (in category 'geometry') ----- + initialize + super initialize. + self minWidth: 38!
Item was added: + ----- Method: PluggableTextMorph>>charactersOccluded (in category 'geometry') ----- + charactersOccluded + "Let the receiver suggest to its neighboring vertical Splitter(s) that they try to optimize their position such that none of the receivers lines need to wrap." + | numberOfLogicalLines numberOfPhysicalLines | + numberOfLogicalLines := self text lineCount. + numberOfPhysicalLines:= textMorph paragraph numberOfLines. + ^ numberOfPhysicalLines - numberOfLogicalLines!
Item was changed: ----- Method: ProportionalSplitterMorph>>charactersOccludedIn: (in category 'layout') ----- charactersOccludedIn: aCollection ^ aCollection inject: 0 into: [ : max : each | max max: + (each isMorphicModel - (each isPluggableListMorph ifTrue: [ each charactersOccluded ] ifFalse: [ 0 ]) ]!
Item was added: + ----- Method: ScrollPane>>scrollBar (in category 'testing') ----- + scrollBar + ^ scrollBar!
Item was added: + ----- Method: SimpleHierarchicalListMorph>>mouseLeave: (in category 'event handling') ----- + mouseLeave: aMouseEvent + super mouseLeave: aMouseEvent. + Preferences mouseOverForKeyboardFocus ifTrue: [ aMouseEvent hand releaseKeyboardFocus: self ]!
squeak-dev@lists.squeakfoundation.org