[Pkg] The Trunk: Morphic-cmm.378.mcz

commits at source.squeak.org commits at source.squeak.org
Tue Mar 9 21:28:35 UTC 2010


Chris Muller uploaded a new version of Morphic to project The Trunk:
http://source.squeak.org/trunk/Morphic-cmm.378.mcz

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

Name: Morphic-cmm.378
Author: cmm
Time: 9 March 2010, 3:27:04.295 pm
UUID: 3b79efb6-0588-4fcd-a69a-6db20688cc6e
Ancestors: Morphic-dtl.377

- Fixed bug with MenuMorph>>#addStayUpIcons.
- Utilities class>>#authorInitialsPerSe is often set to an empty string, not nil.  Updated some guards accordingly.
- The changed-indicator was made two-pixels thick from 3.10.  Instead of putting it back to one, I softened it a bit, which looks better and more refined.

=============== Diff against Morphic-dtl.377 ===============

Item was changed:
  ----- Method: PluggableTextMorph>>drawFrameAdornment:on: (in category 'drawing') -----
+ drawFrameAdornment: aColor on: aCanvas 
- drawFrameAdornment: aColor on: aCanvas
  	"Indicate edit status for the text editor"
- 
- 	| form |
- 
  	self class simpleFrameAdornments
+ 		ifTrue:
+ 			[ aCanvas
+ 				frameRectangle: self innerBounds
+ 				width: 1
+ 				color: aColor.
+ 			aCanvas
+ 				frameRectangle: (self innerBounds insetBy: 1)
+ 				width: 1
+ 				color: (aColor alpha: aColor alpha / 3.0) ]
+ 		ifFalse:
+ 			[ | form |
+ 			"Class-side adornment cache is currently using pre-multiplied alpha, so we need to use rule 34 which works for < 32bpp, too."
+ 			form := self class adornmentWithColor: aColor.
+ 			aCanvas
+ 				image: form
+ 				at: self innerBounds topRight - (form width @ 0)
+ 				sourceRect: form boundingBox
+ 				rule: 34 ]!
- 		ifTrue:[^aCanvas frameRectangle: self innerBounds width: 2 color: aColor].
- 
- 	"Class-side adornment cache is currently using pre-multiplied alpha, 
- 	so we need to use rule 34 which works for < 32bpp, too."
- 	form := self class adornmentWithColor: aColor.
- 	aCanvas image: form at: (self innerBounds topRight - (form width at 0))
- 		sourceRect: form boundingBox rule: 34.
- !

Item was changed:
  ----- Method: Morph>>saveOnURL: (in category 'fileIn/out') -----
+ saveOnURL: suggestedUrlString 
- saveOnURL: suggestedUrlString
  	"Save myself on a SmartReferenceStream file.  If I don't already have a url, use the suggested one.  Writes out the version and class structure.  The file is fileIn-able.  UniClasses will be filed out."
- 
  	| url pg stamp pol |
