#develop (short for SharpDevelop) is a free IDE for .NET programming languages.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

46 lines
1.0 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Media;
using SharpDevelop.XamlDesigner.Dom;
namespace SharpDevelop.XamlDesigner.Placement
{
abstract class PositionalContainer : PlacementContainer
{
SnapEngine snapEngine;
public abstract void SetPosition(DesignItem item, Rect bounds);
public override void OnMove(MoveOperation op)
{
if (snapEngine != null) {
snapEngine.SnapMove(op);
}
foreach (var info in op.PlacementInfos) {
SetPosition(info.Item, info.NewBoundsInContainer);
}
}
public override void Enter(MoveOperation op)
{
ContainerItem.Add(op.Items, op.Copy);
snapEngine = new SnapEngine(ContainerItem);
snapEngine.BuildMap(op);
}
public override void Leave(MoveOperation op)
{
op.Items.Delete();
snapEngine.HideSnaplines();
snapEngine = null;
}
public void BeforeLeavePreviousContainer(MoveOperation op)
{
SnapEngine.UpdateBaseline(op.Items.First());
}
}
}