Skip to content

Commit

Permalink
Revert "Re-Land "Refactor StrokeAlign to allow double values." (flutt…
Browse files Browse the repository at this point in the history
…er#109805)" (flutter#109955)

This reverts commit b3aba4d because it breaks Google tests.
  • Loading branch information
gspencergoog committed Aug 21, 2022
1 parent 9d78b2f commit 957a8da
Show file tree
Hide file tree
Showing 32 changed files with 566 additions and 465 deletions.
4 changes: 2 additions & 2 deletions dev/manual_tests/lib/star_border.dart
Expand Up @@ -80,7 +80,7 @@ class _MyHomePageState extends State<MyHomePage> {
color: Colors.blue.shade100,
shape: lerpBorder(
StarBorder.polygon(
side: const BorderSide(strokeAlign: BorderSide.strokeAlignCenter, width: 2),
side: const BorderSide(strokeAlign: StrokeAlign.center, width: 2),
sides: _model.points,
pointRounding: _model.pointRounding,
rotation: _model.rotation,
Expand All @@ -102,7 +102,7 @@ class _MyHomePageState extends State<MyHomePage> {
color: Colors.blue.shade100,
shape: lerpBorder(
StarBorder(
side: const BorderSide(strokeAlign: BorderSide.strokeAlignCenter, width: 2),
side: const BorderSide(strokeAlign: StrokeAlign.center, width: 2),
points: _model.points,
innerRadiusRatio: _model.innerRadiusRatio,
pointRounding: _model.pointRounding,
Expand Down
204 changes: 0 additions & 204 deletions examples/api/lib/painting/borders/border_side.0.dart

This file was deleted.

21 changes: 0 additions & 21 deletions examples/api/test/painting/border_side.0_test.dart

This file was deleted.

45 changes: 43 additions & 2 deletions packages/flutter/lib/src/painting/beveled_rectangle_border.dart
Expand Up @@ -9,6 +9,7 @@ import 'package:flutter/foundation.dart';
import 'basic_types.dart';
import 'border_radius.dart';
import 'borders.dart';
import 'edge_insets.dart';

/// A rectangular border with flattened or "beveled" corners.
///
Expand Down Expand Up @@ -39,6 +40,18 @@ class BeveledRectangleBorder extends OutlinedBorder {
/// [getOuterPath].
final BorderRadiusGeometry borderRadius;

@override
EdgeInsetsGeometry get dimensions {
switch (side.strokeAlign) {
case StrokeAlign.inside:
return EdgeInsets.all(side.width);
case StrokeAlign.center:
return EdgeInsets.all(side.width / 2);
case StrokeAlign.outside:
return EdgeInsets.zero;
}
}

@override
ShapeBorder scale(double t) {
return BeveledRectangleBorder(
Expand Down Expand Up @@ -112,7 +125,21 @@ class BeveledRectangleBorder extends OutlinedBorder {

@override
Path getInnerPath(Rect rect, { TextDirection? textDirection }) {
return _getPath(borderRadius.resolve(textDirection).toRRect(rect).deflate(side.strokeInset));
final RRect borderRect = borderRadius.resolve(textDirection).toRRect(rect);
final RRect adjustedRect;
switch (side.strokeAlign) {
case StrokeAlign.inside:
adjustedRect = borderRect.deflate(side.width);
break;
case StrokeAlign.center:
adjustedRect = borderRect.deflate(side.width / 2);
break;
case StrokeAlign.outside:
adjustedRect = borderRect;
break;
}

return _getPath(adjustedRect);
}

@override
Expand All @@ -129,7 +156,21 @@ class BeveledRectangleBorder extends OutlinedBorder {
case BorderStyle.none:
break;
case BorderStyle.solid:
final Path path = _getPath(borderRadius.resolve(textDirection).toRRect(rect).inflate(side.strokeOffset / 2));
final RRect borderRect = borderRadius.resolve(textDirection).toRRect(rect);
final RRect adjustedRect;
switch (side.strokeAlign) {
case StrokeAlign.inside:
adjustedRect = borderRect;
break;
case StrokeAlign.center:
adjustedRect = borderRect.inflate(side.width / 2);
break;
case StrokeAlign.outside:
adjustedRect = borderRect.inflate(side.width);
break;
}
final Path path = _getPath(adjustedRect)
..addPath(getInnerPath(rect, textDirection: textDirection), Offset.zero);
canvas.drawPath(path, side.toPaint());
break;
}
Expand Down

0 comments on commit 957a8da

Please sign in to comment.