/// <summary> /// Drag complete. /// </summary> /// <param name="destination"> The destination layerage. </param> /// <param name="source"> The source layerage. </param> /// <param name="destinationOverlayMode"> The destination OverlayMode. </param> /// <param name="sourceIsSelected"> The source SelectMode. </param> public static void DragComplete(Layerage destination, Layerage source, OverlayMode destinationOverlayMode, bool sourceIsSelected) { if (source is null) { return; } if (destination is null) { return; } ILayer destinationLayer = destination.Self; ILayer sourceLayer = source.Self; destinationLayer.Control.OverlayMode = OverlayMode.None; if (destinationLayer.IsSelected) { return; } if (destinationOverlayMode == OverlayMode.None) { return; } if (source == destination) { return; } if (sourceIsSelected == false) { switch (destinationOverlayMode) { case OverlayMode.Top: LayerManager.Insert(destination, source, isBottomInsert: false); break; case OverlayMode.Center: LayerManager.Add(destination, source); break; case OverlayMode.Bottom: LayerManager.Insert(destination, source, isBottomInsert: true); break; } } else { // Layerages IEnumerable <Layerage> selectedLayerages = LayerManager.GetAllSelected(); switch (destinationOverlayMode) { case OverlayMode.Top: LayerManager.InsertRange(destination, selectedLayerages, isBottomInsert: false); break; case OverlayMode.Center: LayerManager.AddRange(destination, selectedLayerages); break; case OverlayMode.Bottom: LayerManager.InsertRange(destination, selectedLayerages, isBottomInsert: true); break; } } }