Example #1
0
    // Token: 0x0600472C RID: 18220 RVA: 0x0010D1C8 File Offset: 0x0010B3C8
    protected override void _PerformLayoutImpl(global::dfMarkupBox container, global::dfMarkupStyle style)
    {
        style.TextDecoration = global::dfMarkupTextDecoration.Underline;
        style = base.applyTextStyleAttributes(style);
        int i = 0;

        while (i < base.ChildNodes.Count)
        {
            global::dfMarkupElement dfMarkupElement = base.ChildNodes[i];
            if (!(dfMarkupElement is global::dfMarkupString))
            {
                goto IL_63;
            }
            global::dfMarkupString dfMarkupString = dfMarkupElement as global::dfMarkupString;
            if (!(dfMarkupString.Text == "\n"))
            {
                goto IL_63;
            }
            if (style.PreserveWhitespace)
            {
                container.AddLineBreak();
            }
IL_6B:
            i++;
            continue;
IL_63:
            dfMarkupElement.PerformLayout(container, style);
            goto IL_6B;
        }
    }
Example #2
0
    // Token: 0x0600474B RID: 18251 RVA: 0x0010DB94 File Offset: 0x0010BD94
    protected override void _PerformLayoutImpl(global::dfMarkupBox container, global::dfMarkupStyle style)
    {
        if (base.Owner == null)
        {
            Debug.LogError("Tag has no parent: " + this);
            return;
        }
        style = this.applyStyleAttributes(style);
        global::dfMarkupAttribute dfMarkupAttribute = base.findAttribute(new string[]
        {
            "src"
        });

        if (dfMarkupAttribute == null)
        {
            return;
        }
        string value = dfMarkupAttribute.Value;
        global::dfMarkupBox dfMarkupBox = this.createImageBox(base.Owner.Atlas, value, style);

        if (dfMarkupBox == null)
        {
            return;
        }
        Vector2 size = Vector2.zero;
        global::dfMarkupAttribute dfMarkupAttribute2 = base.findAttribute(new string[]
        {
            "height"
        });

        if (dfMarkupAttribute2 != null)
        {
            size.y = (float)global::dfMarkupStyle.ParseSize(dfMarkupAttribute2.Value, (int)dfMarkupBox.Size.y);
        }
        global::dfMarkupAttribute dfMarkupAttribute3 = base.findAttribute(new string[]
        {
            "width"
        });

        if (dfMarkupAttribute3 != null)
        {
            size.x = (float)global::dfMarkupStyle.ParseSize(dfMarkupAttribute3.Value, (int)dfMarkupBox.Size.x);
        }
        if (size.sqrMagnitude <= 1.401298E-45f)
        {
            size = dfMarkupBox.Size;
        }
        else if (size.x <= 1.401298E-45f)
        {
            size.x = size.y * (dfMarkupBox.Size.x / dfMarkupBox.Size.y);
        }
        else if (size.y <= 1.401298E-45f)
        {
            size.y = size.x * (dfMarkupBox.Size.y / dfMarkupBox.Size.x);
        }
        dfMarkupBox.Size     = size;
        dfMarkupBox.Baseline = (int)size.y;
        container.AddChild(dfMarkupBox);
    }
Example #3
0
    // Token: 0x060046A6 RID: 18086 RVA: 0x00109F40 File Offset: 0x00108140
    public virtual Vector2 GetOffset()
    {
        Vector2 vector = Vector2.zero;

        for (global::dfMarkupBox dfMarkupBox = this; dfMarkupBox != null; dfMarkupBox = dfMarkupBox.Parent)
        {
            vector += dfMarkupBox.Position;
        }
        return(vector);
    }
 // Token: 0x0600471F RID: 18207 RVA: 0x0010CC94 File Offset: 0x0010AE94
 protected override void _PerformLayoutImpl(global::dfMarkupBox container, global::dfMarkupStyle style)
 {
     if (this.IsEndTag)
     {
         return;
     }
     for (int i = 0; i < base.ChildNodes.Count; i++)
     {
         base.ChildNodes[i].PerformLayout(container, style);
     }
 }
