private void CanvasBox_MouseDown(object sender, MouseEventArgs e) { switch (CurrentState) { case State.WAIT: { //TODO Select break; } case State.SELECTED: { FirstPoint = e.Location; ChangeState(State.MOVE); break; } case State.ROTATE: { Layers[SelectedLayer].Rotate(e.Location, (int)RotateNumerical.Value); FullUpdateCanvas(); ChangeState(State.SELECTED); break; } case State.DRAW_LINE: { FirstPoint = e.Location; break; } case State.DRAW_BEZIER: { ActiveBezier.AddPoint(e.Location); if (e.Button == MouseButtons.Right) { ActiveBezier.Finish(); AddFigure(ActiveBezier); ActiveBezier = new Bezier(); } break; } case State.DRAW_PARA: { FirstPoint = e.Location; break; } case State.DRAW_ANGLE: { FirstPoint = e.Location; break; } } }