private void form_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.Up: case Keys.W: isUpPressed = true; break; case Keys.Down: case Keys.S: isDownPressed = true; break; case Keys.Left: case Keys.A: isLeftPressed = true; break; case Keys.Right: case Keys.D: isRightPressed = true; break; case Keys.Menu: IsBottomRightResizing = true; break; } int speed = e.Shift ? RegionCaptureOptions.MoveSpeedMaximum : RegionCaptureOptions.MoveSpeedMinimum; int y = isUpPressed && isDownPressed ? 0 : isDownPressed ? speed : isUpPressed ? -speed : 0; int x = isLeftPressed && isRightPressed ? 0 : isRightPressed ? speed : isLeftPressed ? -speed : 0; BaseShape shape = shapeManager.CurrentShape; if (shape == null || shapeManager.IsCreating) { Cursor.Position = Cursor.Position.Add(x, y); } else { if (e.Control) { shape.Move(x, y); } else { shape.Resize(x, y, IsBottomRightResizing); } } }
private void form_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.ControlKey: IsCornerMoving = true; break; case Keys.ShiftKey: IsProportionalResizing = true; break; case Keys.Menu: IsSnapResizing = true; break; case Keys.Left: case Keys.A: isLeftPressed = true; break; case Keys.Right: case Keys.D: isRightPressed = true; break; case Keys.Up: case Keys.W: isUpPressed = true; break; case Keys.Down: case Keys.S: isDownPressed = true; break; } switch (e.KeyData) { case Keys.Insert: if (IsCreating) { EndRegionSelection(); } else { StartRegionSelection(); } break; case Keys.Delete: DeleteCurrentShape(); if (IsCreating) { EndRegionSelection(); } break; case Keys.Shift | Keys.Delete: DeleteAllShapes(); break; case Keys.F1: Options.ShowHotkeys = !Options.ShowHotkeys; if (tsmiTips != null) { tsmiTips.Checked = Options.ShowHotkeys; } break; } if (!IsCreating) { if (Form.Mode == RegionCaptureMode.Annotation) { switch (e.KeyData) { case Keys.Tab: SwapShapeType(); break; case Keys.NumPad0: CurrentTool = ShapeType.RegionRectangle; break; } } if (Form.IsAnnotationMode) { switch (e.KeyData) { case Keys.NumPad1: CurrentTool = ShapeType.DrawingRectangle; break; case Keys.NumPad2: CurrentTool = ShapeType.DrawingEllipse; break; case Keys.NumPad3: CurrentTool = ShapeType.DrawingFreehand; break; case Keys.NumPad4: CurrentTool = ShapeType.DrawingLine; break; case Keys.NumPad5: CurrentTool = ShapeType.DrawingArrow; break; case Keys.NumPad6: CurrentTool = ShapeType.DrawingTextOutline; break; case Keys.NumPad7: CurrentTool = ShapeType.DrawingStep; break; case Keys.NumPad8: CurrentTool = ShapeType.EffectBlur; break; case Keys.NumPad9: CurrentTool = ShapeType.EffectPixelate; break; case Keys.Control | Keys.V: PasteFromClipboard(true); break; case Keys.Control | Keys.Z: UndoShape(); break; case Keys.Home: MoveCurrentShapeTop(); break; case Keys.End: MoveCurrentShapeBottom(); break; case Keys.PageUp: MoveCurrentShapeUp(); break; case Keys.PageDown: MoveCurrentShapeDown(); break; case Keys.Q: Options.QuickCrop = !Options.QuickCrop; tsmiQuickCrop.Checked = !Options.QuickCrop; break; } } } int speed; if (e.Shift) { speed = RegionCaptureOptions.MoveSpeedMaximum; } else { speed = RegionCaptureOptions.MoveSpeedMinimum; } int x = 0; if (isLeftPressed) { x -= speed; } if (isRightPressed) { x += speed; } int y = 0; if (isUpPressed) { y -= speed; } if (isDownPressed) { y += speed; } if (x != 0 || y != 0) { BaseShape shape = CurrentShape; if (shape == null || IsCreating) { Cursor.Position = Cursor.Position.Add(x, y); } else { if (e.Control) { shape.OnMoving(); shape.Move(x, y); } else { shape.OnResizing(); shape.Resize(x, y, !e.Alt); } } } }
private void form_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyCode) { case Keys.ControlKey: IsCornerMoving = true; break; case Keys.ShiftKey: IsProportionalResizing = true; break; case Keys.Menu: IsSnapResizing = true; break; case Keys.Left: case Keys.A: isLeftPressed = true; break; case Keys.Right: case Keys.D: isRightPressed = true; break; case Keys.Up: case Keys.W: isUpPressed = true; break; case Keys.Down: case Keys.S: isDownPressed = true; break; } switch (e.KeyData) { case Keys.Insert: if (IsCreating) { EndRegionSelection(); } else { StartRegionSelection(); } break; case Keys.Control | Keys.Z: UndoShape(); break; } if (!IsCreating) { if (form.Mode == RegionCaptureMode.Annotation) { switch (e.KeyData) { case Keys.Tab: SwapShapeType(); break; case Keys.NumPad0: CurrentShapeType = ShapeType.RegionRectangle; break; } } if (form.IsAnnotationMode) { switch (e.KeyData) { case Keys.NumPad1: CurrentShapeType = ShapeType.DrawingRectangle; break; case Keys.NumPad2: CurrentShapeType = ShapeType.DrawingRoundedRectangle; break; case Keys.NumPad3: CurrentShapeType = ShapeType.DrawingEllipse; break; case Keys.NumPad4: CurrentShapeType = ShapeType.DrawingLine; break; case Keys.NumPad5: CurrentShapeType = ShapeType.DrawingArrow; break; case Keys.NumPad6: CurrentShapeType = ShapeType.DrawingText; break; case Keys.NumPad7: CurrentShapeType = ShapeType.DrawingStep; break; case Keys.NumPad8: CurrentShapeType = ShapeType.EffectBlur; break; case Keys.NumPad9: CurrentShapeType = ShapeType.EffectPixelate; break; case Keys.Control | Keys.V: PasteFromClipboard(); break; } } } int speed; if (e.Shift) { speed = RegionCaptureOptions.MoveSpeedMaximum; } else { speed = RegionCaptureOptions.MoveSpeedMinimum; } int x = 0; if (isLeftPressed) { x -= speed; } if (isRightPressed) { x += speed; } int y = 0; if (isUpPressed) { y -= speed; } if (isDownPressed) { y += speed; } if (x != 0 || y != 0) { BaseShape shape = CurrentShape; if (shape == null || IsCreating) { Cursor.Position = Cursor.Position.Add(x, y); } else { if (e.Control) { shape.Move(x, y); } else { shape.Resize(x, y, !e.Alt); } } } }