Example #5
0
    // Token: 0x060046E7 RID: 18151 RVA: 0x0010BC34 File Offset: 0x00109E34
    protected override void _PerformLayoutImpl(global::dfMarkupBox container, global::dfMarkupStyle style)
    {
        if (style.Font == null)
        {
            return;
        }
        string text = (!style.PreserveWhitespace && this.isWhitespace) ? " " : this.Text;
        global::dfMarkupBoxText dfMarkupBoxText = global::dfMarkupBoxText.Obtain(this, global::dfMarkupDisplayType.inline, style);

        dfMarkupBoxText.SetText(text);
        container.AddChild(dfMarkupBoxText);
    }
 // Token: 0x06004742 RID: 18242 RVA: 0x0010D9D4 File Offset: 0x0010BBD4
 protected override void _PerformLayoutImpl(global::dfMarkupBox container, global::dfMarkupStyle style)
 {
     style = base.applyTextStyleAttributes(style);
     if (style.FontStyle == null)
     {
         style.FontStyle = 2;
     }
     else if (style.FontStyle == 1)
     {
         style.FontStyle = 3;
     }
     base._PerformLayoutImpl(container, style);
 }
Example #7
0
 // Token: 0x060046AD RID: 18093 RVA: 0x0010A2A4 File Offset: 0x001084A4
 private global::dfMarkupBox GetContainingBlock()
 {
     for (global::dfMarkupBox dfMarkupBox = this; dfMarkupBox != null; dfMarkupBox = dfMarkupBox.Parent)
     {
         global::dfMarkupDisplayType display = dfMarkupBox.Display;
         bool flag = display == global::dfMarkupDisplayType.block || display == global::dfMarkupDisplayType.inlineBlock || display == global::dfMarkupDisplayType.listItem || display == global::dfMarkupDisplayType.table || display == global::dfMarkupDisplayType.tableRow || display == global::dfMarkupDisplayType.tableCell;
         if (flag)
         {
             return(dfMarkupBox);
         }
     }
     return(null);
 }
Example #8
0
    // Token: 0x06004735 RID: 18229 RVA: 0x0010D434 File Offset: 0x0010B634
    protected override void _PerformLayoutImpl(global::dfMarkupBox container, global::dfMarkupStyle style)
    {
        if (base.ChildNodes.Count == 0)
        {
            return;
        }
        float x = container.Size.x;
        global::dfMarkupBox dfMarkupBox = new global::dfMarkupBox(this, global::dfMarkupDisplayType.listItem, style);

        dfMarkupBox.Margins.top = 10;
        container.AddChild(dfMarkupBox);
        global::dfMarkupTagList dfMarkupTagList = base.Parent as global::dfMarkupTagList;

        if (dfMarkupTagList == null)
        {
            base._PerformLayoutImpl(container, style);
            return;
        }
        style.VerticalAlign = global::dfMarkupVerticalAlign.Baseline;
        string text = "•";

        if (dfMarkupTagList.TagName == "ol")
        {
            text = container.Children.Count + ".";
        }
        global::dfMarkupStyle style2 = style;

        style2.VerticalAlign = global::dfMarkupVerticalAlign.Baseline;
        style2.Align         = global::dfMarkupTextAlign.Right;
        global::dfMarkupBoxText dfMarkupBoxText = global::dfMarkupBoxText.Obtain(this, global::dfMarkupDisplayType.inlineBlock, style2);

        dfMarkupBoxText.SetText(text);
        dfMarkupBoxText.Width        = dfMarkupTagList.BulletWidth;
        dfMarkupBoxText.Margins.left = style.FontSize * 2;
        dfMarkupBox.AddChild(dfMarkupBoxText);
        global::dfMarkupBox dfMarkupBox2 = new global::dfMarkupBox(this, global::dfMarkupDisplayType.inlineBlock, style);
        int   fontSize = style.FontSize;
        float num      = x - dfMarkupBoxText.Size.x - (float)dfMarkupBoxText.Margins.left - (float)fontSize;

        dfMarkupBox2.Size         = new Vector2(num, (float)fontSize);
        dfMarkupBox2.Margins.left = (int)((float)style.FontSize * 0.5f);
        dfMarkupBox.AddChild(dfMarkupBox2);
        for (int i = 0; i < base.ChildNodes.Count; i++)
        {
            base.ChildNodes[i].PerformLayout(dfMarkupBox2, style);
        }
        dfMarkupBox2.FitToContents(false);
        dfMarkupBox2.Parent.FitToContents(false);
        dfMarkupBox.FitToContents(false);
    }
