[squeak-dev] The Trunk: Morphic-mt.2091.mcz

commits at source.squeak.org commits at source.squeak.org
Wed Feb 22 15:45:04 UTC 2023


Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.2091.mcz

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

Name: Morphic-mt.2091
Author: mt
Time: 22 February 2023, 4:45:02.96655 pm
UUID: 2d5c67db-4fbf-1e47-9d70-7854a92de154
Ancestors: Morphic-mt.2090

Minor fixes in tree items. Well, #children does now actually work but is not used at the moment. Just like #isFilterMatch. Both are currently documentation-only...

=============== Diff against Morphic-mt.2090 ===============

Item was changed:
  ----- Method: IndentingListItemMorph>>children (in category 'accessing') -----
  children
  
  	^ Array streamContents: [:stream |
+ 		self childrenDo: [:each | stream nextPut: each]]!
- 		self childrenDo: [:each | stream add: each]]!

Item was changed:
  ----- Method: IndentingListItemMorph>>collapse (in category 'container protocol') -----
  collapse
  
  	self isExpanded ifFalse: [^ self].
  	
  	self isExpanded: false.
  	
  	firstChild ifNotNil: [:collapsingNode |
  	 	| toDelete |
  		toDelete := OrderedCollection new.
  		collapsingNode withSiblingsDo: [:aNode | aNode recursiveAddTo: toDelete].
+ 		container noteRemovalOfAll: toDelete.
+ 		firstChild := nil].
- 		container noteRemovalOfAll: toDelete].
  	
  	self changed.!

Item was changed:
  ----- Method: IndentingListItemMorph>>drawFilterOn:in: (in category 'drawing') -----
  drawFilterOn: aCanvas in: drawBounds
  	"Draw filter matches if any. Based on LazyListMorph >> #displayFilterOn:for:in:font:."
  	
  	| fillStyle fillHeight leading columnOffsets o cw |
  	filterOffsets ifEmpty: [^ self].
  	
  	fillHeight := font lineGridForMorphs.
  	fillStyle := container filterColor isColor
  		ifTrue: [SolidFillStyle color: container filterColor]
  		ifFalse: [container filterColor].
  	fillStyle isGradientFill ifTrue: [
  		fillStyle origin: drawBounds topLeft.
  		fillStyle direction: 0@ fillHeight].
  	
  	leading := font lineGapSliceForMorphs.
  	
  	columnOffsets := (container columns isNil or: [container columns size = 1])
  		ifTrue: [
  			o := drawBounds left.
  			icon ifNotNil: [o := o + icon width + 2 px].
  			{ o }]
  		ifFalse: [
  			 (0 to: container columns size - 1) collect: [ :column |
  				column = 0
  					ifTrue: [o := drawBounds left]
  					ifFalse: [
  						cw := self widthOfColumn: column.
  						column = 1
  							ifTrue: [ "Reduce width by indentation present in first column only"
  								cw := cw - (drawBounds left - self left) + self hMargin].
  						column + 1 = self class iconColumnIndex ifTrue: [
  							icon ifNotNil: [o := o + icon width + 2 px]].
  						o := o + cw + 5 px]] ].
  	
  	filterOffsets do: [:offset |
  		| highlightRectangle |
  		highlightRectangle := (((columnOffsets at: offset third) + offset first first) @ drawBounds top
  			corner: ((columnOffsets at: offset third) + offset first last) @ (drawBounds top + fillHeight)).
  		aCanvas
+ 			frameAndFillRoundRect: (highlightRectangle outsetBy: 1 px @ 0)
- 			frameAndFillRoundRect: (highlightRectangle outsetBy: 1 at 0)
  			radius: 3 px
  			fillStyle: fillStyle
  			borderWidth: 1 px
  			borderColor: fillStyle asColor twiceDarker.
  		aCanvas
  			drawString: offset second
  			in: (highlightRectangle origin + (0 @ leading) corner: highlightRectangle corner)
  			font: font
  			color: container filterTextColor].!

Item was changed:
  ----- Method: IndentingListItemMorph>>drawOn: (in category 'drawing') -----
  drawOn: aCanvas
  	
  	| tRect sRect |
  	self backgroundColor ifNotNil: [:c |
  		aCanvas fillRectangle: self innerBounds color: c].
  
  	tRect := self toggleRectangle.	
  	self drawToggleOn: aCanvas in: tRect.
  
  	sRect := bounds withLeft: tRect right + self hMargin.
+ 	sRect := sRect top: sRect top + self fontToUse lineGapSliceForMorphs.
- 	sRect := sRect top: sRect top + sRect bottom - self fontToUse height // 2.	
  	
  	(container columns isNil or: [(contents asString indexOf: Character tab) = 0])
  		ifTrue: [self drawLabelOn: aCanvas in: sRect]
  		ifFalse: [self drawLabelInColumnsOn: aCanvas in: sRect].
  		
  	self drawFilterOn: aCanvas in: (bounds withLeft: tRect right + self hMargin).!



More information about the Squeak-dev mailing list