private void DrawingArea_MouseUp(object sender, MouseEventArgs e) { List <Point> points; int minX, maxX, minY, maxY; if (_currentTool != DrawingTools.None) { _undo.Push((BitArray)_sprite.Data.Clone()); _redo.Clear(); minX = Math.Min(_x0, _x1); maxX = Math.Max(_x0, _x1); minY = Math.Min(_y0, _y1); maxY = Math.Max(_y0, _y1); switch (_currentTool) { case DrawingTools.DrawLine: points = drawLine(_x0, _y0, _x1, _y1); foreach (Point point in points) { _sprite.SetPixel(point.X, point.Y, _pressedLeft, false); } _sprite.ForceRefresh(); break; case DrawingTools.DrawRect: // points = drawRect(_x0, _y0, _x1, _y1); points = drawRect(minX, minY, maxX, maxY); foreach (Point point in points) { _sprite.SetPixel(point.X, point.Y, _pressedLeft, false); } _sprite.ForceRefresh(); break; case DrawingTools.DrawFilledRect: for (int x = minX; x <= maxX; x++) { for (int y = minY; y <= maxY; y++) { _sprite.SetPixel(x, y, _pressedLeft, false); } } break; } } _pressedLeft = false; _pressedRight = false; _pressed = false; if (_sprite != null) { _sprite.ForceRefresh(); } }
private void btOK_Click(object sender, EventArgs e) { bool isValid = true; myErrors.Clear(); if (_source == null) { myErrors.SetError(panelPreview, Properties.Resources.ERR_EMPTY); isValid = false; } if (txtName.Text.Length == 0) { myErrors.SetError(txtName, Properties.Resources.ERR_EMPTY); isValid = false; } if (isValid) { _sprite = new ArtSprite( txtName.Text, (int)txtWidth.Value, (int)txtHeight.Value); for (int x = 0; x < (int)txtWidth.Value; x++) { for (int y = 0; y < (int)txtHeight.Value; y++) { Color c = _preview.GetPixel(x, y); _sprite.SetPixel(x, y, (c.R == 255), false); } } DialogResult = DialogResult.OK; } }