public int CompareEndpoints(TextPatternRangeEndpoint endpoint, ITextRangeProvider targetRange, TextPatternRangeEndpoint targetEndpoint) { FooTextBoxRangeProvider other = targetRange as FooTextBoxRangeProvider; if (other == null) { throw new ArgumentException(""); } if (endpoint == TextPatternRangeEndpoint.Start) { if (targetEndpoint == TextPatternRangeEndpoint.Start) { return(this.Compare(this.start, other.start)); } if (targetEndpoint == TextPatternRangeEndpoint.End) { return(this.Compare(this.start, other.end)); } } if (endpoint == TextPatternRangeEndpoint.End) { if (targetEndpoint == TextPatternRangeEndpoint.Start) { return(this.Compare(this.start, other.end)); } if (targetEndpoint == TextPatternRangeEndpoint.End) { return(this.Compare(this.end, other.end)); } } throw new ArgumentException("endpointに未知の値が指定されました"); }
public ITextRangeProvider[] GetSelection() { ITextRangeProvider[] ret = new ITextRangeProvider[1]; int selStart = this.fooTextBox.Selection.Index; int selLength = this.fooTextBox.Selection.Length; ret[0] = new FooTextBoxRangeProvider(this.fooTextBox, selStart, selLength, this); return(ret); }
public bool Compare(ITextRangeProvider o) { FooTextBoxRangeProvider other = o as FooTextBoxRangeProvider; if (other == null) { throw new ArgumentNullException("null以外の値を指定してください"); } if (this.start == other.start && this.end == other.end) { return(true); } else { return(false); } }
public ITextRangeProvider[] GetVisibleRanges() { ITextRangeProvider[] ret = new ITextRangeProvider[1]; if (this.fooTextBox.LayoutLineCollection.Count == 0) { ret[0] = new FooTextBoxRangeProvider(this.fooTextBox, 0, 0, this); } else { EditView view = this.fooTextBox.View; int startIndex = view.GetIndexFromLayoutLine(new TextPoint(view.Src.Row, 0)); int endIndex = view.GetIndexFromLayoutLine(new TextPoint(view.Src.Row + view.LineCountOnScreen, 0)); ret[0] = new FooTextBoxRangeProvider(this.fooTextBox, startIndex, endIndex - startIndex, this); } return(ret); }
public void MoveEndpointByRange(TextPatternRangeEndpoint endpoint, ITextRangeProvider targetRange, TextPatternRangeEndpoint targetEndpoint) { FooTextBoxRangeProvider other = targetRange as FooTextBoxRangeProvider; if (other == null) { throw new ArgumentException(""); } if (endpoint == TextPatternRangeEndpoint.Start) { if (targetEndpoint == TextPatternRangeEndpoint.Start) { this.start = other.start; } if (targetEndpoint == TextPatternRangeEndpoint.End) { this.start = other.end; } if (this.start > this.end) { this.end = this.start; } return; } if (endpoint == TextPatternRangeEndpoint.End) { if (targetEndpoint == TextPatternRangeEndpoint.Start) { this.end = other.start; } if (targetEndpoint == TextPatternRangeEndpoint.End) { this.end = other.end; } return; } throw new ArgumentException("endpointに未知の値が指定されました"); }