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

commits at source.squeak.org commits at source.squeak.org
Sun Apr 26 18:13:53 UTC 2015


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

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

Name: Morphic-mt.932
Author: mt
Time: 26 April 2015, 8:13:16.689 pm
UUID: 9f761836-2e52-a44f-b10b-4bee1ada586c
Ancestors: Morphic-mt.931

Just like scroll panes, cache minimum button extent, too. Leads to faster re-layouting.

Note: The three buttons below the class list in the system browser insist to keep their fractions and thus will not shrink as far as the browsers button bar, which as a table layout instead of a proportional layout.

=============== Diff against Morphic-mt.931 ===============

Item was changed:
  ----- Method: PluggableButtonMorph>>font: (in category 'accessing') -----
  font: aFont
  
  	font = aFont ifTrue: [^ self].
  	font := aFont.
+ 	self updateMinimumExtent.!
- 	self extent: self minExtent.!

Item was added:
+ ----- Method: PluggableButtonMorph>>hResizing: (in category 'layout-properties') -----
+ hResizing: aSymbol
+ 	"We adapt our minimum extent according to our resize behavior."
+ 	
+ 	self hResizing == aSymbol ifTrue: [^ self].
+ 	super hResizing: aSymbol.
+ 	self updateMinimumExtent.!

Item was changed:
  ----- Method: PluggableButtonMorph>>label: (in category 'accessing') -----
  label: aStringOrTextOrMorph
  
  	label = aStringOrTextOrMorph ifTrue: [^ self].
  	label := aStringOrTextOrMorph isText
  		ifTrue: [aStringOrTextOrMorph asMorph]
  		ifFalse: [aStringOrTextOrMorph].
  	
+ 	self updateMinimumExtent.!
- 	self extent: self minExtent.!

Item was removed:
- ----- Method: PluggableButtonMorph>>minHeight (in category 'layout') -----
- minHeight
- 
- 	| vMin |
- 	self label isMorph
- 		ifTrue: [^ super minHeight max: self label minHeight].
- 
- 	vMin := 16.
- 	self vResizing == #shrinkWrap
- 		ifTrue: [vMin := self font height].
- 	
- 	self layoutInset isRectangle
- 		ifTrue: [vMin := vMin + self layoutInset top + self layoutInset bottom]
- 		ifFalse: [self layoutInset isPoint
- 			ifTrue: [vMin := vMin + (2* self layoutInset y)]
- 			ifFalse: [vMin := vMin + (2* self layoutInset)]].
- 	^ super minHeight max: vMin!

Item was removed:
- ----- Method: PluggableButtonMorph>>minWidth (in category 'layout') -----
- minWidth
- 
- 	| hMin |
- 	self label isMorph
- 		ifTrue: [^ super minWidth max: self label minWidth].
- 
- 	hMin := 16.
- 	self hResizing == #shrinkWrap
- 		ifTrue: [hMin := (self font widthOfString: self label) max: self labelShrinkThreshold].
- 	
- 	self layoutInset isRectangle
- 		ifTrue: [hMin := hMin + self layoutInset left + self layoutInset right]
- 		ifFalse: [self layoutInset isPoint
- 			ifTrue: [hMin := hMin + (2* self layoutInset x)]
- 			ifFalse: [hMin := hMin + (2* self layoutInset)]].
- 	^ super minWidth max: hMin!

Item was added:
+ ----- Method: PluggableButtonMorph>>updateMinimumExtent (in category 'layout') -----
+ updateMinimumExtent
+ 
+ 	| hMin vMin |
+ 	self label isMorph
+ 		ifTrue: [^ self minimumExtent: self label minExtent].
+ 
+ 	hMin := vMin := 16.
+ 	self hResizing == #shrinkWrap
+ 		ifTrue: [hMin := (self font widthOfString: self label) max: self labelShrinkThreshold].
+ 	self vResizing == #shrinkWrap
+ 		ifTrue: [vMin := self font height].
+ 			
+ 	self layoutInset isRectangle
+ 		ifTrue: [
+ 			hMin := hMin + self layoutInset left + self layoutInset right.
+ 			vMin := vMin + self layoutInset top + self layoutInset bottom]
+ 		ifFalse: [self layoutInset isPoint
+ 			ifTrue: [
+ 				hMin := hMin + (2* self layoutInset x).
+ 				vMin := vMin + (2* self layoutInset y)]
+ 			ifFalse: [
+ 				hMin := hMin + (2* self layoutInset).
+ 				vMin := vMin + (2* self layoutInset)]].
+ 	
+ 	self minimumExtent: hMin @ vMin!

Item was added:
+ ----- Method: PluggableButtonMorph>>vResizing: (in category 'layout-properties') -----
+ vResizing: aSymbol
+ 	"We adapt our minimum extent according to our resize behavior."
+ 	
+ 	self vResizing == aSymbol ifTrue: [^ self].
+ 	super vResizing: aSymbol.
+ 	self updateMinimumExtent.!

Item was changed:
+ (PackageInfo named: 'Morphic') postscript: '"Initialize the key bindings and menus"
- (PackageInfo named: 'Morphic') postscript: '"Update existing scrollbars."
- ScrollPane allSubInstances do: [:sc |
- 	sc vScrollBarPolicy ifNil: [
- 		sc vScrollBarPolicy: #whenNeeded.
- 		(sc hasProperty: #vScrollBarAlways)
- 			ifTrue: [sc vScrollBarPolicy: #always].
- 		(sc hasProperty: #noVScrollBarPlease)
- 			ifTrue: [sc vScrollBarPolicy: #never]].
- 	sc hScrollBarPolicy ifNil: [
- 		sc hScrollBarPolicy: #whenNeeded.
- 		(sc hasProperty: #hScrollBarAlways)
- 			ifTrue: [sc hScrollBarPolicy: #always].
- 		(sc hasProperty: #noHScrollBarPlease)
- 	
- 			ifTrue: [sc hScrollBarPolicy: #never]].
- 	sc scrollBarThickness: ScrollPane scrollBarThickness.
- 	
- 	sc
- 		resizeScrollBars;
- 		resizeScroller;
- 		hideOrShowScrollBars].
- 
- (Preferences dictionaryOfPreferences at: #alternativeWindowBoxesLook) defaultValue: false.
- 
- "Initialize the key bindings and menus"
  Editor initialize.
  
  "apply the new icons"
  MenuIcons initializeIcons.
  TheWorldMainDockingBar updateInstances.
  
+ "Update minimum extents."
+ PluggableButtonMorph allSubInstancesDo: [:ea |
+ 	ea updateMinimumExtent].'!
- "Keyboard focus indication."
- PluggableTextMorph allSubInstances do: [:m |
- 	m textMorph setProperty: #indicateKeyboardFocus toValue: #never].'!



More information about the Squeak-dev mailing list