Browse Source

Changes to WrapitemsIn... so it can be used from external Code

pull/619/head
jkuehner 12 years ago
parent
commit
3e1b6e580d
  1. 13
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs

13
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/ModelTools.cs

@ -236,7 +236,7 @@ namespace ICSharpCode.WpfDesign.Designer
return itemPos; return itemPos;
} }
public static void WrapItemsNewContainer(IEnumerable<DesignItem> items, Type containerType) public static Tuple<DesignItem, Rect> WrapItemsNewContainer(IEnumerable<DesignItem> items, Type containerType, bool doInsert = true)
{ {
var collection = items; var collection = items;
@ -245,12 +245,12 @@ namespace ICSharpCode.WpfDesign.Designer
var container = collection.First().Parent; var container = collection.First().Parent;
if (collection.Any(x => x.Parent != container)) if (collection.Any(x => x.Parent != container))
return; return null;
//Change Code to use the Placment Operation! //Change Code to use the Placment Operation!
var placement = container.Extensions.OfType<IPlacementBehavior>().FirstOrDefault(); var placement = container.Extensions.OfType<IPlacementBehavior>().FirstOrDefault();
if (placement == null) if (placement == null)
return; return null;
var operation = PlacementOperation.Start(items.ToList(), PlacementType.Move); var operation = PlacementOperation.Start(items.ToList(), PlacementType.Move);
@ -326,6 +326,8 @@ namespace ICSharpCode.WpfDesign.Designer
} }
} }
if (doInsert)
{
PlacementOperation operation2 = PlacementOperation.TryStartInsertNewComponents( PlacementOperation operation2 = PlacementOperation.TryStartInsertNewComponents(
container, container,
new[] {newPanel}, new[] {newPanel},
@ -335,9 +337,12 @@ namespace ICSharpCode.WpfDesign.Designer
operation2.Commit(); operation2.Commit();
_context.Services.Selection.SetSelectedComponents(new[] {newPanel});
}
operation.Commit(); operation.Commit();
_context.Services.Selection.SetSelectedComponents(new []{ newPanel }); return new Tuple<DesignItem, Rect>(newPanel, new Rect(xmin, ymin, xmax - xmin, ymax - ymin).Round());
} }
public static void ArrangeItems(IEnumerable<DesignItem> items, ArrangeDirection arrangeDirection) public static void ArrangeItems(IEnumerable<DesignItem> items, ArrangeDirection arrangeDirection)

Loading…
Cancel
Save