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

Tobias Pape Das.Linux at gmx.de
Sun Sep 29 17:32:15 UTC 2019


No octopus has that many arms...

> On 29.09.2019, at 19:05, commits at source.squeak.org wrote:
> 
> 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