protected override void AcceptTextInput(InputArgs <string, Point2D> args) => args.InputValid = Point2D.TryParse(args.Input, out args.Value);
protected override void AcceptCoordsInput(InputArgs <Point2D, float> args) => args.Value = (args.Input - Options.BasePoint).Angle;
protected override void AcceptCoordsInput(InputArgs <Point2D, Point2D> args) => args.Value = args.Input;
protected override void AcceptTextInput(InputArgs <string, string> args) => args.Value = args.Input;
protected override void AcceptCoordsInput(InputArgs <Point2D, string> args) => args.InputValid = false;
protected virtual void AcceptTextInput(InputArgs <string, TValue> args) { }
protected virtual void AcceptCoordsInput(InputArgs <Point2D, TValue> args) { }
private void Editor_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Escape) { Editor.DoPrompt(""); CancelInput(); var result = InputResult <TValue> .CancelResult(CancelReason.Escape); Completion.SetResult(result); } else if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return || (SpaceAccepts && e.KeyCode == Keys.Space)) { string keyword = Options.MatchKeyword(CurrentText); if (!string.IsNullOrEmpty(keyword)) { Editor.DoPrompt(""); var result = InputResult <TValue> .KeywordResult(keyword); Completion.SetResult(result); } else if (!string.IsNullOrEmpty(CurrentText)) { var args = new InputArgs <string, TValue>(CurrentText); AcceptTextInput(args); if (args.InputValid) { Editor.DoPrompt(""); var result = InputResult <TValue> .AcceptResult(args.Value, AcceptReason.Text); if (args.InputCompleted) { Completion.SetResult(result); } } else { CurrentText = ""; Editor.DoPrompt(Options.GetFullPrompt() + args.ErrorMessage); } } else { Editor.DoPrompt(""); CancelInput(); var result = InputResult <TValue> .CancelResult(e.KeyCode == Keys.Space?CancelReason.Space : CancelReason.Enter); Completion.SetResult(result); } } else if (e.KeyCode == Keys.Tab) { if (e.Shift) { Editor.SnapPoints.Next(); } else { Editor.SnapPoints.Previous(); } Editor.Document.ActiveView.Redraw(); } }