FrameDispInfo.java 1.34 KB
/*
 * Decompiled with CFR 0_118.
 */
package com.adobe.xfa.text;

import com.adobe.xfa.text.FrameHelper;
import com.adobe.xfa.text.TextFrame;
import com.adobe.xfa.text.TextSparseStream;
import com.adobe.xfa.ut.CoordPair;
import com.adobe.xfa.ut.Rect;
import com.adobe.xfa.ut.UnitSpan;

class FrameDispInfo
extends FrameHelper {
    private Rect moExtent;
    private boolean mbExtended;
    private boolean mbStarted;

    public FrameDispInfo(TextSparseStream poStream, boolean bExtended, int eProcess) {
        super(poStream, eProcess);
        this.mbExtended = bExtended;
    }

    public FrameDispInfo(TextSparseStream poStream, boolean bExtended) {
        this(poStream, bExtended, 0);
    }

    public Rect getExtent() {
        return this.moExtent;
    }

    @Override
    protected boolean processOneFrame(TextFrame poFrame) {
        if (poFrame != null) {
            if (!this.mbStarted) {
                this.mbStarted = true;
                this.moExtent = poFrame.runtimeExtent(this.mbExtended);
            } else {
                Rect oFrameExtent = poFrame.runtimeExtent(this.mbExtended);
                oFrameExtent = oFrameExtent.add(new CoordPair(UnitSpan.ZERO, this.getOffset()));
                this.moExtent = this.moExtent == null ? oFrameExtent : this.moExtent.union(oFrameExtent);
            }
        }
        return true;
    }
}