Example #9
0
    // Token: 0x060046A8 RID: 18088 RVA: 0x0010A018 File Offset: 0x00108218
    public virtual void AddChild(global::dfMarkupBox box)
    {
        global::dfMarkupDisplayType display = box.Display;
        bool flag = display == global::dfMarkupDisplayType.block || display == global::dfMarkupDisplayType.table || display == global::dfMarkupDisplayType.listItem || display == global::dfMarkupDisplayType.tableRow;

        if (flag)
        {
            this.addBlock(box);
        }
        else
        {
            this.addInline(box);
        }
    }
    // Token: 0x06004738 RID: 18232 RVA: 0x0010D5FC File Offset: 0x0010B7FC
    protected override void _PerformLayoutImpl(global::dfMarkupBox container, global::dfMarkupStyle style)
    {
        if (base.ChildNodes.Count == 0)
        {
            return;
        }
        style = base.applyTextStyleAttributes(style);
        int top = (container.Children.Count != 0) ? style.LineHeight : 0;
        global::dfMarkupBox dfMarkupBox;

        if (style.BackgroundColor.a > 0.005f)
        {
            global::dfMarkupBoxSprite dfMarkupBoxSprite = new global::dfMarkupBoxSprite(this, global::dfMarkupDisplayType.block, style);
            dfMarkupBoxSprite.Atlas       = base.Owner.Atlas;
            dfMarkupBoxSprite.Source      = base.Owner.BlankTextureSprite;
            dfMarkupBoxSprite.Style.Color = style.BackgroundColor;
            dfMarkupBox = dfMarkupBoxSprite;
        }
        else
        {
            dfMarkupBox = new global::dfMarkupBox(this, global::dfMarkupDisplayType.block, style);
        }
        dfMarkupBox.Margins = new global::dfMarkupBorders(0, 0, top, style.LineHeight);
        global::dfMarkupAttribute dfMarkupAttribute = base.findAttribute(new string[]
        {
            "margin"
        });

        if (dfMarkupAttribute != null)
        {
            dfMarkupBox.Margins = global::dfMarkupBorders.Parse(dfMarkupAttribute.Value);
        }
        global::dfMarkupAttribute dfMarkupAttribute2 = base.findAttribute(new string[]
        {
            "padding"
        });

        if (dfMarkupAttribute2 != null)
        {
            dfMarkupBox.Padding = global::dfMarkupBorders.Parse(dfMarkupAttribute2.Value);
        }
        container.AddChild(dfMarkupBox);
        base._PerformLayoutImpl(dfMarkupBox, style);
        if (dfMarkupBox.Children.Count > 0)
        {
            dfMarkupBox.Children[dfMarkupBox.Children.Count - 1].IsNewline = true;
        }
        dfMarkupBox.FitToContents(true);
    }
    // Token: 0x0600478C RID: 18316 RVA: 0x0010EAB0 File Offset: 0x0010CCB0
    private global::dfMarkupTag hitTestTag(global::dfMouseEventArgs args)
    {
        Vector2             point       = base.GetHitPosition(args) + this.scrollPosition;
        global::dfMarkupBox dfMarkupBox = this.viewportBox.HitTest(point);

        if (dfMarkupBox != null)
        {
            global::dfMarkupElement dfMarkupElement = dfMarkupBox.Element;
            while (dfMarkupElement != null && !(dfMarkupElement is global::dfMarkupTag))
            {
                dfMarkupElement = dfMarkupElement.Parent;
            }
            return(dfMarkupElement as global::dfMarkupTag);
        }
        return(null);
    }
