private protected virtual string GetFocusedText(IFocusTextFocus textCellFocus) { string Text = null; if (Focus is IFocusStringContentFocus AsTextFocus) { Text = GetFocusedStringContent(AsTextFocus); } else if (Focus is IFocusCommentFocus AsCommentFocus) { Text = GetFocusedCommentText(AsCommentFocus); if (Text == null) { Text = string.Empty; } } Debug.Assert(Text != null); return(Text); }
private protected virtual void SetTextFullSelection(IFocusTextFocus textFocus) { bool IsHandled = false; if (textFocus is IFocusStringContentFocus AsStringContentFocus) { string Text = GetFocusedStringContent(AsStringContentFocus); IFocusStringContentFocusableCellView CellView = AsStringContentFocus.CellView; SelectStringContent(CellView.StateView, CellView.PropertyName, 0, Text.Length); IsHandled = true; } else if (textFocus is IFocusCommentFocus AsCommentFocus) { string Text = GetFocusedCommentText(AsCommentFocus); IFocusCommentCellView CellView = AsCommentFocus.CellView; SelectComment(CellView.StateView, 0, Text.Length); IsHandled = true; } Debug.Assert(IsHandled); }
private protected virtual void SetTextSelection(IFocusTextFocus textFocus) { bool IsHandled = false; int Start = CaretAnchorPosition >= 0 ? CaretAnchorPosition : 0; int End = CaretPosition; if (textFocus is IFocusStringContentFocus AsStringContentFocus) { IFocusStringContentFocusableCellView CellView = AsStringContentFocus.CellView; SelectStringContent(CellView.StateView, CellView.PropertyName, Start, End); IsHandled = true; } else if (textFocus is IFocusCommentFocus AsCommentFocus) { IFocusCommentCellView CellView = AsCommentFocus.CellView; SelectComment(CellView.StateView, Start, End); IsHandled = true; } Debug.Assert(IsHandled); }
private protected virtual void SetTextCaretPosition(string text, int position, bool resetAnchor, out bool isMoved) { int OldPosition = CaretPosition; if (position <= 0) { CaretPosition = 0; } else if (position >= text.Length) { CaretPosition = text.Length; } else { CaretPosition = position; } if (resetAnchor) { ResetSelection(); CaretAnchorPosition = CaretPosition; } else if (Selection == EmptySelection) { IFocusTextFocus AsTextFocus = Focus as IFocusTextFocus; Debug.Assert(AsTextFocus != null); SetTextSelection(AsTextFocus); } else if (Selection is IFocusTextSelection AsTextSelection) { AsTextSelection.Update(CaretAnchorPosition, CaretPosition); } CheckCaretInvariant(text); isMoved = CaretPosition != OldPosition; }