private void bgPanel_MouseMove(object sender, MouseEventArgs e)
{
_inResizingArea = false;
int mouseX, mouseY;
GetCoordinatesAtGameResolution(e, out mouseX, out mouseY);
_currentMouseX = e.X;
_currentMouseY = e.Y;
if (_movingControl)
{
MoveControlWithMouse(mouseX, mouseY);
}
else if (_addingControl)
{
bgPanel.Invalidate();
}
else if (_drawingSelectionBox)
{
if (mouseX >= _selectionBoxX)
{
_selectionRect.X = _selectionBoxX;
_selectionRect.Width = mouseX - _selectionBoxX;
}
else if (mouseX < _selectionBoxX)
{
_selectionRect.X = mouseX;
_selectionRect.Width = _selectionBoxX - mouseX;
}
if (mouseY >= _selectionBoxY)
{
_selectionRect.Y = _selectionBoxY;
_selectionRect.Height = mouseY - _selectionRect.Y;
}
else if (mouseY < _selectionBoxY)
{
_selectionRect.Y = mouseY;
_selectionRect.Height = _selectionBoxY - mouseY;
}
bgPanel.Invalidate();
}
else if ((_resizingControl) && (_selectedControl != null))
{
try
{
_selectedControl.Width = (mouseX - _selectedControl.Left) + _mouseXOffset;
_selectedControl.Height = (mouseY - _selectedControl.Top) + _mouseYOffset;
}
catch (ArgumentException) {}
bgPanel.Invalidate();
}
else if (_selectedControl != null)
{
int bottomRightX = _selectedControl.Left + _selectedControl.Width;
int bottomRightY = _selectedControl.Top + _selectedControl.Height;
if ((mouseX >= bottomRightX - 2) &&
(mouseX <= bottomRightX + 2) &&
(mouseY >= bottomRightY - 2) &&
(mouseY <= bottomRightY + 2))
{
_inResizingArea = true;
}
}
UpdateCursorImage();
}