[Pkg] The Trunk: Morphic-mt.1004.mcz

commits at source.squeak.org commits at source.squeak.org
Fri Sep 4 06:38:08 UTC 2015


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

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

Name: Morphic-mt.1004
Author: mt
Time: 4 September 2015, 8:37:36.913 am
UUID: a6373ade-f974-0e41-8609-316d092a7215
Ancestors: Morphic-eem.1003

Do not degrade rounded rectangles to ovals if the radius happens to be bigger than the extent. Ovals do not look at all like rectangles. Especially wide ones.

=============== Diff against Morphic-eem.1003 ===============

Item was changed:
  ----- Method: BalloonCanvas>>frameRoundRect:radius:width:color: (in category 'drawing-rectangles') -----
  frameRoundRect: aRectangle radius: radius width: borderWidth color: borderColor
  	| outerPoints innerRect innerRadius innerPoints |
  	(borderWidth isZero or:[borderColor isTransparent])
  		ifTrue:[^self].
  	radius asPoint <= (0 at 0) 
  		ifTrue:[^self frameRectangle: aRectangle width: borderWidth color: borderColor].
- 	(radius * 2) asPoint >= aRectangle extent 
- 		ifTrue:[^self frameOval: aRectangle width: borderWidth color: borderColor].
  	"decompose inner rectangle into bezier shape"
  	innerRect := aRectangle insetBy: borderWidth.
  	innerRect area <= 0 
  		ifTrue:[^self fillRoundRect: aRectangle radius: radius fillStyle: borderColor].
  	innerRadius := (radius - borderWidth) asPoint.
  	innerPoints := self makeRoundRectShape: innerRect radius: innerRadius.
  	"decompose outer rectangle into bezier shape"
  	outerPoints := self makeRoundRectShape: aRectangle radius: radius.
  	self
  		drawGeneralBezierShape: (Array with: outerPoints with: innerPoints)
  		color: borderColor
  		borderWidth: 0
  		borderColor: nil.!

Item was changed:
  ----- Method: FormCanvas>>frameRoundRect:radius:width:color: (in category 'drawing-rectangles') -----
  frameRoundRect: aRectangle radius: radius width: borderWidth color: borderColor
  	"Frame a rounded rectangle with the given attributes."
  	| innerRect |
  	(borderWidth isZero or:[borderColor isTransparent])
  		ifTrue:[^self].
  	radius asPoint <= (0 at 0) 
  		ifTrue:[^self frameRectangle: aRectangle width: borderWidth color: borderColor].
- 	(radius * 2) asPoint >= aRectangle extent 
- 		ifTrue:[^self frameOval: aRectangle width: borderWidth color: borderColor].
  	"decompose inner rectangle into bezier shape"
  	innerRect := aRectangle insetBy: borderWidth.
  	innerRect area <= 0 
  		ifTrue:[^self fillRoundRect: aRectangle radius: radius fillStyle: borderColor].
  	self setFillColor: borderColor.
  	port 
  		frameRoundRect: (aRectangle translateBy: origin) truncated 
  		radius: radius truncated 
  		borderWidth: borderWidth truncated.
  !



More information about the Packages mailing list