Example #12
0
    // Token: 0x060046AE RID: 18094 RVA: 0x0010A304 File Offset: 0x00108504
    private void addInline(global::dfMarkupBox box)
    {
        global::dfMarkupBorders margins = box.Margins;
        bool flag = !this.Style.Preformatted && this.currentLine != null && (float)this.currentLinePos + box.Size.x > this.currentLine.Size.x;

        if (this.currentLine == null || flag)
        {
            this.endCurrentLine(false);
            int verticalPosition = this.getVerticalPosition(margins.top);
            global::dfMarkupBox containingBlock = this.GetContainingBlock();
            if (containingBlock == null)
            {
                Debug.LogError("Containing block not found");
                return;
            }
            global::dfDynamicFont dfDynamicFont = this.Style.Font ?? this.Style.Host.Font;
            float num  = (float)dfDynamicFont.FontSize / (float)dfDynamicFont.FontSize;
            float num2 = (float)dfDynamicFont.Baseline * num;
            this.currentLine = new global::dfMarkupBox(this.Element, global::dfMarkupDisplayType.block, this.Style)
            {
                Size     = new Vector2(containingBlock.Size.x, (float)this.Style.LineHeight),
                Position = new Vector2(0f, (float)verticalPosition),
                Parent   = this,
                Baseline = (int)num2
            };
            this.children.Add(this.currentLine);
        }
        if (this.currentLinePos == 0 && !box.Style.PreserveWhitespace && box is global::dfMarkupBoxText)
        {
            global::dfMarkupBoxText dfMarkupBoxText = box as global::dfMarkupBoxText;
            if (dfMarkupBoxText.IsWhitespace)
            {
                return;
            }
        }
        Vector2 position;

        position..ctor((float)(this.currentLinePos + margins.left), (float)margins.top);
        box.Position = position;
        box.Parent   = this.currentLine;
        this.currentLine.children.Add(box);
        this.currentLinePos = (int)(position.x + box.Size.x + (float)box.Margins.right);
        float num3 = Mathf.Max(this.currentLine.Size.x, position.x + box.Size.x);
        float num4 = Mathf.Max(this.currentLine.Size.y, position.y + box.Size.y);

        this.currentLine.Size = new Vector2(num3, num4);
    }
Example #13
0
    // Token: 0x060046AC RID: 18092 RVA: 0x0010A214 File Offset: 0x00108414
    public void FitToContents(bool recursive = false)
    {
        if (this.children.Count == 0)
        {
            this.Size = new Vector2(this.Size.x, 0f);
            return;
        }
        this.endCurrentLine(false);
        Vector2 vector = Vector2.zero;

        for (int i = 0; i < this.children.Count; i++)
        {
            global::dfMarkupBox dfMarkupBox = this.children[i];
            vector = Vector2.Max(vector, dfMarkupBox.Position + dfMarkupBox.Size);
        }
        this.Size = vector;
    }
    // Token: 0x06004745 RID: 18245 RVA: 0x0010DA3C File Offset: 0x0010BC3C
    protected override void _PerformLayoutImpl(global::dfMarkupBox container, global::dfMarkupStyle style)
    {
        style = base.applyTextStyleAttributes(style);
        style.PreserveWhitespace = true;
        style.Preformatted       = true;
        if (style.Align == global::dfMarkupTextAlign.Justify)
        {
            style.Align = global::dfMarkupTextAlign.Left;
        }
        global::dfMarkupBox dfMarkupBox;

        if (style.BackgroundColor.a > 0.1f)
        {
            global::dfMarkupBoxSprite dfMarkupBoxSprite = new global::dfMarkupBoxSprite(this, global::dfMarkupDisplayType.block, style);
            dfMarkupBoxSprite.LoadImage(base.Owner.Atlas, base.Owner.BlankTextureSprite);
            dfMarkupBoxSprite.Style.Color = style.BackgroundColor;
            dfMarkupBox = dfMarkupBoxSprite;
        }
        else
        {
            dfMarkupBox = new global::dfMarkupBox(this, global::dfMarkupDisplayType.block, style);
        }
        global::dfMarkupAttribute dfMarkupAttribute = base.findAttribute(new string[]
        {
            "margin"
        });

        if (dfMarkupAttribute != null)
        {
            dfMarkupBox.Margins = global::dfMarkupBorders.Parse(dfMarkupAttribute.Value);
        }
        global::dfMarkupAttribute dfMarkupAttribute2 = base.findAttribute(new string[]
        {
            "padding"
        });

        if (dfMarkupAttribute2 != null)
        {
            dfMarkupBox.Padding = global::dfMarkupBorders.Parse(dfMarkupAttribute2.Value);
        }
        container.AddChild(dfMarkupBox);
        base._PerformLayoutImpl(dfMarkupBox, style);
        dfMarkupBox.FitToContents(false);
    }
