void SelectShape(aShape iShape) { int x = InputManager.CurrentMouseState.X; int y = InputManager.CurrentMouseState.Y; if (iShape.Contains(x, y)) { iShape.Hovered = true; } else { iShape.Hovered = false; } if (leftClicked && InputManager.IsReleased(MouseInput.LeftButton)) { if (iShape.Hovered) { iShape.Selected = !iShape.Selected; } else if (!InputManager.IsKeyDown(Keys.LeftShift)) { iShape.Selected = false; } } }
void SelectShapes() { int mX = InputManager.CurrentMouseState.X; int mY = InputManager.CurrentMouseState.Y; if (!leftClicked && InputManager.IsPressed(MouseInput.LeftButton)) { foreach (mCanvas c in playground.Canvases) { c.ForAllShapes((aShape shape) => { if (shape.Hovered) { transforming = true; if (transformingShape != null) { transformingShape.Transforming = false; } transformingShape = shape; transformingShape.Transforming = true; //Draw new size if (shape.ShapeName == "ellipse") { drawingShape = new mEllipse(transformingShape.Width, transformingShape.Height, transformingShape.Color); } else { drawingShape = new mRectangle(transformingShape.Width, transformingShape.Height, transformingShape.Color); } drawingShape.X = transformingShape.X; drawingShape.Y = transformingShape.Y; drawingShape.LoadWhileDrawing(); } }); } } //Quick fix for resizing shapes ontop or under shapes if (leftClicked && transforming) { bool overTransformingShape = transformingShape.Contains(mX, mY); if (!overTransformingShape) { transforming = false; } } }
public override bool Contains(int iX, int iY) { return(decoratedShape.Contains(iX, iY)); }