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

📄 csscomputedstyledeclaration.cpp

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 CPP
📖 第 1 页 / 共 5 页
字号:
            return CSSPrimitiveValue::create(box);        }        case CSSPropertyWebkitMaskPosition: {            RefPtr<CSSValueList> list = CSSValueList::createSpaceSeparated();            list->append(CSSPrimitiveValue::create(style->maskXPosition()));            list->append(CSSPrimitiveValue::create(style->maskYPosition()));            return list.release();        }        case CSSPropertyWebkitMaskPositionX:            return CSSPrimitiveValue::create(style->maskXPosition());        case CSSPropertyWebkitMaskPositionY:            return CSSPrimitiveValue::create(style->maskYPosition());        case CSSPropertyWebkitUserModify:            return CSSPrimitiveValue::create(style->userModify());        case CSSPropertyMaxHeight: {            const Length& maxHeight = style->maxHeight();            if (maxHeight.isFixed() && maxHeight.value() == undefinedLength)                return CSSPrimitiveValue::createIdentifier(CSSValueNone);            return CSSPrimitiveValue::create(maxHeight);        }        case CSSPropertyMaxWidth: {            const Length& maxWidth = style->maxWidth();            if (maxWidth.isFixed() && maxWidth.value() == undefinedLength)                return CSSPrimitiveValue::createIdentifier(CSSValueNone);            return CSSPrimitiveValue::create(maxWidth);        }        case CSSPropertyMinHeight:            return CSSPrimitiveValue::create(style->minHeight());        case CSSPropertyMinWidth:            return CSSPrimitiveValue::create(style->minWidth());        case CSSPropertyOpacity:            return CSSPrimitiveValue::create(style->opacity(), CSSPrimitiveValue::CSS_NUMBER);        case CSSPropertyOrphans:            return CSSPrimitiveValue::create(style->orphans(), CSSPrimitiveValue::CSS_NUMBER);        case CSSPropertyOutlineColor:            return currentColorOrValidColor(style.get(), style->outlineColor());        case CSSPropertyOutlineStyle:            if (style->outlineStyleIsAuto())                return CSSPrimitiveValue::createIdentifier(CSSValueAuto);            return CSSPrimitiveValue::create(style->outlineStyle());        case CSSPropertyOutlineWidth:            return CSSPrimitiveValue::create(style->outlineWidth(), CSSPrimitiveValue::CSS_PX);        case CSSPropertyOverflow:            return CSSPrimitiveValue::create(max(style->overflowX(), style->overflowY()));        case CSSPropertyOverflowX:            return CSSPrimitiveValue::create(style->overflowX());        case CSSPropertyOverflowY:            return CSSPrimitiveValue::create(style->overflowY());        case CSSPropertyPaddingTop:            if (renderer && renderer->isBox())                return CSSPrimitiveValue::create(toRenderBox(renderer)->paddingTop(false), CSSPrimitiveValue::CSS_PX);            return CSSPrimitiveValue::create(style->paddingTop());        case CSSPropertyPaddingRight:            if (renderer && renderer->isBox())                return CSSPrimitiveValue::create(toRenderBox(renderer)->paddingRight(false), CSSPrimitiveValue::CSS_PX);            return CSSPrimitiveValue::create(style->paddingRight());        case CSSPropertyPaddingBottom:            if (renderer && renderer->isBox())                return CSSPrimitiveValue::create(toRenderBox(renderer)->paddingBottom(false), CSSPrimitiveValue::CSS_PX);            return CSSPrimitiveValue::create(style->paddingBottom());        case CSSPropertyPaddingLeft:            if (renderer && renderer->isBox())                return CSSPrimitiveValue::create(toRenderBox(renderer)->paddingLeft(false), CSSPrimitiveValue::CSS_PX);            return CSSPrimitiveValue::create(style->paddingLeft());        case CSSPropertyPageBreakAfter:            return CSSPrimitiveValue::create(style->pageBreakAfter());        case CSSPropertyPageBreakBefore:            return CSSPrimitiveValue::create(style->pageBreakBefore());        case CSSPropertyPageBreakInside: {            EPageBreak pageBreak = style->pageBreakInside();            ASSERT(pageBreak != PBALWAYS);            if (pageBreak == PBALWAYS)                return 0;            return CSSPrimitiveValue::create(style->pageBreakInside());        }        case CSSPropertyPosition:            return CSSPrimitiveValue::create(style->position());        case CSSPropertyRight:            return getPositionOffsetValue(style.get(), CSSPropertyRight);        case CSSPropertyTableLayout:            return CSSPrimitiveValue::create(style->tableLayout());        case CSSPropertyTextAlign:            return CSSPrimitiveValue::create(style->textAlign());        case CSSPropertyTextDecoration: {            String string;            if (style->textDecoration() & UNDERLINE)                string += "underline";            if (style->textDecoration() & OVERLINE) {                if (string.length())                    string += " ";                string += "overline";            }            if (style->textDecoration() & LINE_THROUGH) {                if (string.length())                    string += " ";                string += "line-through";            }            if (style->textDecoration() & BLINK) {                if (string.length())                    string += " ";                string += "blink";            }            if (!string.length())                return CSSPrimitiveValue::createIdentifier(CSSValueNone);            return CSSPrimitiveValue::create(string, CSSPrimitiveValue::CSS_STRING);        }        case CSSPropertyWebkitTextDecorationsInEffect: {            String string;            if (style->textDecorationsInEffect() & UNDERLINE)                string += "underline";            if (style->textDecorationsInEffect() & OVERLINE) {                if (string.length())                    string += " ";                string += "overline";            }            if (style->textDecorationsInEffect() & LINE_THROUGH) {                if (string.length())                    string += " ";                string += "line-through";            }            if (style->textDecorationsInEffect() & BLINK) {                if (string.length())                    string += " ";                string += "blink";            }            if (!string.length())                return CSSPrimitiveValue::createIdentifier(CSSValueNone);            return CSSPrimitiveValue::create(string, CSSPrimitiveValue::CSS_STRING);        }        case CSSPropertyWebkitTextFillColor:            return currentColorOrValidColor(style.get(), style->textFillColor());        case CSSPropertyTextIndent:            return CSSPrimitiveValue::create(style->textIndent());        case CSSPropertyTextShadow:            return valueForShadow(style->textShadow());        case CSSPropertyWebkitTextSecurity:            return CSSPrimitiveValue::create(style->textSecurity());        case CSSPropertyWebkitTextSizeAdjust:            if (style->textSizeAdjust())                return CSSPrimitiveValue::createIdentifier(CSSValueAuto);            return CSSPrimitiveValue::createIdentifier(CSSValueNone);        case CSSPropertyWebkitTextStrokeColor:            return currentColorOrValidColor(style.get(), style->textStrokeColor());        case CSSPropertyWebkitTextStrokeWidth:            return CSSPrimitiveValue::create(style->textStrokeWidth(), CSSPrimitiveValue::CSS_PX);        case CSSPropertyTextTransform:            return CSSPrimitiveValue::create(style->textTransform());        case CSSPropertyTop:            return getPositionOffsetValue(style.get(), CSSPropertyTop);        case CSSPropertyUnicodeBidi:            return CSSPrimitiveValue::create(style->unicodeBidi());        case CSSPropertyVerticalAlign:            switch (style->verticalAlign()) {                case BASELINE:                    return CSSPrimitiveValue::createIdentifier(CSSValueBaseline);                case MIDDLE:                    return CSSPrimitiveValue::createIdentifier(CSSValueMiddle);                case SUB:                    return CSSPrimitiveValue::createIdentifier(CSSValueSub);                case SUPER:                    return CSSPrimitiveValue::createIdentifier(CSSValueSuper);                case TEXT_TOP:                    return CSSPrimitiveValue::createIdentifier(CSSValueTextTop);                case TEXT_BOTTOM:                    return CSSPrimitiveValue::createIdentifier(CSSValueTextBottom);                case TOP:                    return CSSPrimitiveValue::createIdentifier(CSSValueTop);                case BOTTOM:                    return CSSPrimitiveValue::createIdentifier(CSSValueBottom);                case BASELINE_MIDDLE:                    return CSSPrimitiveValue::createIdentifier(CSSValueWebkitBaselineMiddle);                case LENGTH:                    return CSSPrimitiveValue::create(style->verticalAlignLength());            }            ASSERT_NOT_REACHED();            return 0;        case CSSPropertyVisibility:            return CSSPrimitiveValue::create(style->visibility());        case CSSPropertyWhiteSpace:            return CSSPrimitiveValue::create(style->whiteSpace());        case CSSPropertyWidows:            return CSSPrimitiveValue::create(style->widows(), CSSPrimitiveValue::CSS_NUMBER);        case CSSPropertyWidth:            if (renderer)                return CSSPrimitiveValue::create(sizingBox(renderer).width(), CSSPrimitiveValue::CSS_PX);            return CSSPrimitiveValue::create(style->width());        case CSSPropertyWordBreak:            return CSSPrimitiveValue::create(style->wordBreak());        case CSSPropertyWordSpacing:            return CSSPrimitiveValue::create(style->wordSpacing(), CSSPrimitiveValue::CSS_PX);        case CSSPropertyWordWrap:            return CSSPrimitiveValue::create(style->wordWrap());        case CSSPropertyWebkitLineBreak:            return CSSPrimitiveValue::create(style->khtmlLineBreak());        case CSSPropertyWebkitNbspMode:            return CSSPrimitiveValue::create(style->nbspMode());        case CSSPropertyWebkitMatchNearestMailBlockquoteColor:            return CSSPrimitiveValue::create(style->matchNearestMailBlockquoteColor());        case CSSPropertyResize:            return CSSPrimitiveValue::create(style->resize());        case CSSPropertyZIndex:            if (style->hasAutoZIndex())                return CSSPrimitiveValue::createIdentifier(CSSValueAuto);            return CSSPrimitiveValue::create(style->zIndex(), CSSPrimitiveValue::CSS_NUMBER);        case CSSPropertyZoom:            return CSSPrimitiveValue::create(style->zoom(), CSSPrimitiveValue::CSS_NUMBER);        case CSSPropertyWebkitBoxSizing:            if (style->boxSizing() == CONTENT_BOX)                return CSSPrimitiveValue::createIdentifier(CSSValueContentBox);            return CSSPrimitiveValue::createIdentifier(CSSValueBorderBox);#if ENABLE(DASHBOARD_SUPPORT)        case CSSPropertyWebkitDashboardRegion:        {            const Vector<StyleDashboardRegion>& regions = style->dashboardRegions();            unsigned count = regions.size();            if (count == 1 && regions[0].type == StyleDashboardRegion::None)                return CSSPrimitiveValue::createIdentifier(CSSValueNone);            RefPtr<DashboardRegion> firstRegion;            DashboardRegion* previousRegion = 0;            for (unsigned i = 0; i < count; i++) {                RefPtr<DashboardRegion> region = DashboardRegion::create();                StyleDashboardRegion styleRegion = regions[i];                region->m_label = styleRegion.label;                LengthBox offset = styleRegion.offset;                region->setTop(CSSPrimitiveValue::create(offset.top().value(), CSSPrimitiveValue::CSS_PX));                region->setRight(CSSPrimitiveValue::create(offset.right().value(), CSSPrimitiveValue::CSS_PX));                region->setBottom(CSSPrimitiveValue::create(offset.bottom().value(), CSSPrimitiveValue::CSS_PX));                region->setLeft(CSSPrimitiveValue::create(offset.left().value(), CSSPrimitiveValue::CSS_PX));                region->m_isRectangle = (styleRegion.type == StyleDashboardRegion::Rectangle);                region->m_isCircle = (styleRegion.type == StyleDashboardRegion::Circle);                if (previousRegion)                    previousRegion->m_next = region;                else                    firstRegion = region;                previousRegion = region.get();            }            return CSSPrimitiveValue::create(firstRegion.release());        }#endif        case CSSPropertyWebkitAnimationDelay:            return getDelayValue(style->animations());        case CSSPropertyWebkitAnimationDirection: {            RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();            const AnimationList* t = style->animations();            if (t) {                for (size_t i = 0; i < t->size(); ++i) {                    if (t->animation(i)->direction())                        list->append(CSSPrimitiveValue::createIdentifier(CSSValueAlternate));                    else                        list->append(CSSPrimitiveValue::createIdentifier(CSSValueNormal));                }            } else                list->append(CSSPrimitiveValue::createIdentifier(CSSValueNormal));            return list.release();        }        case CSSPropertyWebkitAnimationDuration:            return getDurationValue(style->animations());        case CSSPropertyWebkitAnimationIterationCount: {            RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();            const AnimationList* t = style->animations();            if (t) {                for (size_t i = 0; i < t->size(); ++i) {                    int iterationCount = t->animation(i)->iterationCount();                    if (iterationCount == Animation::IterationCountInfinite)                        list->append(CSSPrimitiveValue::createIdentifier(CSSValueInfinite));                    else                        list->append(CSSPrimitiveValue::create(iterationCount, CSSPrimitiveValue::CSS_NUMBER));                }            } else                list->append(CSSPrimitiveValue::create(Animation::initialAnimationIterationCount(), CSSPrimitiveValue::CSS_NUMBER));            return list.release();        }        case CSSPropertyWebkitAnimationName: {            RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();            const AnimationList* t = style->animations();            if (t) {                for (size_t i = 0; i < t->size(); ++i) {                    list->append(CSSPrimitiveValue::create(t->animation(i)->name(), CSSPrimitiveValue::CSS_STRING));                }            } else

⌨️ 快捷键说明

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