/// <summary> /// Handles all drag events from all thumbs. /// The actual transformation is set in other code /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BigThumb_DragCompleted(object sender, DragCompletedEventArgs e) { if (!e.Canceled) { var lastTranslation = (TranslateTransform)LastOperation; lastTranslation.X = DragXTravel; lastTranslation.Y = DragYTravel; InvalidateVisual(); //move the molecule EditViewModel.DoTransform(LastOperation, AdornedMolecules); RaiseDRCompleted(sender, e); CurrentEditor.SuppressRedraw = false; foreach (Molecule adornedMolecule in AdornedMolecules) { adornedMolecule.UpdateVisual(); } } else { EditViewModel.RemoveFromSelection(AdornedMolecules.ConvertAll(am => (ChemistryBase)am)); } Dragging = false; }
private void HandleResizeCompleted(object sender, DragCompletedEventArgs dragCompletedEventArgs) { Resizing = false; if (LastOperation != null) { EditViewModel.DoTransform(LastOperation, AdornedMolecules); SetBoundingBox(); ResizeCompleted?.Invoke(this, dragCompletedEventArgs); SetCentroid(); InvalidateVisual(); } (sender as Thumb)?.ReleaseMouseCapture(); }
private void CurrentEditor_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e) { dynamic currentObject = CurrentObject(e); if (IsDragging) { if (_atomList != null && _atomList.Any()) { EditViewModel.DoTransform(_shift, _atomList); _atomList[0].Parent.UpdateVisual(); } IsDragging = false; if (_ghostAdorner != null) { RemoveAdorner(_ghostAdorner); _ghostAdorner = null; } _atomList = null; } else { //did we go up on the target we went down on? if ((currentObject != null) & (currentObject == _initialTarget)) { //select it DoSelectionClick(e); } else if (_initialTarget != null && EditViewModel.SelectedItems.Contains(_initialTarget)) { DoSelectionClick(e); } if (_lassoAdorner != null) { _lassoHits = new List <object>(); GatherSelection(_lassoAdorner.Outline); _lassoHits = _lassoHits.Distinct().ToList(); EditViewModel.AddToSelection(_lassoHits); } if (EditViewModel.SelectedItems.Any()) { CurrentStatus = ActiveSelText; } if (_lassoAdorner != null) { DisposeLasso(); } } _initialTarget = null; _mouseTrack = null; CurrentEditor.ReleaseMouseCapture(); CurrentEditor.Focus(); var al = AdornerLayer.GetAdornerLayer(CurrentEditor); al.Update(); CurrentStatus = DefaultText; }