CSSContentDistributionValue.cpp [plain text]
#include "config.h"
#include "CSSContentDistributionValue.h"
#include "CSSValueList.h"
namespace WebCore {
CSSContentDistributionValue::CSSContentDistributionValue(CSSValueID distribution, CSSValueID position, CSSValueID overflow)
: CSSValue(CSSContentDistributionClass)
, m_distribution(distribution)
, m_position(position)
, m_overflow(overflow)
{
}
CSSContentDistributionValue::~CSSContentDistributionValue() = default;
String CSSContentDistributionValue::customCSSText() const
{
auto& cssValuePool = CSSValuePool::singleton();
auto list = CSSValueList::createSpaceSeparated();
if (m_distribution != CSSValueInvalid)
list->append(distribution());
if (m_position != CSSValueInvalid) {
if (m_position == CSSValueFirstBaseline || m_position == CSSValueLastBaseline) {
CSSValueID preference = m_position == CSSValueFirstBaseline ? CSSValueFirst : CSSValueLast;
list->append(cssValuePool.createIdentifierValue(preference));
list->append(cssValuePool.createIdentifierValue(CSSValueBaseline));
} else {
if (m_overflow != CSSValueInvalid)
list->append(overflow());
list->append(position());
}
}
return list->customCSSText();
}
bool CSSContentDistributionValue::equals(const CSSContentDistributionValue& other) const
{
return m_distribution == other.m_distribution && m_position == other.m_position && m_overflow == other.m_overflow;
}
}