The Trunk: Morphic-mt.2220.mcz

[email protected] Mon, 27 Jul 2026 07:05:05 0000
Newsgroups gmane.comp.lang.smalltalk.squeak.general
Message-ID <[email protected]>
Marcel Taeumel uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-mt.2220.mcz

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

Name: Morphic-mt.2220
Author: mt
Time: 27 July 2026, 9:05:03.268417 am
UUID: a61262da-713a-1543-b63c-b93315ff8831
Ancestors: Morphic-mt.2219

Fixes some older method timestamps. For Release Notes, adds example to ScrollPane.

=============== Diff against Morphic-mt.2219 ===============

Item was changed:
  ----- Method: MorphicModel>>installModelIn: (in category 'debug and other') -----
  installModelIn: aWorld
  
  	self wantsSlot ifFalse: [^ self].  "No real need to install"
  	slotName := aWorld model addPartNameLike: self class name withValue: self.
  	slotName ifNil: [^ self].  "user chose bad slot name"
  	self model: aWorld model slotName: slotName.
  	self compilePropagationMethods.
  	aWorld model compileAccessForSlot: slotName.
  !

Item was changed:
  ----- Method: MorphicModel>>wantsSlot (in category 'accessing') -----
  wantsSlot
  	"Override this default for models that want to be installed in theri model"
  	^ false!

Item was changed:
  ----- Method: PolygonMorph>>makeBackArrow (in category 'menu') -----
  makeBackArrow
  	arrows := #back.
  	self computeBounds!

Item was changed:
  ----- Method: PolygonMorph>>makeBothArrows (in category 'menu') -----
  makeBothArrows
  	arrows := #both.
  	self computeBounds!

Item was changed:
  ----- Method: PolygonMorph>>makeForwardArrow (in category 'menu') -----
  makeForwardArrow
  	arrows := #forward.
  	self computeBounds!

Item was changed:
  ----- Method: PolygonMorph>>makeNoArrows (in category 'menu') -----
  makeNoArrows
  	arrows := #none.
  	self computeBounds!

Item was added:
+ ----- Method: ScrollPane class>>exampleNested (in category 'examples') -----
+ exampleNested
+ 
+ 	| row1 row2 scrollPane1 scrollPane2 |
+ 	scrollPane1 := ScrollPane new.
+ 	scrollPane1 extent: 300 px asPoint.
+ 	scrollPane1 layoutFrame: LayoutFrame fullFrame.
+ 	scrollPane1 showHScrollBarOnlyWhenNeeded.
+ 	scrollPane1 scroller
+ 		changeTableLayout;
+ 		cellPositioning: #topLeft;
+ 		addMorphBack: 'Outer scroll pane' asMorph.
+ 	scrollPane2 := ScrollPane new.
+ 	scrollPane2 extent: 150 px asPoint.
+ 	scrollPane2 showHScrollBarOnlyWhenNeeded.
+ 	row2 := Morph new
+ 		color: Color orange;
+ 		changeTableLayout;
+ 		hResizing: #shrinkWrap;
+ 		vResizing: #shrinkWrap;
+ 		listDirection: #leftToRight;
+ 		cellPositioning: #topLeft;
+ 		cellGap: 2 px;
+ 		addMorphBack: 'This is a watch:' asMorph;
+ 		addMorphBack: (WatchMorph new extent: 200 px asPoint);
+ 		addMorphBack: ('That was the watch.' asMorph cellPositioning: #bottomRight);
+ 		yourself.
+ 	scrollPane2 scroller
+ 		changeTableLayout;
+ 		cellPositioning: #topLeft;
+ 		addMorphBack: 'Inner scroll pane' asMorph;
+ 		addMorphBack: row2;
+ 		addMorphBack: 'Carpe Squeak!!' asText allBold asMorph.
+ 	row1 := Morph new
+ 		color: Color yellow;
+ 		changeTableLayout;
+ 		hResizing: #shrinkWrap;
+ 		vResizing: #shrinkWrap;
+ 		listDirection: #leftToRight;
+ 		cellPositioning: #topLeft;
+ 		cellGap: 2 px;
+ 		addMorphBack: 'Nested pane...' asMorph;
+ 		addMorphBack: scrollPane2;
+ 		addMorphBack: '...is over.' asMorph;
+ 		yourself.
+ 	scrollPane1 scroller
+ 		addMorphBack: row1;
+ 		addMorphBack: Text textSample asMorph.
+ 	^ scrollPane1 openInWindow!

Item was changed:
  ----- Method: ScrollPane>>wantsSlot (in category 'accessing') -----
  wantsSlot
  	"For now do it the old way, until we sort this out"
  	^ true!

Item was changed:
  ----- Method: SimpleButtonMorph>>extent: (in category 'geometry') -----
  extent: newExtent
  	| label |
  	super extent: newExtent.
  	submorphs size = 1 ifTrue:
  		["keep the label centered"
  		"NOTE: may want to test more that it IS a label..."
  		label := self firstSubmorph.
  		label position: self center - (label extent // 2)]!

Item was changed:
  ----- Method: Slider>>wantsSlot (in category 'testing') -----
  wantsSlot
  	"For now do it the old way, until we sort this out"
  	^ true!

Squeak-dev mailing list -- [email protected]
To unsubscribe send an email to [email protected]