private void bufferedPanel1_MouseMove(object sender, MouseEventArgs e) { if ((e.X == _lastX) && (e.Y == _lastY)) { return; } _lastX = e.X; _lastY = e.Y; int mouseXPos = _state.WindowXToRoom(e.X); int mouseYPos = _state.WindowYToRoom(e.Y); string xPosText = mouseXPos.ToString(); string yPosText = mouseYPos.ToString(); if ((mouseXPos < 0) || (mouseXPos >= _room.Width)) { xPosText = "?"; } if ((mouseYPos < 0) || (mouseYPos >= _room.Height)) { yPosText = "?"; } lblMousePos.Text = $"{xPosText}, {yPosText}"; SelectCursor(e.X, e.Y, _state); if (_layer != null && !IsLocked(_layer)) { if (_layer.MouseMove(e.X, e.Y, _state)) { bufferedPanel1.Invalidate(); } } }
public virtual bool MouseDown(MouseEventArgs e, RoomEditorState state) { if (e.Button == MouseButtons.Middle) { return(false); } int x = state.WindowXToRoom(e.X); int y = state.WindowYToRoom(e.Y); AreaDrawMode drawMode = IsFilterOn() ? _drawMode : AreaDrawMode.Select; if (IsLocked(_selectedArea) && drawMode != AreaDrawMode.Select) { return(false); } if (drawMode == AreaDrawMode.Freehand) { Factory.NativeProxy.CreateUndoBuffer(_room, this.MaskToDraw); } _drawingWithArea = _selectedArea; if (e.Button == MouseButtons.Right) { _drawingWithArea = 0; } if ((drawMode == AreaDrawMode.Line) || (drawMode == AreaDrawMode.Freehand) || (drawMode == AreaDrawMode.Rectangle)) { if (_selectedArea == 0) { _tooltip.Show("You are currently using the eraser. To draw new areas, change the selection in the list above the Properties Pane.", _panel, e.X, e.Y - 70, 2000); } _mouseDown = true; _mouseDownX = x; _mouseDownY = y; _room.Modified = true; } else if (drawMode == AreaDrawMode.Fill) { Factory.NativeProxy.CreateUndoBuffer(_room, this.MaskToDraw); Factory.NativeProxy.DrawFillOntoMask(_room, this.MaskToDraw, x, y, _drawingWithArea); _room.Modified = true; UpdateUndoButtonEnabledState(); } else if (drawMode == AreaDrawMode.Select) { int area = Factory.NativeProxy.GetAreaMaskPixel(_room, this.MaskToDraw, x, y); if (area != 0 && !IsLocked(area)) { SelectedArea = area; SelectedAreaChanged(_selectedArea); } } return(true); }
public virtual bool MouseDown(MouseEventArgs e, RoomEditorState state) { int x = state.WindowXToRoom(e.X); int y = state.WindowYToRoom(e.Y); RoomObject obj = GetObject(x, y); if (obj != null) { SetSelectedObject(obj); Factory.GUIController.SetPropertyGridObject(obj); if (e.Button == MouseButtons.Right) { ShowContextMenu(e, state); } else if (!DesignItems[GetItemID(obj)].Locked) { _movingObjectWithMouse = true; _mouseOffsetX = x - obj.StartX; _mouseOffsetY = y - obj.StartY; } } if (_selectedObject == null) { if (e.Button == MouseButtons.Right) { ShowContextMenu(e, state); return(true); } return(false); } return(true); }
public bool MouseDown(MouseEventArgs e, RoomEditorState state) { if (e.Button == MouseButtons.Middle) { return(false); } int xClick = state.WindowXToRoom(e.X); int yClick = state.WindowYToRoom(e.Y); Character character = GetCharacter(xClick, yClick, state); if (character != null) { SelectCharacter(character, xClick, yClick, state); } else { _selectedCharacter = null; } if (_selectedCharacter != null) { Factory.GUIController.SetPropertyGridObject(_selectedCharacter); return(true); } return(false); }
public bool MouseDown(MouseEventArgs e, RoomEditorState state) { if (e.Button == MouseButtons.Middle) { return(false); } _mouseDown = true; int x = state.WindowXToRoom(e.X); int y = state.WindowYToRoom(e.Y); if (IsCursorOnVerticalEdge(x, _room.LeftEdgeX, SelectedEdge.Left) && SetSelectedEdge(SelectedEdge.Left)) { } else if (IsCursorOnVerticalEdge(x, _room.RightEdgeX, SelectedEdge.Right) && SetSelectedEdge(SelectedEdge.Right)) { } else if (IsCursorOnHorizontalEdge(y, _room.TopEdgeY, SelectedEdge.Top) && SetSelectedEdge(SelectedEdge.Top)) { } else if (IsCursorOnHorizontalEdge(y, _room.BottomEdgeY, SelectedEdge.Bottom) && SetSelectedEdge(SelectedEdge.Bottom)) { } else { _selectedEdge = SelectedEdge.None; } _lastSelectedEdge = _selectedEdge; return(_selectedEdge != SelectedEdge.None); }
public Cursor GetCursor(int x, int y, RoomEditorState state) { if (_movingObjectWithMouse) return Cursors.Hand; x = state.WindowXToRoom(x); y = state.WindowYToRoom(y); if (GetObject(x, y) != null) return Cursors.Default; return null; }
public Cursor GetCursor(int x, int y, RoomEditorState state) { int roomX = state.WindowXToRoom(x); int roomY = state.WindowYToRoom(y); string toolTipText = null; Cursor cursor = null; SelectedEdge draggingEdge = _mouseDown ? _selectedEdge : SelectedEdge.None; if (draggingEdge == SelectedEdge.Left || IsCursorOnVerticalEdge(roomX, _room.LeftEdgeX, SelectedEdge.Left)) { cursor = IsMoveable(SelectedEdge.Left) ? Cursors.VSplit : RoomSettingsEditor.LockedCursor; toolTipText = "Left edge"; } else if (draggingEdge == SelectedEdge.Right || IsCursorOnVerticalEdge(roomX, _room.RightEdgeX, SelectedEdge.Right)) { cursor = IsMoveable(SelectedEdge.Right) ? Cursors.VSplit : RoomSettingsEditor.LockedCursor; toolTipText = "Right edge"; } else if (draggingEdge == SelectedEdge.Top || IsCursorOnHorizontalEdge(roomY, _room.TopEdgeY, SelectedEdge.Top)) { cursor = IsMoveable(SelectedEdge.Top) ? Cursors.HSplit : RoomSettingsEditor.LockedCursor; toolTipText = "Top edge"; } else if (draggingEdge == SelectedEdge.Bottom || IsCursorOnHorizontalEdge(roomY, _room.BottomEdgeY, SelectedEdge.Bottom)) { cursor = IsMoveable(SelectedEdge.Bottom) ? Cursors.HSplit : RoomSettingsEditor.LockedCursor; toolTipText = "Bottom edge"; } else { cursor = null; } if (toolTipText != null) { // Tooltip.Show is quite a slow function, so make sure it's not // called too often if ((Math.Abs(x - _tooltipX) > 5) || (Math.Abs(y - _tooltipY) > 5) || (_tooltipText != toolTipText) || (!_tooltip.Active)) { _tooltip.Show(toolTipText, _panel, x - 10, y + 5); _tooltipX = x; _tooltipY = y; _tooltipText = toolTipText; } } else if (_tooltip.Active) { _tooltip.Hide(_panel); } return(cursor); }
private void ShowCoordMenu(MouseEventArgs e, RoomEditorState state) { EventHandler onClick = new EventHandler(CoordMenuEventHandler); ContextMenuStrip menu = new ContextMenuStrip(); menu.Items.Add(new ToolStripMenuItem("Copy mouse coordinates to clipboard", null, onClick, MENU_ITEM_COPY_COORDS)); _menuClickX = state.WindowXToRoom(e.X); _menuClickY = state.WindowYToRoom(e.Y); menu.Show(_panel, e.X, e.Y); }
public bool MouseMove(int x, int y, RoomEditorState state) { if (!_movingCharacterWithMouse) { return(false); } int newX = state.WindowXToRoom(x) - _mouseOffsetX; int newY = state.WindowYToRoom(y) - _mouseOffsetY; return(MoveCharacter(newX, newY)); }
public bool MouseMove(int x, int y, RoomEditorState state) { if (_selectedEdge != SelectedEdge.None && _mouseDown) { x = state.WindowXToRoom(x); y = state.WindowYToRoom(y); MoveEdgeWithMouse(x, y); _room.Modified = true; return(true); } return(false); }
public Cursor GetCursor(int x, int y, RoomEditorState state) { if (_movingCharacterWithMouse) { return(Cursors.Hand); } x = state.WindowXToRoom(x); y = state.WindowYToRoom(y); if (GetCharacter(x, y, state) != null) { return(Cursors.Default); } return(null); }
public virtual bool MouseMove(int x, int y, RoomEditorState state) { if (!_movingObjectWithMouse) return false; int realX = state.WindowXToRoom(x); int realY = state.WindowYToRoom(y); if ((_movingObjectWithMouse) && (realY < _room.Height) && (realX < _room.Width) && (realY >= 0) && (realX >= 0)) { int newX = realX - _mouseOffsetX; int newY = realY - _mouseOffsetY; return MoveObject(newX, newY); } return false; }
public virtual Cursor GetCursor(int x, int y, RoomEditorState state) { if (_drawMode != AreaDrawMode.Select) { return(Cursors.Cross); } if (state.CurrentCursor == null) { x = state.WindowXToRoom(x); y = state.WindowYToRoom(y); int area = Factory.NativeProxy.GetAreaMaskPixel(_room, this.MaskToDraw, x, y); if (area != 0 && !IsLocked(area)) { return(_selectCursor); } } return(null); }
private void ShowContextMenu(MouseEventArgs e, RoomEditorState state) { EventHandler onClick = new EventHandler(ContextMenuEventHandler); ContextMenuStrip menu = new ContextMenuStrip(); if (_selectedObject != null) { menu.Items.Add(new ToolStripMenuItem("Delete", null, onClick, MENU_ITEM_DELETE)); menu.Items.Add(new ToolStripSeparator()); } menu.Items.Add(new ToolStripMenuItem("Place New Object Here", null, onClick, MENU_ITEM_NEW)); if (_selectedObject != null) { menu.Items.Add(new ToolStripMenuItem("Copy Object Coordinates to Clipboard", null, onClick, MENU_ITEM_OBJECT_COORDS)); } _menuClickX = state.WindowXToRoom(e.X); _menuClickY = state.WindowYToRoom(e.Y); menu.Show(_panel, e.X, e.Y); }
public virtual bool MouseMove(int x, int y, RoomEditorState state) { _currentMouseX = state.WindowXToRoom(x); _currentMouseY = state.WindowYToRoom(y); AreaDrawMode drawMode = IsFilterOn() ? _drawMode : AreaDrawMode.Select; if (_mouseDown) { if (drawMode == AreaDrawMode.Freehand) { Factory.NativeProxy.DrawLineOntoMask(_room, this.MaskToDraw, _mouseDownX, _mouseDownY, _currentMouseX, _currentMouseY, _drawingWithArea); _mouseDownX = _currentMouseX; _mouseDownY = _currentMouseY; UpdateUndoButtonEnabledState(); } return(true); } return(false); }
private void bufferedPanel1_MouseMove(object sender, MouseEventArgs e) { if ((e.X == _lastX) && (e.Y == _lastY)) { return; } _lastX = e.X; _lastY = e.Y; int mouseXPos = _state.WindowXToRoom(e.X); int mouseYPos = _state.WindowYToRoom(e.Y); string xPosText = mouseXPos.ToString(); string yPosText = mouseYPos.ToString(); if ((mouseXPos < 0) || (mouseXPos >= _room.Width)) { xPosText = "?"; } if ((mouseYPos < 0) || (mouseYPos >= _room.Height)) { yPosText = "?"; } lblMousePos.Text = "Mouse Position: " + xPosText + ", " + yPosText; SelectCursor(e.X, e.Y, _state); foreach (IRoomEditorFilter layer in _layers) { if (IsLocked(layer)) { continue; } if (layer.MouseMove(e.X, e.Y, _state)) { bufferedPanel1.Invalidate(); break; } } }