Example #15
0
    // Token: 0x060046A7 RID: 18087 RVA: 0x00109F78 File Offset: 0x00108178
    internal void AddLineBreak()
    {
        if (this.currentLine != null)
        {
            this.currentLine.IsNewline = true;
        }
        int verticalPosition = this.getVerticalPosition(0);

        this.endCurrentLine(false);
        global::dfMarkupBox containingBlock = this.GetContainingBlock();

        this.currentLine = new global::dfMarkupBox(this.Element, global::dfMarkupDisplayType.block, this.Style)
        {
            Size     = new Vector2(containingBlock.Size.x, (float)this.Style.FontSize),
            Position = new Vector2(0f, (float)verticalPosition),
            Parent   = this
        };
        this.children.Add(this.currentLine);
    }
    // Token: 0x06004750 RID: 18256 RVA: 0x0010DE58 File Offset: 0x0010C058
    protected override void _PerformLayoutImpl(global::dfMarkupBox container, global::dfMarkupStyle style)
    {
        global::dfMarkupAttribute dfMarkupAttribute = base.findAttribute(new string[]
        {
            "name",
            "face"
        });

        if (dfMarkupAttribute != null)
        {
            style.Font = (global::dfDynamicFont.FindByName(dfMarkupAttribute.Value) ?? style.Font);
        }
        global::dfMarkupAttribute dfMarkupAttribute2 = base.findAttribute(new string[]
        {
            "size",
            "font-size"
        });

        if (dfMarkupAttribute2 != null)
        {
            style.FontSize = global::dfMarkupStyle.ParseSize(dfMarkupAttribute2.Value, style.FontSize);
        }
        global::dfMarkupAttribute dfMarkupAttribute3 = base.findAttribute(new string[]
        {
            "color"
        });

        if (dfMarkupAttribute3 != null)
        {
            style.Color   = global::dfMarkupStyle.ParseColor(dfMarkupAttribute3.Value, Color.red);
            style.Color.a = style.Opacity;
        }
        global::dfMarkupAttribute dfMarkupAttribute4 = base.findAttribute(new string[]
        {
            "style"
        });

        if (dfMarkupAttribute4 != null)
        {
            style.FontStyle = global::dfMarkupStyle.ParseFontStyle(dfMarkupAttribute4.Value, style.FontStyle);
        }
        base._PerformLayoutImpl(container, style);
    }
Example #17
0
    // Token: 0x060046A4 RID: 18084 RVA: 0x00109E54 File Offset: 0x00108054
    internal global::dfMarkupBox HitTest(Vector2 point)
    {
        Vector2 offset = this.GetOffset();
        Vector2 vector = offset + this.Size;

        if (point.x < offset.x || point.x > vector.x || point.y < offset.y || point.y > vector.y)
        {
            return(null);
        }
        for (int i = 0; i < this.children.Count; i++)
        {
            global::dfMarkupBox dfMarkupBox = this.children[i].HitTest(point);
            if (dfMarkupBox != null)
            {
                return(dfMarkupBox);
            }
        }
        return(this);
    }
