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

📄 css_computedstyle.cpp

📁 khtml在gtk上的移植版本
💻 CPP
📖 第 1 页 / 共 2 页
字号:
        FontDef def = m_renderer->style()->htmlFont().getFontDef();        if (def.weight == QFont::Bold)            return new CSSPrimitiveValueImpl("bold", CSSPrimitiveValue::CSS_STRING);        else            return new CSSPrimitiveValueImpl("normal", CSSPrimitiveValue::CSS_STRING);    }    case CSS_PROP_HEIGHT:        return new CSSPrimitiveValueImpl(m_renderer->contentHeight(), CSSPrimitiveValue::CSS_PX);    case CSS_PROP_LEFT:        // FIXME: unimplemented		break;    case CSS_PROP_LETTER_SPACING:        if (m_renderer->style()->letterSpacing() == 0)            return new CSSPrimitiveValueImpl("normal", CSSPrimitiveValue::CSS_STRING);        return new CSSPrimitiveValueImpl(m_renderer->style()->letterSpacing(), CSSPrimitiveValue::CSS_PX);    case CSS_PROP_LINE_HEIGHT: {        Length length(m_renderer->style()->lineHeight());        if (length.isPercent()) {            float computedSize = m_renderer->style()->htmlFont().getFontDef().computedSize;            return new CSSPrimitiveValueImpl((int)(length.length() * computedSize) / 100, CSSPrimitiveValue::CSS_PX);        }        else {            return new CSSPrimitiveValueImpl(length.length(), CSSPrimitiveValue::CSS_PX);        }    }    case CSS_PROP_LIST_STYLE_IMAGE:        // FIXME: unimplemented		break;    case CSS_PROP_LIST_STYLE_POSITION:        // FIXME: unimplemented		break;    case CSS_PROP_LIST_STYLE_TYPE:        // FIXME: unimplemented		break;    case CSS_PROP_MARGIN_TOP:        return valueForLength(m_renderer->style()->marginTop(), m_renderer->contentHeight());    case CSS_PROP_MARGIN_RIGHT:        return valueForLength(m_renderer->style()->marginRight(), m_renderer->contentWidth());    case CSS_PROP_MARGIN_BOTTOM:        return valueForLength(m_renderer->style()->marginBottom(), m_renderer->contentHeight());    case CSS_PROP_MARGIN_LEFT:        return valueForLength(m_renderer->style()->marginLeft(), m_renderer->contentWidth());    case CSS_PROP__KHTML_MARQUEE:        // FIXME: unimplemented		break;    case CSS_PROP__KHTML_MARQUEE_DIRECTION:        // FIXME: unimplemented		break;    case CSS_PROP__KHTML_MARQUEE_INCREMENT:        // FIXME: unimplemented		break;    case CSS_PROP__KHTML_MARQUEE_REPETITION:        // FIXME: unimplemented		break;    case CSS_PROP__KHTML_MARQUEE_SPEED:        // FIXME: unimplemented		break;    case CSS_PROP__KHTML_MARQUEE_STYLE:        // FIXME: unimplemented		break;    case CSS_PROP__KHTML_USER_MODIFY:        // FIXME: unimplemented		break;    case CSS_PROP_MAX_HEIGHT:        // FIXME: unimplemented		break;    case CSS_PROP_MAX_WIDTH:        // FIXME: unimplemented		break;    case CSS_PROP_MIN_HEIGHT:        // FIXME: unimplemented		break;    case CSS_PROP_MIN_WIDTH:        // FIXME: unimplemented		break;    case CSS_PROP_OPACITY:        // FIXME: unimplemented		break;    case CSS_PROP_ORPHANS:        // FIXME: unimplemented		break;        // FIXME: unimplemented		break;    case CSS_PROP_OUTLINE_COLOR:        // FIXME: unimplemented		break;    case CSS_PROP_OUTLINE_OFFSET:        // FIXME: unimplemented		break;    case CSS_PROP_OUTLINE_STYLE:        // FIXME: unimplemented		break;    case CSS_PROP_OUTLINE_WIDTH:        // FIXME: unimplemented		break;    case CSS_PROP_OVERFLOW:    {        switch (m_renderer->style()->overflow()) {            case khtml::OVISIBLE:                return new CSSPrimitiveValueImpl("visible", CSSPrimitiveValue::CSS_STRING);            case khtml::OHIDDEN:                return new CSSPrimitiveValueImpl("hidden", CSSPrimitiveValue::CSS_STRING);            case khtml::OSCROLL:                return new CSSPrimitiveValueImpl("scroll", CSSPrimitiveValue::CSS_STRING);            case khtml::OAUTO:                return new CSSPrimitiveValueImpl("auto", CSSPrimitiveValue::CSS_STRING);            case khtml::OMARQUEE:                return new CSSPrimitiveValueImpl("marquee", CSSPrimitiveValue::CSS_STRING);            case khtml::OOVERLAY:                return new CSSPrimitiveValueImpl("overlay", CSSPrimitiveValue::CSS_STRING);        }    }    case CSS_PROP_PADDING_TOP:        return valueForLength(m_renderer->style()->paddingTop(), m_renderer->contentHeight());    case CSS_PROP_PADDING_RIGHT:        return valueForLength(m_renderer->style()->paddingRight(), m_renderer->contentWidth());    case CSS_PROP_PADDING_BOTTOM:        return valueForLength(m_renderer->style()->paddingBottom(), m_renderer->contentHeight());    case CSS_PROP_PADDING_LEFT:        return valueForLength(m_renderer->style()->paddingLeft(), m_renderer->contentWidth());    case CSS_PROP_PAGE:        // FIXME: unimplemented		break;    case CSS_PROP_PAGE_BREAK_AFTER:        // FIXME: unimplemented		break;    case CSS_PROP_PAGE_BREAK_BEFORE:        // FIXME: unimplemented		break;    case CSS_PROP_PAGE_BREAK_INSIDE:        // FIXME: unimplemented		break;    case CSS_PROP_POSITION:        // FIXME: unimplemented		break;    case CSS_PROP_QUOTES:        // FIXME: unimplemented		break;    case CSS_PROP_RIGHT:        // FIXME: unimplemented		break;    case CSS_PROP_SIZE:        // FIXME: unimplemented		break;    case CSS_PROP_TABLE_LAYOUT:        // FIXME: unimplemented		break;    case CSS_PROP_TEXT_ALIGN:        return new CSSPrimitiveValueImpl(stringForTextAlign(m_renderer->style()->textAlign()), CSSPrimitiveValue::CSS_STRING);    case CSS_PROP_TEXT_DECORATION:    {        QString string;        if (m_renderer->style()->textDecoration() & khtml::UNDERLINE)            string += "underline";        if (m_renderer->style()->textDecoration() & khtml::OVERLINE) {            if (string.length() > 0)                string += " ";            string += "overline";        }        if (m_renderer->style()->textDecoration() & khtml::LINE_THROUGH) {            if (string.length() > 0)                string += " ";            string += "line-through";        }        if (m_renderer->style()->textDecoration() & khtml::BLINK) {            if (string.length() > 0)                string += " ";            string += "blink";        }        if (string.length() == 0)            string = "none";        return new CSSPrimitiveValueImpl(string, CSSPrimitiveValue::CSS_STRING);    }    case CSS_PROP_TEXT_DECORATION_COLOR:        // FIXME: unimplemented		break;    case CSS_PROP_TEXT_INDENT:        return valueForLength(m_renderer->style()->textIndent(), m_renderer->contentWidth());    case CSS_PROP_TEXT_SHADOW:        // FIXME: unimplemented		break;    case CSS_PROP_TEXT_TRANSFORM:        // FIXME: unimplemented		break;    case CSS_PROP_TOP:        // FIXME: unimplemented		break;    case CSS_PROP_UNICODE_BIDI:        // FIXME: unimplemented		break;    case CSS_PROP_VERTICAL_ALIGN:    {        switch (m_renderer->style()->verticalAlign()) {            case khtml::BASELINE:                return new CSSPrimitiveValueImpl("baseline", CSSPrimitiveValue::CSS_STRING);            case khtml::MIDDLE:                return new CSSPrimitiveValueImpl("middle", CSSPrimitiveValue::CSS_STRING);            case khtml::SUB:                return new CSSPrimitiveValueImpl("sub", CSSPrimitiveValue::CSS_STRING);            case khtml::SUPER:                return new CSSPrimitiveValueImpl("super", CSSPrimitiveValue::CSS_STRING);            case khtml::TEXT_TOP:                return new CSSPrimitiveValueImpl("text-top", CSSPrimitiveValue::CSS_STRING);            case khtml::TEXT_BOTTOM:                return new CSSPrimitiveValueImpl("text-bottom", CSSPrimitiveValue::CSS_STRING);            case khtml::TOP:                return new CSSPrimitiveValueImpl("top", CSSPrimitiveValue::CSS_STRING);            case khtml::BOTTOM:                return new CSSPrimitiveValueImpl("bottom", CSSPrimitiveValue::CSS_STRING);            case khtml::BASELINE_MIDDLE:                return new CSSPrimitiveValueImpl("baseline-middle", CSSPrimitiveValue::CSS_STRING);            case khtml::LENGTH:                return valueForLength(m_renderer->style()->verticalAlignLength(), m_renderer->contentWidth());        }    }    case CSS_PROP_VISIBILITY:        // FIXME: unimplemented		break;    case CSS_PROP_WHITE_SPACE:    {        switch (m_renderer->style()->whiteSpace()) {            case khtml::NORMAL:                return new CSSPrimitiveValueImpl("normal", CSSPrimitiveValue::CSS_STRING);            case khtml::PRE:                return new CSSPrimitiveValueImpl("pre", CSSPrimitiveValue::CSS_STRING);            case khtml::NOWRAP:                return new CSSPrimitiveValueImpl("nowrap", CSSPrimitiveValue::CSS_STRING);            case khtml::KHTML_NOWRAP:                return new CSSPrimitiveValueImpl("-khtml-nowrap", CSSPrimitiveValue::CSS_STRING);        }    }    case CSS_PROP_WIDOWS:        // FIXME: unimplemented		break;    case CSS_PROP_WIDTH:        return new CSSPrimitiveValueImpl(m_renderer->contentWidth(), CSSPrimitiveValue::CSS_PX);    case CSS_PROP_WORD_SPACING:        return new CSSPrimitiveValueImpl(m_renderer->style()->wordSpacing(), CSSPrimitiveValue::CSS_PX);    case CSS_PROP_Z_INDEX:        // FIXME: unimplemented		break;    case CSS_PROP_BACKGROUND:        // FIXME: unimplemented		break;    case CSS_PROP_BORDER:        // FIXME: unimplemented		break;    case CSS_PROP_BORDER_COLOR:        // FIXME: unimplemented		break;    case CSS_PROP_BORDER_STYLE:        // FIXME: unimplemented		break;    case CSS_PROP_BORDER_TOP:        // FIXME: unimplemented		break;    case CSS_PROP_BORDER_RIGHT:        // FIXME: unimplemented		break;    case CSS_PROP_BORDER_BOTTOM:        // FIXME: unimplemented		break;    case CSS_PROP_BORDER_LEFT:        // FIXME: unimplemented		break;    case CSS_PROP_BORDER_WIDTH:        // FIXME: unimplemented		break;    case CSS_PROP_FONT:        // FIXME: unimplemented		break;    case CSS_PROP_LIST_STYLE:        // FIXME: unimplemented		break;    case CSS_PROP_MARGIN:        // FIXME: unimplemented		break;    case CSS_PROP_OUTLINE:        // FIXME: unimplemented		break;    case CSS_PROP_PADDING:        // FIXME: unimplemented		break;#if !APPLE_CHANGES    case CSS_PROP_SCROLLBAR_FACE_COLOR:        // FIXME: unimplemented		break;    case CSS_PROP_SCROLLBAR_SHADOW_COLOR:        // FIXME: unimplemented		break;    case CSS_PROP_SCROLLBAR_HIGHLIGHT_COLOR:        // FIXME: unimplemented		break;    case CSS_PROP_SCROLLBAR_3DLIGHT_COLOR:        // FIXME: unimplemented		break;    case CSS_PROP_SCROLLBAR_DARKSHADOW_COLOR:        // FIXME: unimplemented		break;    case CSS_PROP_SCROLLBAR_TRACK_COLOR:        // FIXME: unimplemented		break;    case CSS_PROP_SCROLLBAR_ARROW_COLOR:        // FIXME: unimplemented		break;#endif    case CSS_PROP__KHTML_FLOW_MODE:        // FIXME: unimplemented		break;    default:        break;    }    ERROR("unimplemented propertyID: %d", propertyID);    return 0;}DOMString CSSComputedStyleDeclarationImpl::getPropertyValue(int propertyID) const{    CSSValueImpl* value = getPropertyCSSValue(propertyID);    if (value)        return value->cssText();    return "";}bool CSSComputedStyleDeclarationImpl::getPropertyPriority(int) const{    // This class does not support the notion of priority, since the object    // is a computed value.    return false;}DOMString CSSComputedStyleDeclarationImpl::removeProperty(int){    ASSERT_NOT_REACHED();    return DOMString();}bool CSSComputedStyleDeclarationImpl::setProperty(int, const DOMString &, bool){    ASSERT_NOT_REACHED();    return false;}void CSSComputedStyleDeclarationImpl::setProperty(int, int, bool){    ASSERT_NOT_REACHED();}void CSSComputedStyleDeclarationImpl::setLengthProperty(int, const DOMString&, bool, bool){    ASSERT_NOT_REACHED();}void CSSComputedStyleDeclarationImpl::setProperty(const DOMString &){    ASSERT_NOT_REACHED();}DOMString CSSComputedStyleDeclarationImpl::item(unsigned long) const{    ERROR("unimplemented");    return DOMString();}CSSProperty CSSComputedStyleDeclarationImpl::property(int id) const{    CSSProperty prop;    prop.m_id = id;    prop.m_bImportant = false;    prop.setValue(getPropertyCSSValue(id));    return prop;}} // namespace DOM

⌨️ 快捷键说明

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