예제 #1
0
        LayoutLine AddVerticalLine(float r)
        {
            var m = new ModelElement();

            m.Load(Left.model.ModData);
            float ex = Top.model.data.localPosition.y;
            float sx = Down.model.data.localPosition.y;
            float w  = ex - sx;

            if (w < 0)
            {
                w = -w;
            }
            LayoutLine line = new LayoutLine(layout, m, Direction.Vertical);
            var        pos  = model.data.localPosition;
            float      dx   = Left.model.data.localPosition.x;

            pos.x  = Right.model.data.localPosition.x - dx;
            pos.x *= r;
            pos.x += dx;
            line.SetSize(pos, new Vector2(Layout.LineWidth, w));
            line.SetLineStart(Down);
            line.SetLineEnd(Top);
            return(line);
        }
예제 #2
0
        void InitialFixLine()
        {
            ModelElement m = new ModelElement();

            m.Load(LineMod.ModData);
            Left = new LayoutLine(this, m, Direction.Vertical, false);

            m = new ModelElement();
            m.Load(LineMod.ModData);
            Right = new LayoutLine(this, m, Direction.Vertical, false);

            m = new ModelElement();
            m.Load(LineMod.ModData);
            Top = new LayoutLine(this, m, Direction.Vertical, false);

            m = new ModelElement();
            m.Load(LineMod.ModData);
            Down = new LayoutLine(this, m, Direction.Vertical, false);

            Vector2 size = model.data.sizeDelta;
            float   rx   = size.x * 0.5f;
            float   ty   = size.y * 0.5f;

            Left.SetSize(new Vector2(-rx, 0), new Vector2(LineWidth, size.y));
            Right.SetSize(new Vector2(rx, 0), new Vector2(LineWidth, size.y));
            Top.SetSize(new Vector2(0, ty), new Vector2(size.x, LineWidth));
            Down.SetSize(new Vector2(0, -ty), new Vector2(size.x, LineWidth));
        }
예제 #3
0
        LayoutLine AddHorizontalLine(float r)
        {
            var m = new ModelElement();

            m.Load(Top.model.ModData);
            float ex = Right.model.data.localPosition.x;
            float sx = Left.model.data.localPosition.x;
            float w  = ex - sx;

            if (w < 0)
            {
                w = -w;
            }
            LayoutLine line = new LayoutLine(layout, m, Direction.Horizontal);
            var        pos  = model.data.localPosition;
            float      dy   = Down.model.data.localPosition.y;

            pos.y  = Top.model.data.localPosition.y - dy;
            pos.y *= r;
            pos.y += dy;
            line.SetSize(pos, new Vector2(w, Layout.LineWidth));
            line.SetLineStart(Left);
            line.SetLineEnd(Right);
            return(line);
        }
예제 #4
0
        void SizeChanged(ModelElement mod)
        {
            Vector2 size = model.data.sizeDelta;
            float   rx   = size.x * 0.5f;
            float   ty   = size.y * 0.5f;

            Left.SetSize(new Vector2(-rx, 0), new Vector2(LineWidth, size.y));
            Right.SetSize(new Vector2(rx, 0), new Vector2(LineWidth, size.y));
            Top.SetSize(new Vector2(0, ty), new Vector2(size.x, LineWidth));
            Down.SetSize(new Vector2(0, -ty), new Vector2(size.x, LineWidth));
            for (int i = 0; i < lines.Count; i++)
            {
                lines[i].SizeChanged();
            }
        }