Esempio n. 1
0
        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;
                }
            }
        }
Esempio n. 2
0
        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;
        }