Example #18
0
    // Token: 0x060046B0 RID: 18096 RVA: 0x0010A628 File Offset: 0x00108828
    private void addBlock(global::dfMarkupBox box)
    {
        if (this.currentLine != null)
        {
            this.currentLine.IsNewline = true;
            this.endCurrentLine(true);
        }
        global::dfMarkupBox containingBlock = this.GetContainingBlock();

        if (box.Size.sqrMagnitude <= 1.401298E-45f)
        {
            box.Size = new Vector2(containingBlock.Size.x - (float)box.Margins.horizontal, (float)this.Style.FontSize);
        }
        int verticalPosition = this.getVerticalPosition(box.Margins.top);

        box.Position = new Vector2((float)box.Margins.left, (float)verticalPosition);
        this.Size    = new Vector2(this.Size.x, Mathf.Max(this.Size.y, box.Position.y + box.Size.y));
        box.Parent   = this;
        this.children.Add(box);
    }
    // Token: 0x06004731 RID: 18225 RVA: 0x0010D288 File Offset: 0x0010B488
    protected override void _PerformLayoutImpl(global::dfMarkupBox container, global::dfMarkupStyle style)
    {
        if (base.ChildNodes.Count == 0)
        {
            return;
        }
        style.Align = global::dfMarkupTextAlign.Left;
        global::dfMarkupBox dfMarkupBox = new global::dfMarkupBox(this, global::dfMarkupDisplayType.block, style);

        container.AddChild(dfMarkupBox);
        this.calculateBulletWidth(style);
        for (int i = 0; i < base.ChildNodes.Count; i++)
        {
            global::dfMarkupTag dfMarkupTag = base.ChildNodes[i] as global::dfMarkupTag;
            if (dfMarkupTag != null && !(dfMarkupTag.TagName != "li"))
            {
                dfMarkupTag.PerformLayout(dfMarkupBox, style);
            }
        }
        dfMarkupBox.FitToContents(false);
    }
Example #20
0
    // Token: 0x0600473E RID: 18238 RVA: 0x0010D7E0 File Offset: 0x0010B9E0
    protected override void _PerformLayoutImpl(global::dfMarkupBox container, global::dfMarkupStyle style)
    {
        global::dfMarkupBorders margins = default(global::dfMarkupBorders);
        global::dfMarkupStyle   style2  = this.applyDefaultStyles(style, ref margins);

        style2 = base.applyTextStyleAttributes(style2);
        global::dfMarkupAttribute dfMarkupAttribute = base.findAttribute(new string[]
        {
            "margin"
        });

        if (dfMarkupAttribute != null)
        {
            margins = global::dfMarkupBorders.Parse(dfMarkupAttribute.Value);
        }
        global::dfMarkupBox dfMarkupBox = new global::dfMarkupBox(this, global::dfMarkupDisplayType.block, style2);

        dfMarkupBox.Margins = margins;
        container.AddChild(dfMarkupBox);
        base._PerformLayoutImpl(dfMarkupBox, style2);
        dfMarkupBox.FitToContents(false);
    }
