public TextSelection(int baseOffset, int extentOffset, TextAffinity affinity = TextAffinity.downstream, bool isDirectional = false) : base(baseOffset < extentOffset ? baseOffset : extentOffset, baseOffset < extentOffset ? extentOffset : baseOffset) { this.baseOffset = baseOffset; this.extentOffset = extentOffset; this.affinity = affinity; this.isDirectional = isDirectional; }
protected override InlineSpan getSpanForPositionVisitor(TextPosition position, Accumulator offset) { if (text == null) { return(null); } TextAffinity affinity = position.affinity; int targetOffset = position.offset; int endOffset = offset.value + text.Length; if (offset.value == targetOffset && affinity == TextAffinity.downstream || offset.value < targetOffset && targetOffset < endOffset || endOffset == targetOffset && affinity == TextAffinity.upstream) { return(this); } offset.increment(text.Length); return(null); }
public TextPosition(int offset, TextAffinity affinity = TextAffinity.downstream) { this.offset = offset; this.affinity = affinity; }
public static TextSelection collapsed(int offset, TextAffinity affinity = TextAffinity.downstream) { return(new TextSelection(offset, offset, affinity, false)); }
public PositionWithAffinity(int p, TextAffinity a) { this.position = p; this.affinity = a; }