void InsertDataBlockLogic(PageItem page, DataBlockSnapMode mode) { //Point p = GetClickLocation(0.0, 0.0); Point p = new Point(RightClick.X, RightClick.Y); var item = new DataBlockLogicItem() { IsNew = false, IsModified = false, IsDeleted = false, Designation = "Designation", Signal = "Signal", Description = "Description", Condition = "Condition", X = p.X, Y = p.Y, Z = 1 }; SnapDataBlockLogicItem(item, 0.0, 0.0, mode); page.Items.Add(item); }
void SnapDataBlockLogicItem(ILocation locacion, double dX, double dY, DataBlockSnapMode mode) { double left = SnapGrid.Snap(locacion.X + dX, UnitConverter.CmToDip(0.1)); //double top = SnapGrid.Snap(locacion.Y + dY, UnitConverter.CmToDip(1.0), UnitConverter.CmToDip(0.1)); double top = UnitConverter.CmToDip(Math.Floor(UnitConverter.DipToCm(locacion.Y + dY)) + 0.1); switch (mode) { case DataBlockSnapMode.Input: { left = UnitConverter.CmToDip(1.3); } break; case DataBlockSnapMode.Output: { left = UnitConverter.CmToDip(31.2); } break; case DataBlockSnapMode.Auto: { if (left < UnitConverter.CmToDip(1.3)) { // X < 1.3cm left = UnitConverter.CmToDip(1.3); } else if (left >= UnitConverter.CmToDip(1.3) && left < UnitConverter.CmToDip(11.2)) { // 1.3cm >= X > 11.2cm left = UnitConverter.CmToDip(1.3); } else if (left >= UnitConverter.CmToDip(11.2) && left < UnitConverter.CmToDip(31.2)) { // 11.2cm >= X > 31.2cm if (left <= UnitConverter.CmToDip(21.2)) { // move to inputs left = UnitConverter.CmToDip(1.3); } else { // move to outputs left = UnitConverter.CmToDip(31.2); } } else { // X >= 31.2cm left = UnitConverter.CmToDip(31.2); } } break; } if (top <= UnitConverter.CmToDip(2.1)) { // Y <= 2.1cm top = UnitConverter.CmToDip(2.1); } else if (top >= UnitConverter.CmToDip(25.1)) { // Y >= 25.1 top = UnitConverter.CmToDip(25.1); } else { // 2.1cm < Y < 25.1cm //top = top + UnitConverter.CmToDip(0.1); } locacion.X = left; locacion.Y = top; }