kg
6 年前
当前提交
0daf0fb5
共有 16 个文件被更改,包括 769 次插入 和 181 次删除
-
2Assets/UIWidgets/painting/borders.cs
-
2Assets/UIWidgets/painting/box_border.cs
-
2Assets/UIWidgets/painting/box_decoration.cs
-
2Assets/UIWidgets/painting/decoration.cs
-
224Assets/UIWidgets/painting/edge_insets.cs
-
125Assets/UIWidgets/rendering/box.cs
-
4Assets/UIWidgets/rendering/object.cs
-
195Assets/UIWidgets/rendering/object.mixin.gen.cs
-
107Assets/UIWidgets/rendering/object.mixin.njk
-
145Assets/UIWidgets/rendering/proxy_box.cs
-
4Assets/UIWidgets/rendering/proxy_box.mixin.gen.cs
-
4Assets/UIWidgets/rendering/proxy_box.mixin.njk
-
4Assets/UIWidgets/rendering/view.cs
-
15Assets/UIWidgets/rendering/viewpoint.cs
-
112Assets/UIWidgets/painting/alignment.cs
-
3Assets/UIWidgets/painting/alignment.cs.meta
|
|||
namespace UIWidgets.painting { |
|||
public abstract class ShapeBorder { |
|||
public abstract EdgeInsetsGeometry dimensions { get; } |
|||
public abstract EdgeInsets dimensions { get; } |
|||
} |
|||
} |
|
|||
using System; |
|||
using UIWidgets.ui; |
|||
|
|||
public abstract class EdgeInsetsGeometry { |
|||
protected EdgeInsetsGeometry() { |
|||
public class EdgeInsets : IEquatable<EdgeInsets> { |
|||
private EdgeInsets(double left, double top, double right, double bottom) { |
|||
this.left = left; |
|||
this.right = right; |
|||
this.top = top; |
|||
this.bottom = bottom; |
|||
} |
|||
public readonly double left; |
|||
public readonly double right; |
|||
public readonly double top; |
|||
public readonly double bottom; |
|||
public class EdgeInsets : EdgeInsetsGeometry { |
|||
private EdgeInsets() { |
|||
public bool isNonNegative { |
|||
get { |
|||
return this.left >= 0.0 |
|||
&& this.right >= 0.0 |
|||
&& this.top >= 0.0 |
|||
&& this.bottom >= 0.0; |
|||
} |
|||
public static EdgeInsets only() { |
|||
return new EdgeInsets(); |
|||
public double horizontal { |
|||
get { return this.left + this.right; } |
|||
} |
|||
|
|||
public double vertical { |
|||
get { return this.top + this.bottom; } |
|||
} |
|||
|
|||
public double along(Axis axis) { |
|||
switch (axis) { |
|||
case Axis.horizontal: |
|||
return this.horizontal; |
|||
case Axis.vertical: |
|||
return this.vertical; |
|||
} |
|||
|
|||
throw new InvalidOperationException(); |
|||
} |
|||
|
|||
public Size collapsedSize { |
|||
get { return new Size(this.horizontal, this.vertical); } |
|||
} |
|||
|
|||
public EdgeInsets flipped { |
|||
get { return EdgeInsets.fromLTRB(this.right, this.bottom, this.left, this.top); } |
|||
} |
|||
|
|||
public Size inflateSize(Size size) { |
|||
return new Size(size.width + this.horizontal, size.height + this.vertical); |
|||
} |
|||
|
|||
public Size deflateSize(Size size) { |
|||
return new Size(size.width - this.horizontal, size.height - this.vertical); |
|||
} |
|||
|
|||
public static EdgeInsets fromLTRB(double left, double top, double right, double bottom) { |
|||
return new EdgeInsets(left, top, right, bottom); |
|||
} |
|||
|
|||
public static EdgeInsets all(double value) { |
|||
return new EdgeInsets(value, value, value, value); |
|||
} |
|||
|
|||
public static EdgeInsets only(double left = 0.0, double top = 0.0, double right = 0.0, double bottom = 0.0) { |
|||
return new EdgeInsets(left, top, right, bottom); |
|||
} |
|||
|
|||
public static EdgeInsets symmetric(double vertical = 0.0, double horizontal = 0.0) { |
|||
return new EdgeInsets(horizontal, vertical, horizontal, vertical); |
|||
|
|||
public Offset topLeft { |
|||
get { return new Offset(this.left, this.top); } |
|||
} |
|||
|
|||
public Offset topRight { |
|||
get { return new Offset(-this.right, this.top); } |
|||
} |
|||
|
|||
public Offset bottomLeft { |
|||
get { return new Offset(this.left, -this.bottom); } |
|||
} |
|||
|
|||
public Offset bottomRight { |
|||
get { return new Offset(-this.right, -this.bottom); } |
|||
} |
|||
|
|||
public Rect inflateRect(Rect rect) { |
|||
return Rect.fromLTRB( |
|||
rect.left - this.left, rect.top - this.top, |
|||
rect.right + this.right, rect.bottom + this.bottom); |
|||
} |
|||
|
|||
public Rect deflateRect(Rect rect) { |
|||
return Rect.fromLTRB( |
|||
rect.left + this.left, rect.top + this.top, |
|||
rect.right - this.right, rect.bottom - this.bottom); |
|||
} |
|||
|
|||
public EdgeInsets subtract(EdgeInsets other) { |
|||
return EdgeInsets.fromLTRB( |
|||
this.left - other.left, |
|||
this.top - other.top, |
|||
this.right - other.right, |
|||
this.bottom - other.bottom |
|||
); |
|||
} |
|||
|
|||
public EdgeInsets add(EdgeInsets other) { |
|||
return EdgeInsets.fromLTRB( |
|||
this.left + other.left, |
|||
this.top + other.top, |
|||
this.right + other.right, |
|||
this.bottom + other.bottom |
|||
); |
|||
} |
|||
|
|||
public static EdgeInsets operator -(EdgeInsets a, EdgeInsets b) { |
|||
return EdgeInsets.fromLTRB( |
|||
a.left - b.left, |
|||
a.top - b.top, |
|||
a.right - b.right, |
|||
a.bottom - b.bottom |
|||
); |
|||
} |
|||
|
|||
public static EdgeInsets operator +(EdgeInsets a, EdgeInsets b) { |
|||
return EdgeInsets.fromLTRB( |
|||
a.left + b.left, |
|||
a.top + b.top, |
|||
a.right + b.right, |
|||
a.bottom + b.bottom |
|||
); |
|||
} |
|||
|
|||
public static EdgeInsets operator -(EdgeInsets a) { |
|||
return EdgeInsets.fromLTRB( |
|||
-a.left, |
|||
-a.top, |
|||
-a.right, |
|||
-a.bottom |
|||
); |
|||
} |
|||
|
|||
public static EdgeInsets operator *(EdgeInsets a, double b) { |
|||
return EdgeInsets.fromLTRB( |
|||
a.left * b, |
|||
a.top * b, |
|||
a.right * b, |
|||
a.bottom * b |
|||
); |
|||
} |
|||
|
|||
public static EdgeInsets operator /(EdgeInsets a, double b) { |
|||
return EdgeInsets.fromLTRB( |
|||
a.left / b, |
|||
a.top / b, |
|||
a.right / b, |
|||
a.bottom / b |
|||
); |
|||
} |
|||
|
|||
public static EdgeInsets operator %(EdgeInsets a, double b) { |
|||
return EdgeInsets.fromLTRB( |
|||
a.left % b, |
|||
a.top % b, |
|||
a.right % b, |
|||
a.bottom % b |
|||
); |
|||
} |
|||
|
|||
public EdgeInsets copyWith( |
|||
double? left = null, |
|||
double? top = null, |
|||
double? right = null, |
|||
double? bottom = null |
|||
) { |
|||
return EdgeInsets.only( |
|||
left: left ?? this.left, |
|||
top: top ?? this.top, |
|||
right: right ?? this.right, |
|||
bottom: bottom ?? this.bottom |
|||
); |
|||
} |
|||
|
|||
public bool Equals(EdgeInsets other) { |
|||
if (object.ReferenceEquals(null, other)) return false; |
|||
if (object.ReferenceEquals(this, other)) return true; |
|||
return this.left.Equals(other.left) |
|||
&& this.right.Equals(other.right) |
|||
&& this.top.Equals(other.top) |
|||
&& this.bottom.Equals(other.bottom); |
|||
} |
|||
|
|||
public override bool Equals(object obj) { |
|||
if (object.ReferenceEquals(null, obj)) return false; |
|||
if (object.ReferenceEquals(this, obj)) return true; |
|||
if (obj.GetType() != this.GetType()) return false; |
|||
return this.Equals((EdgeInsets) obj); |
|||
} |
|||
|
|||
public override int GetHashCode() { |
|||
unchecked { |
|||
var hashCode = this.left.GetHashCode(); |
|||
hashCode = (hashCode * 397) ^ this.right.GetHashCode(); |
|||
hashCode = (hashCode * 397) ^ this.top.GetHashCode(); |
|||
hashCode = (hashCode * 397) ^ this.bottom.GetHashCode(); |
|||
return hashCode; |
|||
} |
|||
} |
|||
|
|||
public static bool operator ==(EdgeInsets a, EdgeInsets b) { |
|||
return object.Equals(a, b); |
|||
} |
|||
|
|||
public static bool operator !=(EdgeInsets a, EdgeInsets b) { |
|||
return !(a == b); |
|||
} |
|||
} |
|||
} |
|
|||
using System; |
|||
using UIWidgets.ui; |
|||
|
|||
namespace UIWidgets.painting { |
|||
public class Alignment : IEquatable<Alignment> { |
|||
public Alignment(double x, double y) { |
|||
this.x = x; |
|||
this.y = y; |
|||
} |
|||
|
|||
private readonly double x; |
|||
|
|||
private readonly double y; |
|||
|
|||
public static readonly Alignment topLeft = new Alignment(-1.0, -1.0); |
|||
public static readonly Alignment topCenter = new Alignment(0, -1.0); |
|||
public static readonly Alignment topRight = new Alignment(1.0, -1.0); |
|||
public static readonly Alignment centerLeft = new Alignment(-1.0, 0.0); |
|||
public static readonly Alignment center = new Alignment(0.0, 0.0); |
|||
public static readonly Alignment centerRight = new Alignment(1.0, 0.0); |
|||
public static readonly Alignment bottomLeft = new Alignment(-1.0, 1.0); |
|||
public static readonly Alignment bottomCenter = new Alignment(0.0, 1.0); |
|||
public static readonly Alignment bottomRight = new Alignment(1.0, 1.0); |
|||
|
|||
public Alignment add(Alignment other) { |
|||
return this + other; |
|||
} |
|||
|
|||
public static Alignment operator -(Alignment a, Alignment b) { |
|||
return new Alignment(a.x - b.x, a.y - b.y); |
|||
} |
|||
|
|||
public static Alignment operator +(Alignment a, Alignment b) { |
|||
return new Alignment(a.x + b.x, a.y + b.y); |
|||
} |
|||
|
|||
public static Alignment operator -(Alignment a) { |
|||
return new Alignment(-a.x, -a.y); |
|||
} |
|||
|
|||
public static Alignment operator *(Alignment a, double b) { |
|||
return new Alignment(a.x * b, a.y * b); |
|||
} |
|||
|
|||
public static Alignment operator /(Alignment a, double b) { |
|||
return new Alignment(a.x / b, a.y / b); |
|||
} |
|||
|
|||
public static Alignment operator %(Alignment a, double b) { |
|||
return new Alignment(a.x % b, a.y % b); |
|||
} |
|||
|
|||
public Offset alongOffset(Offset other) { |
|||
double centerX = other.dx / 2.0; |
|||
double centerY = other.dy / 2.0; |
|||
return new Offset(centerX + this.x * centerX, centerY + this.y * centerY); |
|||
} |
|||
|
|||
public Offset alongSize(Size other) { |
|||
double centerX = other.width / 2.0; |
|||
double centerY = other.height / 2.0; |
|||
return new Offset(centerX + this.x * centerX, centerY + this.y * centerY); |
|||
} |
|||
|
|||
public Offset withinRect(Rect rect) { |
|||
double halfWidth = rect.width / 2.0; |
|||
double halfHeight = rect.height / 2.0; |
|||
return new Offset( |
|||
rect.left + halfWidth + this.x * halfWidth, |
|||
rect.top + halfHeight + this.y * halfHeight |
|||
); |
|||
} |
|||
|
|||
Rect inscribe(Size size, Rect rect) { |
|||
double halfWidthDelta = (rect.width - size.width) / 2.0; |
|||
double halfHeightDelta = (rect.height - size.height) / 2.0; |
|||
return Rect.fromLTWH( |
|||
rect.left + halfWidthDelta + this.x * halfWidthDelta, |
|||
rect.top + halfHeightDelta + this.y * halfHeightDelta, |
|||
size.width, |
|||
size.height |
|||
); |
|||
} |
|||
|
|||
public bool Equals(Alignment other) { |
|||
if (object.ReferenceEquals(null, other)) return false; |
|||
if (object.ReferenceEquals(this, other)) return true; |
|||
return this.x.Equals(other.x) && this.y.Equals(other.y); |
|||
} |
|||
|
|||
public override bool Equals(object obj) { |
|||
if (object.ReferenceEquals(null, obj)) return false; |
|||
if (object.ReferenceEquals(this, obj)) return true; |
|||
if (obj.GetType() != this.GetType()) return false; |
|||
return this.Equals((Alignment) obj); |
|||
} |
|||
|
|||
public override int GetHashCode() { |
|||
unchecked { |
|||
return (this.x.GetHashCode() * 397) ^ this.y.GetHashCode(); |
|||
} |
|||
} |
|||
|
|||
public static bool operator ==(Alignment a, Alignment b) { |
|||
return object.Equals(a, b); |
|||
} |
|||
|
|||
public static bool operator !=(Alignment a, Alignment b) { |
|||
return !(a == b); |
|||
} |
|||
} |
|||
} |
|
|||
fileFormatVersion: 2 |
|||
guid: d34b191577d24c30b0fd2a99022b8a88 |
|||
timeCreated: 1535002958 |
撰写
预览
正在加载...
取消
保存
Reference in new issue