示例#1
0
        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();
            }
        }
示例#2
0
        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;
            }
        }