[squeak-dev] The Trunk: Graphics-nice.444.mcz

commits at source.squeak.org commits at source.squeak.org
Sun Dec 27 22:14:46 UTC 2020


Nicolas Cellier uploaded a new version of Graphics to project The Trunk:
http://source.squeak.org/trunk/Graphics-nice.444.mcz

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

Name: Graphics-nice.444
Author: nice
Time: 27 December 2020, 11:14:18.76654 pm
UUID: 7ad44724-768e-449e-b201-507678a23c94
Ancestors: Graphics-nice.443

Isolate alpha channel when printing a named color. This allows it to reuse the color name even for translucent color.

Example:
	(Color red alpha: 0.4) printString
Output (new):
	 '(Color red alpha: 0.4)'
Output (old):
	'(TranslucentColor r: 1 g: 0.5 b: 0.0 alpha: 0.4)'
	
Note: the implementation preserves parentheses and Color transparent printString.

Thanks to Christoph Thiede (ct) for the original proposal.

=============== Diff against Graphics-nice.443 ===============

Item was changed:
+ ----- Method: TranslucentColor>>isOpaque (in category 'testing') -----
- ----- Method: TranslucentColor>>isOpaque (in category 'queries') -----
  isOpaque
  	^alpha = 255!

Item was changed:
+ ----- Method: TranslucentColor>>isTranslucent (in category 'testing') -----
- ----- Method: TranslucentColor>>isTranslucent (in category 'queries') -----
  isTranslucent
  	^ alpha < 255!

Item was changed:
+ ----- Method: TranslucentColor>>isTranslucentColor (in category 'testing') -----
- ----- Method: TranslucentColor>>isTranslucentColor (in category 'queries') -----
  isTranslucentColor
  	"This means: self isTranslucent, but isTransparent not"
  	^ alpha > 0!

Item was changed:
+ ----- Method: TranslucentColor>>isTransparent (in category 'testing') -----
- ----- Method: TranslucentColor>>isTransparent (in category 'queries') -----
  isTransparent
  	^ alpha = 0!

Item was added:
+ ----- Method: TranslucentColor>>printOn: (in category 'printing') -----
+ printOn: aStream
+ 	| name |
+ 	self isTransparent ifTrue: [^ aStream nextPutAll: 'Color transparent'].
+ 	(name := self asNontranslucentColor name) ifNil: [^self storeOn: aStream].
+ 	aStream
+ 		nextPutAll: '(Color ';
+ 		nextPutAll: name;
+ 		nextPutAll: ' alpha: ';
+ 		print: self alpha maxDecimalPlaces: 3;
+ 		nextPut: $)
+ 	!

Item was changed:
  ----- Method: TranslucentColor>>storeOn: (in category 'printing') -----
  storeOn: aStream
  
+ 	self isTransparent ifTrue: [^ aStream nextPutAll: 'Color transparent'].
- 	self isTransparent ifTrue: [^ aStream nextPutAll: '(Color transparent)'].
  	super storeOn: aStream.
  	aStream
  		skip: -1;	  "get rid of trailing )"
  		nextPutAll: ' alpha: ';
  		print: self alpha maxDecimalPlaces: 3;
  		nextPutAll: ')'.
  !



More information about the Squeak-dev mailing list