Example #21
0
    // Token: 0x060046AF RID: 18095 RVA: 0x0010A564 File Offset: 0x00108764
    private int getVerticalPosition(int topMargin)
    {
        if (this.children.Count == 0)
        {
            return(topMargin);
        }
        int num   = 0;
        int index = 0;

        for (int i = 0; i < this.children.Count; i++)
        {
            global::dfMarkupBox dfMarkupBox = this.children[i];
            float num2 = dfMarkupBox.Position.y + dfMarkupBox.Size.y + (float)dfMarkupBox.Margins.bottom;
            if (num2 > (float)num)
            {
                num   = (int)num2;
                index = i;
            }
        }
        global::dfMarkupBox dfMarkupBox2 = this.children[index];
        int num3 = Mathf.Max(dfMarkupBox2.Margins.bottom, topMargin);

        return((int)(dfMarkupBox2.Position.y + dfMarkupBox2.Size.y + (float)num3));
    }
    // Token: 0x06004794 RID: 18324 RVA: 0x0010EEE0 File Offset: 0x0010D0E0
    private void gatherRenderBuffers(global::dfMarkupBox box, global::dfList <global::dfRenderData> buffers)
    {
        global::dfIntersectionType viewportIntersection = this.getViewportIntersection(box);

        if (viewportIntersection == global::dfIntersectionType.None)
        {
            return;
        }
        global::dfRenderData dfRenderData = box.Render();

        if (dfRenderData != null)
        {
            if (dfRenderData.Material == null && this.atlas != null)
            {
                dfRenderData.Material = this.atlas.Material;
            }
            float   num     = base.PixelsToUnits();
            Vector2 vector  = -this.scrollPosition.Scale(1f, -1f).RoundToInt();
            Vector3 vector2 = vector + box.GetOffset().Scale(1f, -1f) + this.pivot.TransformToUpperLeft(base.Size);
            global::dfList <Vector3> vertices = dfRenderData.Vertices;
            Matrix4x4 localToWorldMatrix      = base.transform.localToWorldMatrix;
            for (int i = 0; i < dfRenderData.Vertices.Count; i++)
            {
                vertices[i] = localToWorldMatrix.MultiplyPoint((vector2 + vertices[i]) * num);
            }
            if (viewportIntersection == global::dfIntersectionType.Intersecting)
            {
                this.clipToViewport(dfRenderData);
            }
            buffers.Add(dfRenderData);
        }
        for (int j = 0; j < box.Children.Count; j++)
        {
            this.gatherRenderBuffers(box.Children[j], buffers);
        }
    }
    // Token: 0x06004795 RID: 18325 RVA: 0x0010F040 File Offset: 0x0010D240
    private global::dfIntersectionType getViewportIntersection(global::dfMarkupBox box)
    {
        if (box.Display == global::dfMarkupDisplayType.none)
        {
            return(global::dfIntersectionType.None);
        }
        Vector2 size    = base.Size;
        Vector2 vector  = box.GetOffset() - this.scrollPosition;
        Vector2 vector2 = vector + box.Size;

        if (vector2.x <= 0f || vector2.y <= 0f)
        {
            return(global::dfIntersectionType.None);
        }
        if (vector.x >= size.x || vector.y >= size.y)
        {
            return(global::dfIntersectionType.None);
        }
        if (vector.x < 0f || vector.y < 0f || vector2.x > size.x || vector2.y > size.y)
        {
            return(global::dfIntersectionType.Intersecting);
        }
        return(global::dfIntersectionType.Inside);
    }
Example #24
0
 // Token: 0x06004748 RID: 18248 RVA: 0x0010DB68 File Offset: 0x0010BD68
 protected override void _PerformLayoutImpl(global::dfMarkupBox container, global::dfMarkupStyle style)
 {
     container.AddLineBreak();
 }
 // Token: 0x060046DF RID: 18143
 protected abstract void _PerformLayoutImpl(global::dfMarkupBox container, global::dfMarkupStyle style);
Example #26
0
    // Token: 0x060046B2 RID: 18098 RVA: 0x0010A784 File Offset: 0x00108984
    private void doVerticalAlignment()
    {
        if (this.children.Count == 0)
        {
            return;
        }
        float num  = float.MinValue;
        float num2 = float.MaxValue;
        float num3 = float.MinValue;

        this.Baseline = (int)(this.Size.y * 0.95f);
        for (int i = 0; i < this.children.Count; i++)
        {
            global::dfMarkupBox dfMarkupBox = this.children[i];
            num3 = Mathf.Max(num3, dfMarkupBox.Position.y + (float)dfMarkupBox.Baseline);
        }
        for (int j = 0; j < this.children.Count; j++)
        {
            global::dfMarkupBox           dfMarkupBox2  = this.children[j];
            global::dfMarkupVerticalAlign verticalAlign = dfMarkupBox2.Style.VerticalAlign;
            Vector2 position = dfMarkupBox2.Position;
            if (verticalAlign == global::dfMarkupVerticalAlign.Baseline)
            {
                position.y = num3 - (float)dfMarkupBox2.Baseline;
            }
            dfMarkupBox2.Position = position;
        }
        for (int k = 0; k < this.children.Count; k++)
        {
            global::dfMarkupBox dfMarkupBox3 = this.children[k];
            Vector2             position2    = dfMarkupBox3.Position;
            Vector2             size         = dfMarkupBox3.Size;
            num2 = Mathf.Min(num2, position2.y);
            num  = Mathf.Max(num, position2.y + size.y);
        }
        for (int l = 0; l < this.children.Count; l++)
        {
            global::dfMarkupBox           dfMarkupBox4   = this.children[l];
            global::dfMarkupVerticalAlign verticalAlign2 = dfMarkupBox4.Style.VerticalAlign;
            Vector2 position3 = dfMarkupBox4.Position;
            Vector2 size2     = dfMarkupBox4.Size;
            if (verticalAlign2 == global::dfMarkupVerticalAlign.Top)
            {
                position3.y = num2;
            }
            else if (verticalAlign2 == global::dfMarkupVerticalAlign.Bottom)
            {
                position3.y = num - size2.y;
            }
            else if (verticalAlign2 == global::dfMarkupVerticalAlign.Middle)
            {
                position3.y = (this.Size.y - size2.y) * 0.5f;
            }
            dfMarkupBox4.Position = position3;
        }
        int num4 = int.MaxValue;

        for (int m = 0; m < this.children.Count; m++)
        {
            num4 = Mathf.Min(num4, (int)this.children[m].Position.y);
        }
        for (int n = 0; n < this.children.Count; n++)
        {
            Vector2 position4 = this.children[n].Position;
            position4.y -= (float)num4;
            this.children[n].Position = position4;
        }
    }
 // Token: 0x060046DD RID: 18141 RVA: 0x0010BA84 File Offset: 0x00109C84
 public void PerformLayout(global::dfMarkupBox container, global::dfMarkupStyle style)
 {
     this._PerformLayoutImpl(container, style);
 }
