static void Layout4Connected(LineItem lineItem, int type, ref double o1, ref double o3) { BorderLine neighbor = GetNeighbor(lineItem, type); if (IsDoubleLine(neighbor)) { double thickness = 1.0; BorderLine line2 = BorderLine.Max(GetBreaker1(lineItem, type), GetBreaker2(lineItem, type)); if (line2 != null) { thickness = line2.StyleData.Thickness; } if ((lineItem.Line > neighbor) || object.Equals(neighbor, lineItem.Line)) { if (type == 1) { o1 -= type; o3 -= type; } else if (thickness == 1.0) { o1 -= type; o3 -= type; } } else if (type == 1) { if (thickness == 1.0) { o1 -= type * 2; o3 -= type * 2; } else { o1 -= type * 3; o3 -= type * 3; } } else { o1 -= type * 2; o3 -= type * 2; } } }
static void CalcLayoutVertical(LineItem lineItem, double hOffset, double vOffset, out double x1, out double x2, out double y1, out double y2) { y1 = lineItem.Bounds[0].Top; y2 = lineItem.Bounds[lineItem.Bounds.Count - 1].Bottom; if (lineItem.Line.StyleData.DrawingThickness == 2) { x1 = lineItem.Bounds[0].Right - 1.0; x2 = lineItem.Bounds[0].Right - 1.0; } else { x1 = lineItem.Bounds[0].Right - 0.5; x2 = lineItem.Bounds[0].Right - 0.5; } BorderLine objA = BorderLine.Max(lineItem.PreviousBreaker1, lineItem.PreviousBreaker2); if (!IsAllowExtend(lineItem, -1)) { y1++; } else if (IsDoubleLine(lineItem.Line) && ((IsDoubleLine(lineItem.PreviousBreaker1) || IsDoubleLine(lineItem.PreviousBreaker2)) || IsDoubleLine(lineItem.PreviousLine))) { y1 -= 2.0; } else if (objA > lineItem.Line) { if (objA != null) { if (objA.StyleData.Thickness == 3) { y1++; } else if (objA.StyleData.Thickness == 2) { y1 += 0.0; } else if (objA.StyleData.Thickness == 1) { y1 += 0.0; } } } else if (lineItem.Line > objA) { if (lineItem.Line > lineItem.PreviousLine) { if (objA != null) { if (objA.StyleData.Thickness == 3) { y1 -= 2.0; } else if (objA.StyleData.Thickness == 2) { y1 -= 2.0; } else if (objA.StyleData.Thickness == 1) { y1--; } } } else if (!object.Equals(lineItem.Line, lineItem.PreviousLine)) { if (lineItem.PreviousLine > objA) { if (objA != null) { if (objA.StyleData.Thickness == 3) { y1++; } else if (objA.StyleData.Thickness == 2) { y1 += 0.0; } else if (objA.StyleData.Thickness == 1) { y1 += 0.0; } } } else { y1 -= 0.0; } } } else if (object.Equals(objA, lineItem.Line) && (lineItem.Line > lineItem.PreviousLine)) { if (objA.StyleData.Thickness == 3) { y1 -= 2.0; } else if (objA.StyleData.Thickness == 2) { y1 -= 2.0; } else if (objA.StyleData.Thickness == 1) { y1--; } } BorderLine line2 = BorderLine.Max(lineItem.NextBreaker1, lineItem.NextBreaker2); if (!IsAllowExtend(lineItem, 1)) { y2 -= 2.0; } else if (IsDoubleLine(lineItem.Line) && ((IsDoubleLine(lineItem.NextBreaker1) || IsDoubleLine(lineItem.NextBreaker2)) || IsDoubleLine(lineItem.NextLine))) { y2++; } else if (line2 > lineItem.Line) { if (line2 != null) { if (line2.StyleData.Thickness == 3) { y2 -= 2.0; } else if (line2.StyleData.Thickness == 2) { y2 -= 2.0; } else if (line2.StyleData.Thickness == 1) { y2--; } } } else if ((line2 != null) && (lineItem.Line > line2)) { if (lineItem.Line > lineItem.NextLine) { if (line2 != null) { if (line2.StyleData.Thickness == 3) { y2++; } if (line2.StyleData.Thickness == 2) { y2 += 0.0; } if (line2.StyleData.Thickness == 1) { y2 += 0.0; } } } else if (!object.Equals(lineItem.Line, lineItem.NextLine)) { y2--; } } else if (object.Equals(line2, lineItem.Line)) { if (lineItem.Line > lineItem.NextLine) { if (line2.StyleData.Thickness == 3) { y2++; } if (line2.StyleData.Thickness == 2) { y2 += 0.0; } if (line2.StyleData.Thickness == 1) { y2 += 0.0; } } else if (!object.Equals(lineItem.Line, lineItem.NextLine)) { y2--; } } x1 -= hOffset; x2 -= hOffset; y1 -= vOffset; y2 -= vOffset; }