本文整理汇总了C++中ShapeValue类的典型用法代码示例。如果您正苦于以下问题:C++ ShapeValue类的具体用法?C++ ShapeValue怎么用?C++ ShapeValue使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ShapeValue类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: referenceBox
static inline CSSBoxType referenceBox(const ShapeValue& shapeValue)
{
if (shapeValue.cssBox() == BoxMissing) {
if (shapeValue.type() == ShapeValue::Image)
return ContentBox;
return MarginBox;
}
return shapeValue.cssBox();
}
示例2: isEnabledFor
bool ShapeInsideInfo::isEnabledFor(const RenderBlock* renderer)
{
ShapeValue* shapeValue = renderer->style()->resolvedShapeInside();
if (!shapeValue || shapeValue->type() != ShapeValue::Shape)
return false;
BasicShape* shape = shapeValue->shape();
return shape && shape->type() != BasicShape::BasicShapeInsetRectangleType;
}
示例3: ASSERT
const Shape* ShapeInfo<RenderType, shapeGetter, intervalGetter>::computedShape() const
{
if (Shape* shape = m_shape.get())
return shape;
ShapeValue* shapeValue = (m_renderer->style()->*shapeGetter)();
BasicShape* shape = (shapeValue && shapeValue->type() == ShapeValue::Shape) ? shapeValue->shape() : 0;
ASSERT(shape);
m_shape = Shape::createShape(shape, LayoutSize(m_shapeLogicalWidth, m_shapeLogicalHeight), m_renderer->style()->writingMode(), m_renderer->style()->shapeMargin(), m_renderer->style()->shapePadding());
ASSERT(m_shape);
return m_shape.get();
}
示例4: switch
bool ShapeOutsideInfo::isEnabledFor(const RenderBox& box)
{
ShapeValue* shapeValue = box.style().shapeOutside();
if (!box.isFloating() || !shapeValue)
return false;
switch (shapeValue->type()) {
case ShapeValue::Shape: return shapeValue->shape();
case ShapeValue::Image: return shapeValue->isImageValid() && checkShapeImageOrigin(box.document(), *(shapeValue->image()));
case ShapeValue::Box: return true;
}
ASSERT_NOT_REACHED();
return false;
}
示例5: switch
bool ShapeOutsideInfo::isEnabledFor(const RenderBox* box)
{
ShapeValue* shapeValue = box->style().shapeOutside();
if (!box->isFloating() || !shapeValue)
return false;
switch (shapeValue->type()) {
case ShapeValue::Shape:
return shapeValue->shape();
case ShapeValue::Image:
return shapeValue->isImageValid() && checkShapeImageOrigin(box->document(), *(shapeValue->image()->cachedImage()));
default:
return false;
}
}
示例6: switch
bool ShapeInsideInfo::isEnabledFor(const RenderBlock* renderer)
{
ShapeValue* shapeValue = renderer->style()->resolvedShapeInside();
if (!shapeValue)
return false;
switch (shapeValue->type()) {
case ShapeValue::Shape:
return shapeValue->shape() && shapeValue->shape()->type() != BasicShape::BasicShapeInsetRectangleType && shapeValue->shape()->type() != BasicShape::BasicShapeInsetType;
case ShapeValue::Image:
return shapeValue->isImageValid() && checkShapeImageOrigin(renderer->document(), *(shapeValue->image()->cachedImage()));
case ShapeValue::Box:
return true;
case ShapeValue::Outside:
return false;
}
return false;
}
示例7: getShapeImageAndRect
static void getShapeImageAndRect(const ShapeValue& shapeValue, const RenderBox& renderBox, const LayoutSize& referenceBoxSize, Image*& image, LayoutRect& rect)
{
ASSERT(shapeValue.isImageValid());
StyleImage* styleImage = shapeValue.image();
const LayoutSize& imageSize = renderBox.calculateImageIntrinsicDimensions(styleImage, roundedIntSize(referenceBoxSize), RenderImage::ScaleByEffectiveZoom);
styleImage->setContainerSizeForRenderer(&renderBox, imageSize, renderBox.style().effectiveZoom());
image = nullptr;
if (styleImage->isCachedImage() || styleImage->isCachedImageSet())
image = styleImage->cachedImage()->imageForRenderer(&renderBox);
else if (styleImage->isGeneratedImage())
image = styleImage->image(const_cast<RenderBox*>(&renderBox), imageSize).get();
if (renderBox.isRenderImage())
rect = toRenderImage(&renderBox)->replacedContentRect(renderBox.intrinsicSize());
else
rect = LayoutRect(LayoutPoint(), imageSize);
}
示例8: referenceBox
CSSBoxType referenceBox(const ShapeValue& shapeValue)
{
if (shapeValue.cssBox() == BoxMissing)
return MarginBox;
return shapeValue.cssBox();
}
示例9:
size_t ValueTraits<ShapeValue>::Cardinality(const ShapeValue& path) {
return SkTo<size_t>(path.countVerbs());
}