Example #28
0
    // Token: 0x060046B3 RID: 18099 RVA: 0x0010AA34 File Offset: 0x00108C34
    private void doHorizontalAlignment()
    {
        if (this.Style.Align == global::dfMarkupTextAlign.Left || this.children.Count == 0)
        {
            return;
        }
        int i;

        for (i = this.children.Count - 1; i > 0; i--)
        {
            global::dfMarkupBoxText dfMarkupBoxText = this.children[i] as global::dfMarkupBoxText;
            if (dfMarkupBoxText == null || !dfMarkupBoxText.IsWhitespace)
            {
                break;
            }
        }
        if (this.Style.Align == global::dfMarkupTextAlign.Center)
        {
            float num = 0f;
            for (int j = 0; j <= i; j++)
            {
                num += this.children[j].Size.x;
            }
            float num2 = (this.Size.x - (float)this.Padding.horizontal - num) * 0.5f;
            for (int k = 0; k <= i; k++)
            {
                Vector2 position = this.children[k].Position;
                position.x += num2;
                this.children[k].Position = position;
            }
        }
        else if (this.Style.Align == global::dfMarkupTextAlign.Right)
        {
            float num3 = this.Size.x - (float)this.Padding.horizontal;
            for (int l = i; l >= 0; l--)
            {
                Vector2 position2 = this.children[l].Position;
                position2.x = num3 - this.children[l].Size.x;
                this.children[l].Position = position2;
                num3 -= this.children[l].Size.x;
            }
        }
        else
        {
            if (this.Style.Align != global::dfMarkupTextAlign.Justify)
            {
                throw new NotImplementedException("text-align: " + this.Style.Align + " is not implemented");
            }
            if (this.children.Count <= 1)
            {
                return;
            }
            if (this.IsNewline || this.children[this.children.Count - 1].IsNewline)
            {
                return;
            }
            float num4 = 0f;
            for (int m = 0; m <= i; m++)
            {
                global::dfMarkupBox dfMarkupBox = this.children[m];
                num4 = Mathf.Max(num4, dfMarkupBox.Position.x + dfMarkupBox.Size.x);
            }
            float num5 = (this.Size.x - (float)this.Padding.horizontal - num4) / (float)this.children.Count;
            for (int n = 1; n <= i; n++)
            {
                this.children[n].Position += new Vector2((float)n * num5, 0f);
            }
            global::dfMarkupBox dfMarkupBox2 = this.children[i];
            Vector2             position3    = dfMarkupBox2.Position;
            position3.x           = this.Size.x - (float)this.Padding.horizontal - dfMarkupBox2.Size.x;
            dfMarkupBox2.Position = position3;
        }
    }