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

commits at source.squeak.org commits at source.squeak.org
Sun Sep 29 17:05:47 UTC 2019


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

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

Name: Morphic-mt.1547
Author: mt
Time: 29 September 2019, 7:05:40.322524 pm
UUID: d35fe693-b8fc-574c-a20b-0b5ce37208ad
Ancestors: Morphic-mt.1546, Morphic-ct.1505, Morphic-ct.1506, Morphic-ct.1507, Morphic-ct.1514, Morphic-ct.1527, Morphic-ct.1530, Morphic-ct.1533, Morphic-ct.1535, Morphic-ct.1536

Merge, merge, merge. :-)

Morphic-ct.1505 - halo scale up in demo mode
Morphic-ct.1506 - window icons scale up in demo mode
Morphic-ct.1507 - bugfix open tool attached to mouse
Morphic-ct.1514 - dialog code clean-up
Morphic-ct.1527 - CollapsedMorph
Morphic-ct.1530 - comments
Morphic-ct.1533 - fix in MorphicProject (fillStyle)
Morphic-ct.1535 - fix in MorphicProject (background)
Morphic-ct.1536 - TextMorph constructors

=============== Diff against Morphic-mt.1546 ===============

Item was added:
+ ----- Method: CollapsedMorph class>>createReplacementFor:in: (in category 'instance creation') -----
+ createReplacementFor: aMorph in: anOwner
+ 
+ 	^ self new
+ 		beReplacementFor: aMorph in: anOwner;
+ 		yourself!

Item was changed:
  ----- Method: CollapsedMorph>>beReplacementFor: (in category 'collapse/expand') -----
  beReplacementFor: aMorph
+ 	"Encapsulate aMorph with the CollapsedMorph and display the latter"
  
+ 	| itsWorld |
- 	| itsWorld priorPosition |
  	(itsWorld := aMorph world) ifNil: [^self].
