Beispiel #1
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);
    }
Beispiel #2
0
    // Token: 0x0600473F RID: 18239 RVA: 0x0010D854 File Offset: 0x0010BA54
    private global::dfMarkupStyle applyDefaultStyles(global::dfMarkupStyle style, ref global::dfMarkupBorders margins)
    {
        float  num     = 1f;
        float  num2    = 1f;
        string tagName = base.TagName;

        switch (tagName)
        {
        case "h1":
            num2 = 2f;
            num  = 0.65f;
            break;

        case "h2":
            num2 = 1.5f;
            num  = 0.75f;
            break;

        case "h3":
            num2 = 1.35f;
            num  = 0.85f;
            break;

        case "h4":
            num2 = 1.15f;
            num  = 0f;
            break;

        case "h5":
            num2 = 0.85f;
            num  = 1.5f;
            break;

        case "h6":
            num2 = 0.75f;
            num  = 1.75f;
            break;
        }
        style.FontSize  = (int)((float)style.FontSize * num2);
        style.FontStyle = 1;
        style.Align     = global::dfMarkupTextAlign.Left;
        num            *= (float)style.FontSize;
        int top = margins.bottom = (int)num;

        margins.top = top;
        return(style);
    }
    // Token: 0x06004703 RID: 18179 RVA: 0x0010C474 File Offset: 0x0010A674
    public static global::dfMarkupBorders Parse(string value)
    {
        global::dfMarkupBorders result = default(global::dfMarkupBorders);

        value = Regex.Replace(value, "\\s+", " ");
        string[] array = value.Split(new char[]
        {
            ' '
        });
        if (array.Length == 1)
        {
            int num = global::dfMarkupStyle.ParseSize(value, 0);
            result.left = (result.right = num);
            result.top  = (result.bottom = num);
        }
        else if (array.Length == 2)
        {
            int num2 = global::dfMarkupStyle.ParseSize(array[0], 0);
            result.top = (result.bottom = num2);
            int num3 = global::dfMarkupStyle.ParseSize(array[1], 0);
            result.left = (result.right = num3);
        }
        else if (array.Length == 3)
        {
            int num4 = global::dfMarkupStyle.ParseSize(array[0], 0);
            result.top = num4;
            int num5 = global::dfMarkupStyle.ParseSize(array[1], 0);
            result.left = (result.right = num5);
            int num6 = global::dfMarkupStyle.ParseSize(array[2], 0);
            result.bottom = num6;
        }
        else if (array.Length == 4)
        {
            int num7 = global::dfMarkupStyle.ParseSize(array[0], 0);
            result.top = num7;
            int num8 = global::dfMarkupStyle.ParseSize(array[1], 0);
            result.right = num8;
            int num9 = global::dfMarkupStyle.ParseSize(array[2], 0);
            result.bottom = num9;
            int num10 = global::dfMarkupStyle.ParseSize(array[3], 0);
            result.left = num10;
        }
        return(result);
    }
Beispiel #4
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);
    }