[squeak-dev] The Trunk: Morphic-cmm.805.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Apr 1 16:12:34 UTC 2015


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 ]!



More information about the Squeak-dev mailing list