public override bool VertexVerbApplicable(Functions.Codes code, Target target) { switch (code) { case Functions.Codes.AddVertex: return(true); case Functions.Codes.RemoveVertex: return(m_DefinedVertices > 2); } return(base.VertexVerbApplicable(code, target)); }
public override bool AllowVerbWhenComplete(Functions.Codes code) { switch (code) { case Functions.Codes.Increment: case Functions.Codes.Decrement: return(true); default: return(false); } }
public override VerbResult OtherVerb(EditableView.ClickPosition position, Functions.Codes code) { switch (code) { case Functions.Codes.Increment: case Functions.Codes.Decrement: int delta = code == Functions.Codes.Increment ? 1 : -1; return(ChangeSides(delta)); default: return(VerbResult.Rejected); } }
public override VerbResult OtherVerb(EditableView.ClickPosition position, Functions.Codes code) { switch (code) { case Functions.Codes.AddVertex: case Functions.Codes.RemoveVertex: // Base functionality is OK, except that we also need to update the control points var result = base.OtherVerb(position, code); if (code == Functions.Codes.RemoveVertex) { m_ControlPoints.RemoveRange(m_ControlPoints.Count - 2, 2); } else { m_ControlPoints.Add(PointF.Empty); m_ControlPoints.Add(PointF.Empty); } this.SetControlPoints(0); return(result); } return(base.OtherVerb(position, code)); }