The Trunk: Morphic-mt.1004.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: Morphic-mt.1004.mcz

commits-2
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@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@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.
  !