+ 	(pg := self valueOfProperty: #SqueakPage)
+ 		ifNil: [ pg := SqueakPage new ]
+ 		ifNotNil:
+ 			[ pg contentsMorph ~~ self ifTrue:
+ 				[ self inform: 'morph''s SqueakPage property is out of date'.
+ 				pg := SqueakPage new ] ].
+ 	(url := pg url) ifNil: [ url := pg urlNoOverwrite: suggestedUrlString ].
+ 	stamp := Utilities authorInitialsPerSe.
+ 	stamp isEmptyOrNil ifTrue: [ stamp := '*' ].
+ 	pg
+ 		saveMorph: self
+ 		author: stamp.
+ 	SqueakPageCache
+ 		atURL: url
+ 		put: pg.
+ 	"setProperty: #SqueakPage"
+ 	(pol := pg policy) ifNil: [ pol := #neverWrite ].
+ 	pg
+ 		 policy: #now ;
+ 		 dirty: true.
+ 	pg write.
+ 	"force the write"
- 	(pg := self valueOfProperty: #SqueakPage) ifNil: [pg := SqueakPage new]
- 		ifNotNil: [pg contentsMorph ~~ self ifTrue: [
- 				self inform: 'morph''s SqueakPage property is out of date'.
- 				pg := SqueakPage new]].
- 	(url := pg url) ifNil: [url := pg urlNoOverwrite: suggestedUrlString].
- 	stamp := Utilities authorInitialsPerSe ifNil: ['*'].
- 	pg saveMorph: self author: stamp.
- 	SqueakPageCache atURL: url put: pg.	"setProperty: #SqueakPage"
- 	(pol := pg policy) ifNil: [pol := #neverWrite].
- 	pg policy: #now; dirty: true.  pg write.	"force the write"
  	pg policy: pol.
+ 	^pg!
- 	^ pg!

Item was changed:
  ----- Method: Morph>>saveOnURLbasic (in category 'fileIn/out') -----
  saveOnURLbasic
  	"Ask the user for a url and save myself on a SmartReferenceStream file.  Writes out the version and class structure.  The file is fileIn-able.  UniClasses will be filed out."
  
  	| url pg stamp pol |
  	(pg := self valueOfProperty: #SqueakPage) ifNil: [pg := SqueakPage new]
  		ifNotNil: 
  			[pg contentsMorph ~~ self 
  				ifTrue: 
  					[self inform: 'morph''s SqueakPage property is out of date'.
  					pg := SqueakPage new]].
  	(url := pg url) ifNil: 
  			[url := ServerDirectory defaultStemUrl , '1.sp'.	"A new legal place"
  			url := UIManager default 
  						request: 'url of a place to store this object.
  Must begin with file:// or ftp://'
  						initialAnswer: url.
  			url isEmpty ifTrue: [^#cancel]].
+ 	stamp := Utilities authorInitialsPerSe.
+ 	stamp isEmptyOrNil ifTrue: [ stamp := '*' ].
- 	stamp := Utilities authorInitialsPerSe ifNil: ['*'].
  	pg saveMorph: self author: stamp.
  	SqueakPageCache atURL: url put: pg.	"setProperty: #SqueakPage"
  	(pol := pg policy) ifNil: [pol := #neverWrite].
  	pg
  		policy: #now;
  		dirty: true.
  	pg write.	"force the write"
  	pg policy: pol.
  	^pg!

Item was changed:
  ----- Method: MenuMorph>>addStayUpIcons (in category 'construction') -----
  addStayUpIcons
  	| title closeBox pinBox titleBarArea titleString |
  	title := submorphs
  				detect: [:ea | ea hasProperty: #titleString]
  				ifNone: [self setProperty: #needsTitlebarWidgets toValue: true.
  					^ self].
  	closeBox := IconicButton new target: self;
  				 actionSelector: #delete;
  				 labelGraphic: self class closeBoxImage;
  				 color: Color transparent;
  				 extent: 14 @ 16;
  				 borderWidth: 0.
  	pinBox := IconicButton new target: self;
  				 actionSelector: #stayUp:;
  				 arguments: {true};
  				 labelGraphic: self class pushPinImage;
  				 color: Color transparent;
  				 extent: 14 @ 15;
  				 borderWidth: 0.
  	Preferences noviceMode
  		ifTrue: [closeBox setBalloonText: 'close this menu'.
  			pinBox setBalloonText: 'keep this menu up'].
  	titleBarArea :=  AlignmentMorph newRow vResizing: #shrinkWrap;
  			 layoutInset: 3;
  			 color: Preferences menuTitleColor;
  			 addMorphBack: closeBox;
  			 addMorphBack: title;
  			 addMorphBack: pinBox.
  	
  	title color: Color transparent.
  
  	titleString := title 
  		findDeepSubmorphThat: [:each | each respondsTo: #font: ]
+ 		ifAbsent: [StringMorph contents: String empty].
- 		ifAbsent: [nil].
  	titleString font: Preferences windowTitleFont.
  	Preferences roundedMenuCorners
  		ifTrue: [titleBarArea useRoundedCorners].
  	
  	self addMorphFront: titleBarArea.
  	titleBarArea setProperty: #titleString toValue: (title valueOfProperty: #titleString).
  	title removeProperty: #titleString.
  	self setProperty: #hasTitlebarWidgets toValue: true.
  	self removeProperty: #needsTitlebarWidgets.
  	self removeStayUpItems!



More information about the Packages mailing list