static PassRefPtr<CSSPrimitiveValue> basicShapeRadiusToCSSValue(CSSValuePool& pool, const RenderStyle& style, const BasicShapeRadius& radius) { switch (radius.type()) { case BasicShapeRadius::Value: return pool.createValue(radius.value(), style); case BasicShapeRadius::ClosestSide: return pool.createIdentifierValue(CSSValueClosestSide); case BasicShapeRadius::FarthestSide: return pool.createIdentifierValue(CSSValueFarthestSide); } ASSERT_NOT_REACHED(); return 0; }
static PassRefPtr<CSSPrimitiveValue> valueForCenterCoordinate(CSSValuePool& pool, const RenderStyle* style, const BasicShapeCenterCoordinate& center, EBoxOrient orientation) { if (center.direction() == BasicShapeCenterCoordinate::TopLeft) return pool.createValue(center.length(), style); CSSValueID keyword = orientation == HORIZONTAL ? CSSValueRight : CSSValueBottom; return pool.createValue(Pair::create(pool.createIdentifierValue(keyword), pool.createValue(center.length(), style))); }
PassRefPtr<StylePropertySet> HTMLTableElement::createSharedCellStyle() { RefPtr<StylePropertySet> style = StylePropertySet::create(); CSSValuePool* cssValuePool = document()->cssValuePool().get(); switch (cellBorders()) { case SolidBordersColsOnly: style->setProperty(CSSPropertyBorderLeftWidth, CSSValueThin); style->setProperty(CSSPropertyBorderRightWidth, CSSValueThin); style->setProperty(CSSPropertyBorderLeftStyle, CSSValueSolid); style->setProperty(CSSPropertyBorderRightStyle, CSSValueSolid); style->setProperty(CSSPropertyBorderColor, cssValuePool->createInheritedValue()); break; case SolidBordersRowsOnly: style->setProperty(CSSPropertyBorderTopWidth, CSSValueThin); style->setProperty(CSSPropertyBorderBottomWidth, CSSValueThin); style->setProperty(CSSPropertyBorderTopStyle, CSSValueSolid); style->setProperty(CSSPropertyBorderBottomStyle, CSSValueSolid); style->setProperty(CSSPropertyBorderColor, cssValuePool->createInheritedValue()); break; case SolidBorders: style->setProperty(CSSPropertyBorderWidth, cssValuePool->createValue(1, CSSPrimitiveValue::CSS_PX)); style->setProperty(CSSPropertyBorderStyle, cssValuePool->createIdentifierValue(CSSValueSolid)); style->setProperty(CSSPropertyBorderColor, cssValuePool->createInheritedValue()); break; case InsetBorders: style->setProperty(CSSPropertyBorderWidth, cssValuePool->createValue(1, CSSPrimitiveValue::CSS_PX)); style->setProperty(CSSPropertyBorderStyle, cssValuePool->createIdentifierValue(CSSValueInset)); style->setProperty(CSSPropertyBorderColor, cssValuePool->createInheritedValue()); break; case NoBorders: style->setProperty(CSSPropertyBorderWidth, cssValuePool->createValue(0, CSSPrimitiveValue::CSS_PX)); break; } if (m_padding) style->setProperty(CSSPropertyPadding, cssValuePool->createValue(m_padding, CSSPrimitiveValue::CSS_PX)); return style.release(); }
static PassRefPtr<CSSPrimitiveValue> valueForCenterCoordinate(CSSValuePool& pool, const RenderStyle& style, const BasicShapeCenterCoordinate& center) { CSSValueID keyword = CSSValueInvalid; switch (center.keyword()) { case BasicShapeCenterCoordinate::None: return pool.createValue(center.length(), style); case BasicShapeCenterCoordinate::Top: keyword = CSSValueTop; break; case BasicShapeCenterCoordinate::Right: keyword = CSSValueRight; break; case BasicShapeCenterCoordinate::Bottom: keyword = CSSValueBottom; break; case BasicShapeCenterCoordinate::Left: keyword = CSSValueLeft; break; } return pool.createValue(Pair::create(pool.createIdentifierValue(keyword), pool.createValue(center.length(), style), Pair::DropIdenticalValues)); }