Added Drag/Drop Rearrange to SpriteMapEditor

This commit is contained in:
quinnvoker
2018-11-22 16:29:50 -08:00
parent fd24ebaeba
commit acda9d30fc
2 changed files with 54 additions and 6 deletions
+33 -4
View File
@@ -23,6 +23,7 @@ namespace SpriteMapEditor
private bool loadingSprite = false;
private bool movingWithMouse = false;
private bool rearrangingSprites = false;
private Point newPosition;
private Point oldPosition;
@@ -50,15 +51,11 @@ namespace SpriteMapEditor
currentSprite = sprites[0];
Console.WriteLine(currentSprite.Bounds);
spriteList.DataSource = sprites;
spriteList.DisplayMember = "Name";
spriteList.ValueMember = "Bounds";
LoadSpriteEditorValues();
Console.WriteLine(currentSprite.Bounds);
}
private void loadSpriteSheetButton_Click(object sender, EventArgs e)
@@ -339,5 +336,37 @@ namespace SpriteMapEditor
{
movingWithMouse = false;
}
private void spriteList_MouseDown(object sender, MouseEventArgs e)
{
if (rearrangingSprites)
{
if (spriteList.SelectedItem == null)
return;
spriteList.DoDragDrop(spriteList.SelectedItem, DragDropEffects.Move);
}
}
private void spriteList_DragOver(object sender, DragEventArgs e)
{
e.Effect = DragDropEffects.Move;
}
private void spriteList_DragDrop(object sender, DragEventArgs e)
{
Point point = spriteList.PointToClient(new Point(e.X, e.Y));
int index = spriteList.IndexFromPoint(point);
if (index < 0)
index = spriteList.Items.Count - 1;
Sprite data = (Sprite)spriteList.SelectedItem;
sprites.Remove(data);
sprites.Insert(index, data);
}
private void rearrangeCheckBox_CheckedChanged(object sender, EventArgs e)
{
rearrangingSprites = rearrangeCheckBox.Checked;
spriteList.AllowDrop = rearrangeCheckBox.Checked;
}
}
}