⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 csscomputedstyledeclaration.cpp

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        case CSSPropertyBackgroundImage:            if (style->backgroundImage())                return style->backgroundImage()->cssValue();            return CSSPrimitiveValue::createIdentifier(CSSValueNone);        case CSSPropertyWebkitBackgroundSize: {            RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();            list->append(CSSPrimitiveValue::create(style->backgroundSize().width()));            list->append(CSSPrimitiveValue::create(style->backgroundSize().height()));            return list.release();        }          case CSSPropertyBackgroundRepeat:            return CSSPrimitiveValue::create(style->backgroundRepeat());        case CSSPropertyWebkitBackgroundComposite:            return CSSPrimitiveValue::create(style->backgroundComposite());        case CSSPropertyBackgroundAttachment:            if (style->backgroundAttachment())                return CSSPrimitiveValue::createIdentifier(CSSValueScroll);            return CSSPrimitiveValue::createIdentifier(CSSValueFixed);        case CSSPropertyWebkitBackgroundClip:        case CSSPropertyWebkitBackgroundOrigin: {            EFillBox box = (propertyID == CSSPropertyWebkitBackgroundClip ? style->backgroundClip() : style->backgroundOrigin());            return CSSPrimitiveValue::create(box);        }        case CSSPropertyBackgroundPosition: {            RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();            list->append(CSSPrimitiveValue::create(style->backgroundXPosition()));            list->append(CSSPrimitiveValue::create(style->backgroundYPosition()));            return list.release();        }        case CSSPropertyBackgroundPositionX:            return CSSPrimitiveValue::create(style->backgroundXPosition());        case CSSPropertyBackgroundPositionY:            return CSSPrimitiveValue::create(style->backgroundYPosition());        case CSSPropertyBorderCollapse:            if (style->borderCollapse())                return CSSPrimitiveValue::createIdentifier(CSSValueCollapse);            return CSSPrimitiveValue::createIdentifier(CSSValueSeparate);        case CSSPropertyBorderSpacing: {            RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();            list->append(CSSPrimitiveValue::create(style->horizontalBorderSpacing(), CSSPrimitiveValue::CSS_PX));            list->append(CSSPrimitiveValue::create(style->verticalBorderSpacing(), CSSPrimitiveValue::CSS_PX));            return list.release();        }          case CSSPropertyWebkitBorderHorizontalSpacing:            return CSSPrimitiveValue::create(style->horizontalBorderSpacing(), CSSPrimitiveValue::CSS_PX);        case CSSPropertyWebkitBorderVerticalSpacing:            return CSSPrimitiveValue::create(style->verticalBorderSpacing(), CSSPrimitiveValue::CSS_PX);        case CSSPropertyBorderTopColor:            return currentColorOrValidColor(style.get(), style->borderTopColor());        case CSSPropertyBorderRightColor:            return currentColorOrValidColor(style.get(), style->borderRightColor());        case CSSPropertyBorderBottomColor:            return currentColorOrValidColor(style.get(), style->borderBottomColor());        case CSSPropertyBorderLeftColor:            return currentColorOrValidColor(style.get(), style->borderLeftColor());        case CSSPropertyBorderTopStyle:            return CSSPrimitiveValue::create(style->borderTopStyle());        case CSSPropertyBorderRightStyle:            return CSSPrimitiveValue::create(style->borderRightStyle());        case CSSPropertyBorderBottomStyle:            return CSSPrimitiveValue::create(style->borderBottomStyle());        case CSSPropertyBorderLeftStyle:            return CSSPrimitiveValue::create(style->borderLeftStyle());        case CSSPropertyBorderTopWidth:            return CSSPrimitiveValue::create(style->borderTopWidth(), CSSPrimitiveValue::CSS_PX);        case CSSPropertyBorderRightWidth:            return CSSPrimitiveValue::create(style->borderRightWidth(), CSSPrimitiveValue::CSS_PX);        case CSSPropertyBorderBottomWidth:            return CSSPrimitiveValue::create(style->borderBottomWidth(), CSSPrimitiveValue::CSS_PX);        case CSSPropertyBorderLeftWidth:            return CSSPrimitiveValue::create(style->borderLeftWidth(), CSSPrimitiveValue::CSS_PX);        case CSSPropertyBottom:            return getPositionOffsetValue(style.get(), CSSPropertyBottom);        case CSSPropertyWebkitBoxAlign:            return CSSPrimitiveValue::create(style->boxAlign());        case CSSPropertyWebkitBoxDirection:            return CSSPrimitiveValue::create(style->boxDirection());        case CSSPropertyWebkitBoxFlex:            return CSSPrimitiveValue::create(style->boxFlex(), CSSPrimitiveValue::CSS_NUMBER);        case CSSPropertyWebkitBoxFlexGroup:            return CSSPrimitiveValue::create(style->boxFlexGroup(), CSSPrimitiveValue::CSS_NUMBER);        case CSSPropertyWebkitBoxLines:            return CSSPrimitiveValue::create(style->boxLines());        case CSSPropertyWebkitBoxOrdinalGroup:            return CSSPrimitiveValue::create(style->boxOrdinalGroup(), CSSPrimitiveValue::CSS_NUMBER);        case CSSPropertyWebkitBoxOrient:            return CSSPrimitiveValue::create(style->boxOrient());        case CSSPropertyWebkitBoxPack: {            EBoxAlignment boxPack = style->boxPack();            ASSERT(boxPack != BSTRETCH);            ASSERT(boxPack != BBASELINE);            if (boxPack == BJUSTIFY || boxPack== BBASELINE)                return 0;            return CSSPrimitiveValue::create(boxPack);        }        case CSSPropertyWebkitBoxReflect:            return valueForReflection(style->boxReflect());        case CSSPropertyWebkitBoxShadow:            return valueForShadow(style->boxShadow());        case CSSPropertyCaptionSide:            return CSSPrimitiveValue::create(style->captionSide());        case CSSPropertyClear:            return CSSPrimitiveValue::create(style->clear());        case CSSPropertyColor:            return CSSPrimitiveValue::createColor(style->color().rgb());        case CSSPropertyWebkitColumnCount:            if (style->hasAutoColumnCount())                return CSSPrimitiveValue::createIdentifier(CSSValueAuto);            return CSSPrimitiveValue::create(style->columnCount(), CSSPrimitiveValue::CSS_NUMBER);        case CSSPropertyWebkitColumnGap:            if (style->hasNormalColumnGap())                return CSSPrimitiveValue::createIdentifier(CSSValueNormal);            return CSSPrimitiveValue::create(style->columnGap(), CSSPrimitiveValue::CSS_NUMBER);        case CSSPropertyWebkitColumnRuleColor:            return currentColorOrValidColor(style.get(), style->columnRuleColor());        case CSSPropertyWebkitColumnRuleStyle:            return CSSPrimitiveValue::create(style->columnRuleStyle());        case CSSPropertyWebkitColumnRuleWidth:            return CSSPrimitiveValue::create(style->columnRuleWidth(), CSSPrimitiveValue::CSS_PX);        case CSSPropertyWebkitColumnBreakAfter:            return CSSPrimitiveValue::create(style->columnBreakAfter());        case CSSPropertyWebkitColumnBreakBefore:            return CSSPrimitiveValue::create(style->columnBreakBefore());        case CSSPropertyWebkitColumnBreakInside:            return CSSPrimitiveValue::create(style->columnBreakInside());        case CSSPropertyWebkitColumnWidth:            if (style->hasAutoColumnWidth())                return CSSPrimitiveValue::createIdentifier(CSSValueAuto);            return CSSPrimitiveValue::create(style->columnWidth(), CSSPrimitiveValue::CSS_NUMBER);        case CSSPropertyCursor: {            RefPtr<CSSValueList> list;            CursorList* cursors = style->cursors();            if (cursors && cursors->size() > 0) {                list = CSSValueList::createCommaSeparated();                for (unsigned i = 0; i < cursors->size(); ++i)                    list->append(CSSPrimitiveValue::create((*cursors)[i].cursorImage->url(), CSSPrimitiveValue::CSS_URI));            }            RefPtr<CSSValue> value = CSSPrimitiveValue::create(style->cursor());            if (list) {                list->append(value);                return list.release();            }            return value.release();        }        case CSSPropertyDirection:            return CSSPrimitiveValue::create(style->direction());        case CSSPropertyDisplay:            return CSSPrimitiveValue::create(style->display());        case CSSPropertyEmptyCells:            return CSSPrimitiveValue::create(style->emptyCells());        case CSSPropertyFloat:            return CSSPrimitiveValue::create(style->floating());        case CSSPropertyFontFamily:            // FIXME: This only returns the first family.            return CSSPrimitiveValue::create(style->fontDescription().family().family().string(), CSSPrimitiveValue::CSS_STRING);        case CSSPropertyFontSize:            return CSSPrimitiveValue::create(style->fontDescription().computedPixelSize(), CSSPrimitiveValue::CSS_PX);        case CSSPropertyWebkitBinding:            break;        case CSSPropertyFontStyle:            if (style->fontDescription().italic())                return CSSPrimitiveValue::createIdentifier(CSSValueItalic);            return CSSPrimitiveValue::createIdentifier(CSSValueNormal);        case CSSPropertyFontVariant:            if (style->fontDescription().smallCaps())                return CSSPrimitiveValue::createIdentifier(CSSValueSmallCaps);            return CSSPrimitiveValue::createIdentifier(CSSValueNormal);        case CSSPropertyFontWeight:            switch (style->fontDescription().weight()) {                case FontWeight100:                    return CSSPrimitiveValue::createIdentifier(CSSValue100);                case FontWeight200:                    return CSSPrimitiveValue::createIdentifier(CSSValue200);                case FontWeight300:                    return CSSPrimitiveValue::createIdentifier(CSSValue300);                case FontWeightNormal:                    return CSSPrimitiveValue::createIdentifier(CSSValueNormal);                case FontWeight500:                    return CSSPrimitiveValue::createIdentifier(CSSValue500);                case FontWeight600:                    return CSSPrimitiveValue::createIdentifier(CSSValue600);                case FontWeightBold:                    return CSSPrimitiveValue::createIdentifier(CSSValueBold);                case FontWeight800:                    return CSSPrimitiveValue::createIdentifier(CSSValue800);                case FontWeight900:                    return CSSPrimitiveValue::createIdentifier(CSSValue900);            }            ASSERT_NOT_REACHED();            return CSSPrimitiveValue::createIdentifier(CSSValueNormal);        case CSSPropertyHeight:            if (renderer)                return CSSPrimitiveValue::create(sizingBox(renderer).height(), CSSPrimitiveValue::CSS_PX);            return CSSPrimitiveValue::create(style->height());        case CSSPropertyWebkitHighlight:            if (style->highlight() == nullAtom)                return CSSPrimitiveValue::createIdentifier(CSSValueNone);            return CSSPrimitiveValue::create(style->highlight(), CSSPrimitiveValue::CSS_STRING);        case CSSPropertyWebkitBorderFit:            if (style->borderFit() == BorderFitBorder)                return CSSPrimitiveValue::createIdentifier(CSSValueBorder);            return CSSPrimitiveValue::createIdentifier(CSSValueLines);        case CSSPropertyLeft:            return getPositionOffsetValue(style.get(), CSSPropertyLeft);        case CSSPropertyLetterSpacing:            if (!style->letterSpacing())                return CSSPrimitiveValue::createIdentifier(CSSValueNormal);            return CSSPrimitiveValue::create(style->letterSpacing(), CSSPrimitiveValue::CSS_PX);        case CSSPropertyWebkitLineClamp:            if (style->lineClamp() == -1)                return CSSPrimitiveValue::createIdentifier(CSSValueNone);            return CSSPrimitiveValue::create(style->lineClamp(), CSSPrimitiveValue::CSS_PERCENTAGE);        case CSSPropertyLineHeight: {            Length length = style->lineHeight();            if (length.isNegative())                return CSSPrimitiveValue::createIdentifier(CSSValueNormal);            if (length.isPercent())                // This is imperfect, because it doesn't include the zoom factor and the real computation                // for how high to be in pixels does include things like minimum font size and the zoom factor.                // On the other hand, since font-size doesn't include the zoom factor, we really can't do                // that here either.                return CSSPrimitiveValue::create(static_cast<int>(length.percent() * style->fontDescription().specifiedSize()) / 100, CSSPrimitiveValue::CSS_PX);            return CSSPrimitiveValue::create(length.value(), CSSPrimitiveValue::CSS_PX);        }        case CSSPropertyListStyleImage:            if (style->listStyleImage())                return style->listStyleImage()->cssValue();            return CSSPrimitiveValue::createIdentifier(CSSValueNone);        case CSSPropertyListStylePosition:            return CSSPrimitiveValue::create(style->listStylePosition());        case CSSPropertyListStyleType:            return CSSPrimitiveValue::create(style->listStyleType());        case CSSPropertyMarginTop:            if (renderer && renderer->isBox())                // FIXME: Supposed to return the percentage if percentage was specified.                return CSSPrimitiveValue::create(toRenderBox(renderer)->marginTop(), CSSPrimitiveValue::CSS_PX);            return CSSPrimitiveValue::create(style->marginTop());        case CSSPropertyMarginRight:            if (renderer && renderer->isBox())                // FIXME: Supposed to return the percentage if percentage was specified.                return CSSPrimitiveValue::create(toRenderBox(renderer)->marginRight(), CSSPrimitiveValue::CSS_PX);            return CSSPrimitiveValue::create(style->marginRight());        case CSSPropertyMarginBottom:            if (renderer && renderer->isBox())                // FIXME: Supposed to return the percentage if percentage was specified.                return CSSPrimitiveValue::create(toRenderBox(renderer)->marginBottom(), CSSPrimitiveValue::CSS_PX);            return CSSPrimitiveValue::create(style->marginBottom());        case CSSPropertyMarginLeft:            if (renderer && renderer->isBox())                // FIXME: Supposed to return the percentage if percentage was specified.                return CSSPrimitiveValue::create(toRenderBox(renderer)->marginLeft(), CSSPrimitiveValue::CSS_PX);            return CSSPrimitiveValue::create(style->marginLeft());        case CSSPropertyWebkitMarqueeDirection:            return CSSPrimitiveValue::create(style->marqueeDirection());        case CSSPropertyWebkitMarqueeIncrement:            return CSSPrimitiveValue::create(style->marqueeIncrement());        case CSSPropertyWebkitMarqueeRepetition:            if (style->marqueeLoopCount() < 0)                return CSSPrimitiveValue::createIdentifier(CSSValueInfinite);            return CSSPrimitiveValue::create(style->marqueeLoopCount(), CSSPrimitiveValue::CSS_NUMBER);        case CSSPropertyWebkitMarqueeStyle:            return CSSPrimitiveValue::create(style->marqueeBehavior());        case CSSPropertyWebkitMaskImage:            if (style->maskImage())                return style->maskImage()->cssValue();            return CSSPrimitiveValue::createIdentifier(CSSValueNone);        case CSSPropertyWebkitMaskSize: {            RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();            list->append(CSSPrimitiveValue::create(style->maskSize().width()));            list->append(CSSPrimitiveValue::create(style->maskSize().height()));            return list.release();        }          case CSSPropertyWebkitMaskRepeat:            return CSSPrimitiveValue::create(style->maskRepeat());        case CSSPropertyWebkitMaskAttachment:            if (style->maskAttachment())                return CSSPrimitiveValue::createIdentifier(CSSValueScroll);            return CSSPrimitiveValue::createIdentifier(CSSValueFixed);        case CSSPropertyWebkitMaskComposite:            return CSSPrimitiveValue::create(style->maskComposite());        case CSSPropertyWebkitMaskClip:        case CSSPropertyWebkitMaskOrigin: {            EFillBox box = (propertyID == CSSPropertyWebkitMaskClip ? style->maskClip() : style->maskOrigin());

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -