浏览代码

Merge pull request #345 from UnityTech/dev

Dev
/main
GitHub 5 年前
当前提交
669dd968
共有 4 个文件被更改,包括 31 次插入38 次删除
  1. 1
      Runtime/rendering/editable.cs
  2. 35
      Runtime/rendering/list_wheel_viewport.cs
  3. 26
      Runtime/service/text_formatter.cs
  4. 7
      Runtime/widgets/text_selection.cs

1
Runtime/rendering/editable.cs


else if (!this._selection.isCollapsed && this._selectionColor != null) {
showSelection = true;
}
this._updateSelectionExtentsVisibility(effectiveOffset);
}
if (showSelection) {

35
Runtime/rendering/list_wheel_viewport.cs


);
}
Matrix4x4 _magnifyTransform() {
Matrix4x4 magnify = Matrix4x4.identity;
magnify.translate(this.size.width * (-this._offAxisFraction + 0.5f), this.size.height / 2f);
magnify.scale(this._magnification, this._magnification, this._magnification);
magnify.translate(-this.size.width * (-this._offAxisFraction + 0.5f), -this.size.height / 2f);
return magnify;
}
Matrix3 _centerOriginTransform(Matrix3 originalMatrix) {
Matrix3 result = Matrix3.I();
Offset centerOriginTranslation = Alignment.center.alongSize(this.size);
result.setTranslate(centerOriginTranslation.dx * (-this._offAxisFraction * 2 + 1),
centerOriginTranslation.dy);
result.multiply(originalMatrix);
result.setTranslate(-centerOriginTranslation.dx * (-this._offAxisFraction * 2 + 1),
-centerOriginTranslation.dy);
return result;
}
Matrix4x4 _centerOriginTransform(Matrix4x4 originalMatrix) {
Matrix4x4 result = Matrix4x4.identity;
Offset centerOriginTranslation = Alignment.center.alongSize(this.size);
result.translate(centerOriginTranslation.dx * (-this._offAxisFraction * 2 + 1),
centerOriginTranslation.dy);
result.multiply(originalMatrix);
result.translate(-centerOriginTranslation.dx * (-this._offAxisFraction * 2 + 1),
-centerOriginTranslation.dy);
return result;
}
public void applyPaintTransform(RenderBox child, Matrix4x4 transform) {
ListWheelParentData parentData = (ListWheelParentData) child?.parentData;
transform.translate(0.0f, this._getUntransformedPaintingCoordinateY(parentData.offset.dy));
}
public override Rect describeApproximatePaintClip(RenderObject child) {
if (child != null && this._shouldClipAtCurrentOffset()) {
return Offset.zero & this.size;

26
Runtime/service/text_formatter.cs


}
}
public class WhitelistingTextInputFormatter : TextInputFormatter {
public WhitelistingTextInputFormatter(Regex whitelistedPattern) {
D.assert(whitelistedPattern != null);
this.whitelistedPattern = whitelistedPattern;
}
readonly Regex whitelistedPattern;
public override TextEditingValue formatEditUpdate(TextEditingValue oldValue, TextEditingValue newValue) {
return Util._selectionAwareTextManipulation(
value: newValue,
substringManipulation: substring => {
string groups = "";
foreach (Match match in this.whitelistedPattern.Matches(input: substring)) {
groups += match.Groups[0].Value;
}
return groups;
}
);
}
public static readonly WhitelistingTextInputFormatter digitsOnly
= new WhitelistingTextInputFormatter(new Regex(@"\d+"));
}
static class Util {
internal static TextEditingValue _selectionAwareTextManipulation(TextEditingValue value,
Func<string, string> substringManipulation) {

7
Runtime/widgets/text_selection.cs


using Unity.UIWidgets.scheduler;
using Unity.UIWidgets.service;
using Unity.UIWidgets.ui;
using Rect = Unity.UIWidgets.ui.Rect;
namespace Unity.UIWidgets.widgets {
static class TextSelectionUtils {

offset: value.selection.start + data.text.Length
)
);
selectionDelegate.bringIntoView(selectionDelegate.textEditingValue.selection.extendPos);
selectionDelegate.hideToolbar();
selectionDelegate.bringIntoView(selectionDelegate.textEditingValue.selection.extendPos);
selectionDelegate.hideToolbar();
});
}

正在加载...
取消
保存