public override void OnProcessKeys(KeyEventArgs e, bool isDown) { switch (e.KeyCode) { case Keys.Delete: if (!isDown && !ClickData.IsShapesEmpty() && Canvas.Instance.Focused) { foreach (Shape s in ClickData.Shapes) { SharedActions.RemoveShape(s); } } break; } }
private void GenerateShape(Size size) { var layer = Canvas.Instance.layer; // Generate shape based on either a duplicate or a new shape Shape shape; if (!ClickData.IsShapesEmpty() && KeyboardController.IsControlDown) { shape = layer.DuplicateShape(ClickData.Shapes[0], ClickData.Origin); } else { shape = layer.AddNewShape(ClickData.Origin, size, Canvas.Instance.GetSelectedColor(), Canvas.Instance.GetSelectedShapeType() ); } // Force new shape to go into resize mode. ClickData.Set(ShapeClickAction.Resize, shape); }
private static void ProcessKeys(KeyEventArgs e, bool isDown) { switch (e.KeyCode) { // Escape from any unsupported keys case Keys.None: default: break; case Keys.R: if (!isDown && !ClickData.IsShapesEmpty() && Canvas.Instance.Focused) { foreach (var s in ClickData.Shapes) { s.Height = s.Width; } } break; case Keys.PageUp: if (!isDown && !ClickData.IsShapesEmpty() && Canvas.Instance.Focused) { foreach (var s in ClickData.Shapes) { Canvas.Instance.layer.MoveShapeUp(s); } } break; case Keys.PageDown: if (!isDown && !ClickData.IsShapesEmpty() && Canvas.Instance.Focused) { foreach (var s in ClickData.Shapes) { Canvas.Instance.layer.MoveShapeDown(s); } } break; case Keys.M: IsMoveDown = isDown && Canvas.Instance.Focused; break; case Keys.P: if (isDown) { ToolBase.SwitchToTool(new MainTool()); } break; case Keys.E: if (isDown) { ToolBase.SwitchToTool(new EraserTool()); } break; case Keys.S: if (isDown) { ToolBase.SwitchToTool(new SelectorTool()); } break; case Keys.ControlKey: IsControlDown = isDown; break; case Keys.A: ShowAllBordersDown = isDown; break; case Keys.ShiftKey: IsShiftDown = isDown; break; case Keys.OemQuestion: Debug.Show(); break; } ToolBase.Current.ProcessKeys(e, isDown); // Invalidate Canvas if it was a new key input if (!(m_prevKey == e.KeyCode && m_prevIsDown == isDown)) { Canvas.Instance.Invalidate(); } m_prevKey = e.KeyCode; m_prevIsDown = isDown; }