Unverified Commit 4195ad4e authored by Todd Volkert's avatar Todd Volkert Committed by GitHub

Fix Border.symmetric: phase 1 (#61474)

parent 9f4499f4
...@@ -331,15 +331,28 @@ class Border extends BoxBorder { ...@@ -331,15 +331,28 @@ class Border extends BoxBorder {
/// Creates a border with symmetrical vertical and horizontal sides. /// Creates a border with symmetrical vertical and horizontal sides.
/// ///
/// All arguments default to [BorderSide.none] and must not be null. /// All arguments default to [BorderSide.none] and must not be null.
///
/// Currently, the `vertical` argument will apply to the top and bottom
/// borders, and the `horizontal` argument will apply to the left and right
/// borders. This is not consistent with the use of "vertical" and
/// "horizontal" elsewhere in the framework, so the
/// `invertMeaningOfVerticalAndHorizontal` argument exists to facilitate
/// the transition of this constructor to using the correct semantics of
/// these arguments. Callers are encouraged to pass false to that argument
/// to get the correct semantics. In a future change, the default value of
/// the argument will be changed to false, followed by the removal of the
/// argument altogether.
const Border.symmetric({ const Border.symmetric({
BorderSide vertical = BorderSide.none, BorderSide vertical = BorderSide.none,
BorderSide horizontal = BorderSide.none, BorderSide horizontal = BorderSide.none,
bool invertMeaningOfVerticalAndHorizontal = true,
}) : assert(vertical != null), }) : assert(vertical != null),
assert(horizontal != null), assert(horizontal != null),
left = horizontal, assert(invertMeaningOfVerticalAndHorizontal != null),
top = vertical, left = invertMeaningOfVerticalAndHorizontal ? horizontal : vertical,
right = horizontal, top = invertMeaningOfVerticalAndHorizontal ? vertical : horizontal,
bottom = vertical; right = invertMeaningOfVerticalAndHorizontal ? horizontal : vertical,
bottom = invertMeaningOfVerticalAndHorizontal ? vertical : horizontal;
/// A uniform border with all sides the same color and width. /// A uniform border with all sides the same color and width.
/// ///
......
...@@ -35,6 +35,15 @@ void main() { ...@@ -35,6 +35,15 @@ void main() {
expect(border.top, same(side1)); expect(border.top, same(side1));
expect(border.right, same(side2)); expect(border.right, same(side2));
expect(border.bottom, same(side1)); expect(border.bottom, same(side1));
const Border border2 = Border.symmetric(
vertical: side1,
horizontal: side2,
invertMeaningOfVerticalAndHorizontal: false,
);
expect(border2.left, same(side1));
expect(border2.top, same(side2));
expect(border2.right, same(side1));
expect(border2.bottom, same(side2));
}); });
test('Border.merge', () { test('Border.merge', () {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment