📄 css_computedstyle.cpp
字号:
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 + -