[Pkg] The Trunk: ToolBuilder-Morphic-mt.167.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Jun 5 11:29:46 UTC 2016


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

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

Name: ToolBuilder-Morphic-mt.167
Author: mt
Time: 5 June 2016, 1:29:37.065092 pm
UUID: d6d3ad9e-f82f-c44d-b2a6-6d907e129fa1
Ancestors: ToolBuilder-Morphic-mt.166

Appendix to Morphic-mt.1167.

Fixes construction of pluggable scroll panes and update of pluggable panel morphs, which are used in pluggable scroll panes.

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

Item was changed:
  ----- Method: MorphicToolBuilder>>buildPluggableScrollPane: (in category 'widgets optional') -----
  buildPluggableScrollPane: spec
  
+ 	| widget panel |
- 	| widget |
  	widget := self scrollPaneClass new.
  	widget model: spec model.
  	self register: widget id: spec name.
  	
  	spec children
  		ifNotNil: [:obj |
  			"Create panel morph to scroll it."
+ 			panel := self pluggablePanelSpec new
+ 				model: spec model;
- 			widget morph: (self pluggablePanelSpec new
  				children: obj;
  				layout: spec layout;
+ 				horizontalResizing: (spec layout == #proportional ifTrue: [#rigid] ifFalse: [#shrinkWrap]);
+ 				verticalResizing: (spec layout == #proportional ifTrue: [#rigid] ifFalse: [#shrinkWrap]);
+ 				buildWith: self.
+ 			widget morph: panel.
+ 			]
- 				frame: (0 at 0 corner: 1 at 1);
- 				buildWith: self).
- 			spec layout ~~ #proportional ifTrue: [
- 				"Fix #spaceFill resizing because it does not make sense in scroll pane."
- 				widget morph
- 					hResizing: #shrinkWrap;
- 					vResizing: #shrinkWrap.
- 				widget morph submorphsDo: [:m |
- 					m
- 						extent: 100 at 100;
- 						flag: #refactor; "mt: Restore orginial properties?"
- 						hResizing: #rigid;
- 						vResizing: #rigid]
- 				]]
  		ifNil: [spec morph
  			ifNotNil: [:m | widget morph: m]
  			ifNil: [widget morphClass: spec morphClass]].
  	
  	self setFrame: spec frame in: widget.
  	self setLayoutHintsFor: widget spec: spec.
  	
  	parent ifNotNil: [self add: widget to: parent].
  	
  	widget borderWidth: spec borderWidth.
  	
+ 	"Override default scroll bar policies if needed. Widget will use preference values otherwise."
+ 	spec hScrollBarPolicy ifNotNil: [:policy |
+ 		policy caseOf: {
+ 			[#always] -> [widget alwaysShowHScrollBar].
+ 			[#never] -> [widget hideHScrollBarIndefinitely].
+ 			[#whenNeeded] -> [widget showHScrollBarOnlyWhenNeeded]}].
+ 	spec vScrollBarPolicy ifNotNil: [:policy | 
+ 		policy caseOf: {
+ 			[#always] -> [widget alwaysShowVScrollBar].
+ 			[#never] -> [widget hideVScrollBarIndefinitely].
+ 			[#whenNeeded] -> [widget showVScrollBarOnlyWhenNeeded]}].
- 	spec hScrollBarPolicy caseOf: {
- 		[#always] -> [widget alwaysShowHScrollBar].
- 		[#never] -> [widget hideHScrollBarIndefinitely].
- 		[#whenNeeded] -> [widget showHScrollBarOnlyWhenNeeded]}.
- 	spec vScrollBarPolicy caseOf: {
- 		[#always] -> [widget alwaysShowVScrollBar].
- 		[#never] -> [widget hideVScrollBarIndefinitely].
- 		[#whenNeeded] -> [widget showVScrollBarOnlyWhenNeeded]}.
  	
  	^ widget!

Item was changed:
  ----- Method: PluggablePanelMorph>>update: (in category 'update') -----
  update: selectorSymbolOrNil 
  	selectorSymbolOrNil ifNil: [ ^ self ].
  	selectorSymbolOrNil = getChildrenSelector ifTrue:
  		[ self
  			 removeAllMorphs ;
+ 			 addAllMorphs: self children .
+ 			
+ 		"Let my children take all the place unless my extent is described by them."
+ 		self hResizing ~~ #shrinkWrap ifTrue:
+ 			[ self submorphsDo: [ : m | m hResizing: #spaceFill ] ].
+ 		self vResizing ~~ #shrinkWrap ifTrue:
+ 			[ self submorphsDo: [ : m | m vResizing: #spaceFill ] ].
+ 		
+ 		"Tell dependents about this update. There is no pluggable notification for changed submorphs."
+ 		self changed: #submorphs ].!
- 			 addAllMorphs: self children ;
- 			 submorphsDo:
- 				[ : m | m
- 					 hResizing: #spaceFill ;
- 					 vResizing: #spaceFill ] ]!



More information about the Packages mailing list