LayoutIntegrationLine.h [plain text]
#pragma once
#if ENABLE(LAYOUT_FORMATTING_CONTEXT)
#include "FloatRect.h"
namespace WebCore {
namespace LayoutIntegration {
class Line {
WTF_MAKE_FAST_ALLOCATED;
public:
Line(size_t firstRunIndex, size_t runCount, const FloatRect& lineBoxRect, float enclosingContentTop, float enclosingContentBottom, const FloatRect& scrollableOverflow, const FloatRect& inkOverflow, float baseline, float contentLeftOffset, float contentWidth)
: m_firstRunIndex(firstRunIndex)
, m_runCount(runCount)
, m_lineBoxRect(lineBoxRect)
, m_enclosingContentTop(enclosingContentTop)
, m_enclosingContentBottom(enclosingContentBottom)
, m_scrollableOverflow(scrollableOverflow)
, m_inkOverflow(inkOverflow)
, m_baseline(baseline)
, m_contentLeftOffset(contentLeftOffset)
, m_contentWidth(contentWidth)
{
}
size_t firstRunIndex() const { return m_firstRunIndex; }
size_t runCount() const { return m_runCount; }
float lineBoxTop() const { return m_lineBoxRect.y(); }
float lineBoxBottom() const { return m_lineBoxRect.maxY(); }
float lineBoxLeft() const { return m_lineBoxRect.x(); }
float lineBoxRight() const { return m_lineBoxRect.maxX(); }
float enclosingContentTop() const { return m_enclosingContentTop; }
float enclosingContentBottom() const { return m_enclosingContentBottom; }
const FloatRect& scrollableOverflow() const { return m_scrollableOverflow; }
const FloatRect& inkOverflow() const { return m_inkOverflow; }
float baseline() const { return m_baseline; }
float contentLeftOffset() const { return m_contentLeftOffset; }
float contentWidth() const { return m_contentWidth; }
private:
size_t m_firstRunIndex { 0 };
size_t m_runCount { 0 };
FloatRect m_lineBoxRect;
float m_enclosingContentTop { 0 };
float m_enclosingContentBottom { 0 };
FloatRect m_scrollableOverflow;
FloatRect m_inkOverflow;
float m_baseline { 0 };
float m_contentLeftOffset { 0 };
float m_contentWidth { 0 };
};
}
}
#endif