+ 	self beReplacementFor: aMorph in: itsWorld.!
- 	uncollapsedMorph := aMorph.
- 			
- 	self setLabel: aMorph externalName.
- 	aMorph delete.
- 	itsWorld addMorphFront: self.
- 	self collapseOrExpand.
- 	(priorPosition := aMorph valueOfProperty: #collapsedPosition ifAbsent: [nil])
- 	ifNotNil:
- 		[self position: priorPosition].
- !

Item was added:
+ ----- Method: CollapsedMorph>>beReplacementFor:in: (in category 'collapse/expand') -----
+ beReplacementFor: aMorph in: anOwner
+ 	"Encapsulate aMorph with the CollapsedMorph and display the latter in anOwner"
+ 
+ 	| priorPosition |
+ 	uncollapsedMorph := aMorph.
+ 	
+ 	self setLabel: aMorph externalName.
+ 	aMorph delete.
+ 	self privateOwner: anOwner. "lest RealEstateAgent fail at positioning me"
+ 	self collapseOrExpand.
+ 	anOwner addMorphFront: self.
+ 	(priorPosition := aMorph valueOfProperty: #collapsedPosition ifAbsent: [nil])
+ 		ifNotNil: [self position: priorPosition].!

Item was added:
+ ----- Method: CollapsedMorph>>centerWithWrappees: (in category 'adjusting') -----
+ centerWithWrappees: aPoint
+ 
+ 	self center: aPoint.
+ 	uncollapsedMorph center: aPoint.!

Item was added:
+ ----- Method: CollapsedMorph>>uncollapsedMorph (in category 'accessing') -----
+ uncollapsedMorph
+ 
+ 	^ uncollapsedMorph!

Item was changed:
  ----- Method: DialogWindow>>exploreInvocation (in category 'running') -----
  exploreInvocation
  
+ 	self exclusive: false.
+ 	(self findInvocationContext stack collect: #method)
+ 		explore!
- 	| result context |
- 	self exclusive: false. "We want to explore."
- 
- 	result := OrderedCollection new.
- 	context := self findInvocationContext.
- 	
- 	[context sender] whileNotNil: [
- 		result add: context method.
- 		context := context sender].
- 	result add: context method.
- 
- 	result explore.!

Item was changed:
  ----- Method: HaloMorph>>addHandlesForWorldHalos (in category 'private') -----
  addHandlesForWorldHalos
  	"Add handles for world halos, like the man said"
  
  	| box w |
  	w := self world ifNil:[target world].
  	self removeAllMorphs.  "remove old handles, if any"
  	self bounds: target bounds.
  	box := w bounds insetBy: self handleSize // 2.
  	target addWorldHandlesTo: self box: box.
  
  	Preferences uniqueNamesInHalos ifTrue:
  		[innerTarget assureExternalName].
+ 	self
+ 		addNameBeneath: ((box insetBy: (0 at 0 corner: 0 at 10))
+ 			scaleBy: RealEstateAgent scaleFactor)
+ 		string: innerTarget externalName.
- 	self addNameBeneath: (box insetBy: (0 at 0 corner: 0 at 10)) string: innerTarget externalName.
  	growingOrRotating := false.
  	self layoutChanged.
  	self changed.
  !

Item was changed:
  ----- Method: HaloMorph>>basicBox (in category 'private') -----
  basicBox
+ 	| minSide outset anExtent aBox w |
- 	| aBox minSide anExtent w |
  	minSide := 4 * self handleSize.
+ 	outset := 8 * RealEstateAgent scaleFactor.
+ 	anExtent := (self extent + self handleSize + outset) max: minSide asPoint.
- 	anExtent := ((self width + self handleSize + 8) max: minSide) @
- 				((self height + self handleSize + 8) max: minSide).
  	aBox := Rectangle center: self center extent: anExtent.
  	w := self world ifNil:[target outermostWorldMorph].
  	^ w
  		ifNil:
  			[aBox]
  		ifNotNil:
  			[aBox intersect: (w viewBox insetBy: self handleSize // 2)]
  !

Item was changed:
  ----- Method: HaloMorph>>createHandleAt:color:iconName: (in category 'private') -----
  createHandleAt: aPoint color: aColor iconName: iconName 
  	| bou handle |
  	bou := Rectangle center: aPoint extent: self handleSize asPoint.
  	Preferences alternateHandlesLook
  		ifTrue: [handle := RectangleMorph newBounds: bou color: aColor.
  			handle useRoundedCorners.
  			self setColor: aColor toHandle: handle]
  		ifFalse: [handle := EllipseMorph newBounds: bou color: aColor].
  	handle borderWidth: 0;
  		 wantsYellowButtonMenu: false.
  	""
  	iconName isNil
  		ifFalse: [| form |
  			form := ScriptingSystem formAtKey: iconName.
  			form isNil
  				ifFalse: [| image |
  					image := ImageMorph new.
+ 					image image: form scaleIconToDisplay.
- 					image image: form.
  					image color: aColor makeForegroundColor.
  					image lock.
  					handle addMorphCentered: image]].
  	""
  	^ handle!

Item was changed:
  ----- Method: HaloMorph>>handleSize (in category 'private') -----
  handleSize
+ 	^ (Preferences biggerHandles
- 	^ Preferences biggerHandles
  		ifTrue: [30]
+ 		ifFalse: [16]) * RealEstateAgent scaleFactor!
- 		ifFalse: [16]!

Item was changed:
  ----- Method: Morph>>hResizing (in category 'layout-properties') -----
  hResizing
  	"Layout specific. This property describes how the receiver should be resized with respect to its owner and its children. Possible values are:
  		#rigid			-	do not resize the receiver
  		#spaceFill		-	resize to fill owner's available space
+ 		#shrinkWrap	-	resize to fit children
- 		#shrinkWrap	- resize to fit children
  	"
  	| props |
  	props := self layoutProperties.
  	^props ifNil:[#rigid] ifNotNil:[props hResizing].!

Item was changed:
  ----- Method: MorphicProject>>setAsBackground: (in category 'utilities') -----
  setAsBackground: aFormOrColorOrFillStyle
  	"Set  aForm as a background image."
  
  	| thisWorld newFill oldFill |
+ 	thisWorld := self world.
- 	thisWorld := self currentWorld.
  	
  	oldFill := thisWorld fillStyle.
  	thisWorld fillStyle: aFormOrColorOrFillStyle.
  	newFill := thisWorld fillStyle.
  	
  	newFill rememberCommand:
  		(Command new cmdWording: 'set background to a picture' translated;
  			undoTarget: thisWorld selector: #fillStyle: argument: oldFill;
  			redoTarget: thisWorld selector: #fillStyle: argument: newFill).
  	
+ 	thisWorld setProperty: #hasCustomBackground toValue: true.!
- 	thisWorld setProperty: #hasCustomBackground toValue: true.
- !

Item was changed:
  ----- Method: MorphicProject>>setWorldBackground: (in category 'initialize') -----
  setWorldBackground: force
  
  	((world hasProperty: #hasCustomBackground) and: [force not])
  		ifTrue: [^ self].
  
  	"If the user has a custom background, propagate it into the new project."
  	((Project current ~~ self and: [Project current isMorphic]) and: [Project current world hasProperty: #hasCustomBackground])
  		ifTrue: [
+ 			world fillStyle: Project current world fillStyle copy.
- 			world fillStyle: Project current world fillStyle.
  			world setProperty: #hasCustomBackground toValue: true]
  		ifFalse: [
  			world removeProperty: #hasCustomBackground.
  			world fillStyle: (self userInterfaceTheme background ifNil: [self class defaultFill])].!

Item was changed:
  ----- Method: PasteUpMorph>>setAsBackground: (in category 'visual properties') -----
  setAsBackground: aFormOrColorOrFillStyle
  
+ 	| project |
+ 	(self outermostWorldMorph == self and: [(project := self project) isMorphic])
+ 		ifTrue: [project setAsBackground: aFormOrColorOrFillStyle]
- 	(self outermostWorldMorph == self and: [Project current isMorphic])
- 		ifTrue: [Project current setAsBackground: aFormOrColorOrFillStyle]
  		ifFalse: [self fillStyle: aFormOrColorOrFillStyle].!

Item was changed:
  ----- Method: SystemWindow>>createBox: (in category 'initialization') -----
  createBox: aForm
  	"create a button with a form to be used in the label area"
  	
  	| box |
  	box := SystemWindowButton new.
  	box color: Color transparent;
  		 target: self;
  		 useSquareCorners;
  		 borderWidth: 0;
+ 		 labelGraphic: aForm scaleIconToDisplay;
- 		 labelGraphic: aForm;
  		 extent: self boxExtent.
  	^ box!

Item was changed:
  ----- Method: SystemWindow>>justDroppedInto:event: (in category 'geometry') -----
  justDroppedInto: aMorph event: anEvent
  
  	isCollapsed
  		ifTrue: [self position: ((self position max: 0 at 0) grid: 8 at 8).
  				collapsedFrame := self bounds]
  		ifFalse: [fullFrame := self bounds].
  
  	self beKeyWindow.
  	self hasDropShadow: Preferences menuAppearance3d. "See #startDragFromLabel:."
  			
  	aMorph == self world ifTrue: [self assureLabelAreaVisible].
  
  	(Project uiManager openToolsAttachedToMouseCursor and: (self hasProperty: #initialDrop))
  		ifTrue: [
  			self removeProperty: #initialDrop.
  			(self submorphs detect: [:m | m isKindOf: BottomRightGripMorph] ifNone: [])
  				ifNotNil: [:grip | 
  					grip
  						referencePoint: anEvent position;
  						setProperty: #targetHadDropShadow toValue: true "See MorphicToolBuilder >> #open:".
+ 					self
+ 						hasDropShadow: false;
+ 						lookFocused.
+ 					anEvent hand newMouseFocus: grip.]].
- 					self hasDropShadow: false.
- 					anEvent hand newMouseFocus: grip]].
  			
  	^super justDroppedInto: aMorph event: anEvent!

Item was added:
+ ----- Method: TextMorph class>>string:fontName: (in category 'instance creation') -----
+ string: aString fontName: aName
+ 
+ 	^ self
+ 		string: aString
+ 		fontName: aName
+ 		size: TextStyle defaultFont pixelSize!

Item was added:
+ ----- Method: TextMorph class>>string:fontName:size: (in category 'instance creation') -----
+ string: aString fontName: aName size: aSize
+ 
+ 	^ self
+ 		string: aString
+ 		fontName: aName
+ 		size: aSize
+ 		wrap: false "...because we don't know the initial width to wrap..."
+ !

Item was added:
+ ----- Method: TextMorph class>>string:fontName:size:wrap: (in category 'instance creation') -----
+ string: aString fontName: aName size: aSize wrap: shouldWrap
+ 
+ 	^ self new
+ 		string: aString fontName: aName size: aSize wrap: shouldWrap;
+ 		yourself!

Item was added:
+ ----- Method: TextMorph class>>string:size: (in category 'instance creation') -----
+ string: aString size: pixelSize
+ 
+ 	^ self
+ 		string: aString
+ 		fontName: TextStyle defaultFont familyName
+ 		size: pixelSize!

Item was changed:
+ ----- Method: TextMorph>>fontName:pointSize: (in category 'initialization') -----
- ----- Method: TextMorph>>fontName:pointSize: (in category 'accessing') -----
  fontName: fontName pointSize: fontSize
  	| newTextStyle |
  	newTextStyle := ((TextStyle named: fontName asSymbol) ifNil: [ TextStyle default ]) copy.
  	newTextStyle ifNil: [self error: 'font ', fontName, ' not found.'].
  
  	textStyle := newTextStyle.
  	text addAttribute: (TextFontChange fontNumber: (newTextStyle fontIndexOfPointSize: fontSize)).
+ 	self releaseParagraph.!
- 	paragraph ifNotNil: [paragraph textStyle: newTextStyle]!

Item was changed:
+ ----- Method: TextMorph>>fontName:size: (in category 'initialization') -----
- ----- Method: TextMorph>>fontName:size: (in category 'accessing') -----
  fontName: fontName size: fontSize
  	| newTextStyle |
  	newTextStyle := ((TextStyle named: fontName asSymbol) ifNil: [ TextStyle default ]) copy.
  	textStyle := newTextStyle.
  	text addAttribute: (TextFontChange fontNumber: (newTextStyle fontIndexOfSize: fontSize)).
+ 	self releaseParagraph.!
- 	paragraph ifNotNil: [paragraph textStyle: newTextStyle]!

Item was changed:
  ----- Method: TextMorph>>string:fontName:size:wrap: (in category 'initialization') -----
  string: aString fontName: aName size: aSize wrap: shouldWrap
  
  	shouldWrap
  		ifTrue: [self contentsWrapped: aString]
+ 		ifFalse: [self contentsAsIs: aString].
+ 
- 		ifFalse: [self contents: aString].
  	self fontName: aName size: aSize!



More information about the Squeak-dev mailing list