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

commits at source.squeak.org commits at source.squeak.org
Tue Jan 12 13:09:58 UTC 2021


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

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

Name: ToolBuilder-Morphic-mt.271
Author: mt
Time: 12 January 2021, 2:09:57.073356 pm
UUID: b77f7e90-6347-f242-8b9b-921013f06122
Ancestors: ToolBuilder-Morphic-mt.270

Removes the "breathing space" in a list-chooser's preferred extent. Thanks to Chris (cbc) for clarifying the issue with the cellInset in LazyListMorph.

Note that I do have a better solution for min/max/preferredExtent in combination with ProportionalLayout and LayoutFrame. Maybe now is the time to invest more time into that.

Also note that I will now investigate that 2-pixel-bug that causes the vertical scroll bar to remain after hitting the expand button in a dialog. It is related to the list's and input-field's borderWidth.

=============== Diff against ToolBuilder-Morphic-mt.270 ===============

Item was changed:
  ----- Method: ListChooser>>initialExtent (in category 'building') -----
  initialExtent
  
  	| listFont itemCount maxItemSize cellSize |
  	listFont := Preferences standardListFont.
  	itemCount := items size.
  	maxItemSize := items inject: 0 into: [:max :item | max max: item size].
  	cellSize := (listFont widthOf: $m) @ listFont height.
  	
+ 	^ ((maxItemSize min: 20 max: 10)
+ 		@ (itemCount min: 15 max: 5)
- 	^ ((maxItemSize + 1 "breathing space" min: 20 max: 10)
- 		@ (itemCount + 1 "breathing space" min: 15 max: 5)
  		* cellSize) + (0@ self searchBarHeight)!

Item was changed:
  ----- Method: ListChooser>>preferredExtent (in category 'building') -----
  preferredExtent
  
  	| listFont cellSize |
  	listFont := Preferences standardListFont.
  	cellSize := (listFont widthOf: $m) @ listFont height.
  	
  	^  ((items inject: 0 into: [:max :item | max max: (listFont widthOfString: item)])
  		@ (items size * listFont height))
- 			+ ((1 at 1) * cellSize) "breathing space"
  			+ (0@ self searchBarHeight)!

Item was changed:
  ----- Method: ListMultipleChooser>>initialExtent (in category 'toolbuilder') -----
  initialExtent
  
  	| listFont itemCount maxItemSize cellSize |
  	listFont := Preferences standardListFont.
  	itemCount := labels size.
  	maxItemSize := labels inject: 0 into: [:max :item | max max: item size].
  	cellSize := (listFont widthOf: $m) @ listFont height.
  	
+ 	^ ((maxItemSize min: 20 max: 10)
+ 		@ (itemCount min: 15 max: 5)
- 	^ ((maxItemSize + 1 "breathing space" min: 20 max: 10)
- 		@ (itemCount + 1 "breathing space" min: 15 max: 5)
  		* cellSize)!

Item was changed:
  ----- Method: ListMultipleChooser>>preferredExtent (in category 'toolbuilder') -----
  preferredExtent
  
  	| listFont cellSize |
  	listFont := Preferences standardListFont.
  	cellSize := (listFont widthOf: $m) @ listFont height.
  	
  	^  ((labels inject: 0 into: [:max :item | max max: (listFont widthOfString: item)])
+ 		@ (labels size * listFont height))!
- 		@ (labels size * listFont height))
- 			+ ((1 at 1) * cellSize) "breathing space"!

Item was changed:
  ----- Method: PluggableDialogWindow>>expandDialogPane (in category 'running') -----
  expandDialogPane
+ 	"Expand the dialog pane to its preferred extent, including the pane's extra layout inset used for grips. Then try again to move to the dialog's preferred position."
- 	"Expand the dialog pane to its preferred extent. Honor the visible area in the world."
  
+ 	| extra |
+ 	self flag: #preferredExtentWorkaround. "mt: Working with a widget's min, max, and preferred extent is still very awkward using proportional layouts and layout frames. For now, approximate extra spacing to accommodate ListChooser and ListMultipleChooser only."
+ 	extra := LazyListMorph new cellInset. extra := extra topLeft + extra bottomRight.
- 	| visibleArea decorationOffset expandedExtent |
- 	visibleArea := self currentWorld visibleClearArea.
- 	decorationOffset := self extent - self paneMorph extent.
- 	expandedExtent := self model preferredExtent + (self paneMorph layoutInset * 2) asPoint.
- 	
- 	self paneMorph extent: (expandedExtent min: visibleArea extent - decorationOffset).
  
+ 	self paneMorph extent:
+ 		(self model preferredExtent
+ 			+ (self paneMorph layoutInset * 2) asPoint
+ 			+ extra).
- 	self fullBounds.
  	self moveToPreferredPosition.!



More information about the Squeak-dev mailing list