Beispiel #1
0
 //
 // Constructor
 //
 public CanvasItem(Point point, PaletteItem paletteItem, Bitmap sourceSpriteSheet)
 {
     this.point             = point;
     this.paletteItem       = paletteItem;
     this.sourceSpriteSheet = sourceSpriteSheet;
     this.cropped           = CropBitmap(paletteItem.rectangle);
 }
Beispiel #2
0
        public void AddCanvasItem(Point point, PaletteItem paletteItem)
        {
            CanvasItem canvasItem = new CanvasItem(point, paletteItem, this.sourceSpriteSheet);

            this.listCanvasItems.Add(canvasItem);

            Graphics g = this.pictureBox.CreateGraphics();

            g.DrawImage(canvasItem.Cropped, canvasItem.Point);
        }
Beispiel #3
0
        private void listBoxPalette_SelectedIndexChanged(object sender, EventArgs e)
        {
            //
            // Based upon listBoxPalette's selected index:
            //  - Show the respective PaletteItem.Name
            //  - Show the respective PaletteItem.paletteTypeEnum (for comboBoxPaletteType)
            //
            int selectedPalette = this.listBoxPalette.SelectedIndex;

            if (-1 != selectedPalette)
            {
                this.textBoxPalName.Text = Project.Instance.ListPaletteItems.ElementAt(selectedPalette).name;
                PaletteItem selectedPaletteItem = Project.Instance.ListPaletteItems.ElementAt(selectedPalette);
                this.comboBoxPaletteType.SelectedIndex = (int)selectedPaletteItem.paletteTypeEnum;
            }
        }
Beispiel #4
0
        private void comboBoxPaletteType_SelectedIndexChanged(object sender, EventArgs e)
        {
            //
            // If the dropdown box selection (comboBoxPaletteType) changes, ensure we fetch the newly
            // specified PaletteItem.PaletteType enum value and update the respective PaletteItem
            //
            PaletteItem.PaletteType selectedPaletteType = (PaletteItem.PaletteType)Enum.Parse(
                typeof(PaletteItem.PaletteType),
                this.comboBoxPaletteType.SelectedValue.ToString()
                );

            if (-1 != this.listBoxPalette.SelectedIndex)
            {
                PaletteItem selectedPaletteItem = Project.Instance.ListPaletteItems.ElementAt(this.listBoxPalette.SelectedIndex);
                selectedPaletteItem.paletteTypeEnum = selectedPaletteType;
            }
        }
Beispiel #5
0
        private void pictureBoxCanvas_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
        {
            Point point            = System.Windows.Forms.Control.MousePosition;
            Point pointPanelCanvas = this.pictureBoxCanvas.PointToClient(point);

            if (true == this.panelCanvas.ClientRectangle.Contains(pointPanelCanvas))
            {
                if (Form.MouseButtons == MouseButtons.Left)
                {
                    int selectedIndex = this.listBoxPalette.SelectedIndex;

                    if (selectedIndex >= 0)
                    {
                        PaletteItem paletteItem = Project.Instance.ListPaletteItems.ElementAt(selectedIndex);

                        //
                        // Find which grid cell contains our current MouseDown Point
                        // Snap-To-Grid a new Point to the upper left corner of the matching grid cell
                        //
                        Point pointGridSnap = new Point();
                        for (int i = 0; i < Project.Instance.Canvas.Grid.ListGridColumn.Count; i++)
                        {
                            GridColumn gridColumn = Project.Instance.Canvas.Grid.ListGridColumn.ElementAt(i);
                            for (int j = 0; j < gridColumn.ListRow.Count; j++)
                            {
                                GridCell gridCell = gridColumn.ListRow.ElementAt(j);
                                if (true == gridCell.Rectangle.Contains(pointPanelCanvas))
                                {
                                    pointGridSnap.X = gridCell.Rectangle.X;
                                    pointGridSnap.Y = gridCell.Rectangle.Y;
                                    break;
                                }
                            }
                        }

                        Project.Instance.Canvas.AddCanvasItem(pointGridSnap, paletteItem);
                    }
                }
            }
        }