/// <inheritdoc /> public override bool OnMouseDoubleClick(Vector2 location, MouseButton button) { if (base.OnMouseDoubleClick(location, button)) { return(true); } if (button == MouseButton.Left) { Editor.EditKeyframes(this, location, new List <int> { Index }); return(true); } return(false); }
/// <inheritdoc /> public override bool OnMouseUp(Vector2 location, MouseButton button) { _mousePos = location; if (_leftMouseDown && button == MouseButton.Left) { _leftMouseDown = false; EndMouseCapture(); Cursor = CursorType.Default; // Moving keyframes if (_isMovingSelection) { if (_mouseMoveAmount > 3.0f) { _editor.OnEdited(); _editor.OnEditingEnd(); } } // Selecting else { UpdateSelectionRectangle(); } _isMovingSelection = false; } if (_rightMouseDown && button == MouseButton.Right) { _rightMouseDown = false; EndMouseCapture(); Cursor = CursorType.Default; // Check if no move has been made at all if (_mouseMoveAmount < 3.0f) { var selectionCount = _editor.SelectionCount; var underMouse = GetChildAt(location); if (selectionCount == 0 && underMouse is KeyframePoint point) { // Select node selectionCount = 1; point.Select(); } var viewRect = _editor._mainPanel.GetClientArea(); _cmShowPos = PointToKeyframes(location, ref viewRect); var cm = new ContextMenu.ContextMenu(); cm.AddButton("Add keyframe", () => _editor.AddKeyframe(_cmShowPos)).Enabled = _editor.Keyframes.Count < _editor.MaxKeyframes; if (selectionCount == 0) { } else if (selectionCount == 1) { cm.AddButton("Edit keyframe", () => _editor.EditKeyframes(this, location)); cm.AddButton("Remove keyframe", _editor.RemoveKeyframes); } else { cm.AddButton("Edit keyframes", () => _editor.EditKeyframes(this, location)); cm.AddButton("Remove keyframes", _editor.RemoveKeyframes); } cm.AddButton("Edit all keyframes", () => _editor.EditAllKeyframes(this, location)); if (_editor.EnableZoom && _editor.EnablePanning) { cm.AddSeparator(); cm.AddButton("Show whole keyframes", _editor.ShowWholeKeyframes); cm.AddButton("Reset view", _editor.ResetView); } cm.Show(this, location); } _mouseMoveAmount = 0; } if (base.OnMouseUp(location, button)) { // Clear flags _rightMouseDown = false; _leftMouseDown = false; return(true); } return(true); }