Changeset 92243 in webkit
- Timestamp:
- Aug 2, 2011 4:15:27 PM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r92242 r92243 1 2011-08-02 Luke Macpherson <macpherson@chromium.org> 2 3 Implement CSSPropertyWebkitTextCombine, CSSPropertyWebkitTextEmphasisPosition and CSSPropertyWebkitTextEmphasisStyle in CSSStyleApplyProperty. 4 https://bugs.webkit.org/show_bug.cgi?id=65517 5 6 Reviewed by Dimitri Glazkov. 7 8 No new tests. Just refactoring and moving code around. 9 10 * css/CSSStyleApplyProperty.cpp: 11 Added class ApplyPropertyTextEmphasisStyle to handle the special TextEmphasisStyle logic. 12 (WebCore::ApplyPropertyTextEmphasisStyle::applyInheritValue): 13 (WebCore::ApplyPropertyTextEmphasisStyle::applyInitialValue): 14 (WebCore::ApplyPropertyTextEmphasisStyle::applyValue): 15 (WebCore::CSSStyleApplyProperty::CSSStyleApplyProperty): 16 Added initializations for CSSPropertyWebkitTextCombine, CSSPropertyWebkitTextEmphasisPosition, CSSPropertyWebkitTextEmphasisStyle. 17 * css/CSSStyleSelector.cpp: 18 (WebCore::CSSStyleSelector::applyProperty): 19 Remove existing implementations. 20 1 21 2011-08-02 Mark Pilgrim <pilgrim@chromium.org> 2 22 -
trunk/Source/WebCore/css/CSSStyleApplyProperty.cpp
r91969 r92243 686 686 }; 687 687 688 class ApplyPropertyTextEmphasisStyle : public ApplyPropertyBase { 689 private: 690 virtual void applyInheritValue(CSSStyleSelector* selector) const 691 { 692 selector->style()->setTextEmphasisFill(selector->parentStyle()->textEmphasisFill()); 693 selector->style()->setTextEmphasisMark(selector->parentStyle()->textEmphasisMark()); 694 selector->style()->setTextEmphasisCustomMark(selector->parentStyle()->textEmphasisCustomMark()); 695 } 696 697 virtual void applyInitialValue(CSSStyleSelector* selector) const 698 { 699 selector->style()->setTextEmphasisFill(RenderStyle::initialTextEmphasisFill()); 700 selector->style()->setTextEmphasisMark(RenderStyle::initialTextEmphasisMark()); 701 selector->style()->setTextEmphasisCustomMark(RenderStyle::initialTextEmphasisCustomMark()); 702 } 703 704 virtual void applyValue(CSSStyleSelector* selector, CSSValue* value) const 705 { 706 if (value->isValueList()) { 707 CSSValueList* list = static_cast<CSSValueList*>(value); 708 ASSERT(list->length() == 2); 709 if (list->length() != 2) 710 return; 711 for (unsigned i = 0; i < 2; ++i) { 712 CSSValue* item = list->itemWithoutBoundsCheck(i); 713 if (!item->isPrimitiveValue()) 714 continue; 715 716 CSSPrimitiveValue* value = static_cast<CSSPrimitiveValue*>(item); 717 if (value->getIdent() == CSSValueFilled || value->getIdent() == CSSValueOpen) 718 selector->style()->setTextEmphasisFill(*value); 719 else 720 selector->style()->setTextEmphasisMark(*value); 721 } 722 selector->style()->setTextEmphasisCustomMark(nullAtom); 723 return; 724 } 725 726 if (!value->isPrimitiveValue()) 727 return; 728 CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value); 729 730 if (primitiveValue->primitiveType() == CSSPrimitiveValue::CSS_STRING) { 731 selector->style()->setTextEmphasisFill(TextEmphasisFillFilled); 732 selector->style()->setTextEmphasisMark(TextEmphasisMarkCustom); 733 selector->style()->setTextEmphasisCustomMark(primitiveValue->getStringValue()); 734 return; 735 } 736 737 selector->style()->setTextEmphasisCustomMark(nullAtom); 738 739 if (primitiveValue->getIdent() == CSSValueFilled || primitiveValue->getIdent() == CSSValueOpen) { 740 selector->style()->setTextEmphasisFill(*primitiveValue); 741 selector->style()->setTextEmphasisMark(TextEmphasisMarkAuto); 742 } else { 743 selector->style()->setTextEmphasisFill(TextEmphasisFillFilled); 744 selector->style()->setTextEmphasisMark(*primitiveValue); 745 } 746 747 } 748 }; 749 688 750 const CSSStyleApplyProperty& CSSStyleApplyProperty::sharedCSSStyleApplyProperty() 689 751 { … … 869 931 setPropertyHandler(CSSPropertyWebkitColumnGap, new ApplyPropertyAuto<float, ComputeLength, CSSValueNormal>(&RenderStyle::columnGap, &RenderStyle::setColumnGap, &RenderStyle::hasNormalColumnGap, &RenderStyle::setHasNormalColumnGap)); 870 932 setPropertyHandler(CSSPropertyWebkitColumnWidth, new ApplyPropertyAuto<float, ComputeLength>(&RenderStyle::columnWidth, &RenderStyle::setColumnWidth, &RenderStyle::hasAutoColumnWidth, &RenderStyle::setHasAutoColumnWidth)); 933 934 setPropertyHandler(CSSPropertyWebkitTextCombine, new ApplyPropertyDefault<TextCombine>(&RenderStyle::textCombine, &RenderStyle::setTextCombine, &RenderStyle::initialTextCombine)); 935 setPropertyHandler(CSSPropertyWebkitTextEmphasisPosition, new ApplyPropertyDefault<TextEmphasisPosition>(&RenderStyle::textEmphasisPosition, &RenderStyle::setTextEmphasisPosition, &RenderStyle::initialTextEmphasisPosition)); 936 setPropertyHandler(CSSPropertyWebkitTextEmphasisStyle, new ApplyPropertyTextEmphasisStyle()); 937 871 938 setPropertyHandler(CSSPropertyZIndex, new ApplyPropertyAuto<int>(&RenderStyle::zIndex, &RenderStyle::setZIndex, &RenderStyle::hasAutoZIndex, &RenderStyle::setHasAutoZIndex)); 872 939 } -
trunk/Source/WebCore/css/CSSStyleSelector.cpp
r92195 r92243 5060 5060 } 5061 5061 5062 case CSSPropertyWebkitTextCombine:5063 HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE(textCombine, TextCombine)5064 return;5065 5066 case CSSPropertyWebkitTextEmphasisPosition:5067 HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE(textEmphasisPosition, TextEmphasisPosition)5068 return;5069 5070 case CSSPropertyWebkitTextEmphasisStyle:5071 HANDLE_INHERIT_AND_INITIAL(textEmphasisFill, TextEmphasisFill)5072 HANDLE_INHERIT_AND_INITIAL(textEmphasisMark, TextEmphasisMark)5073 HANDLE_INHERIT_AND_INITIAL(textEmphasisCustomMark, TextEmphasisCustomMark)5074 if (isInherit || isInitial)5075 return;5076 5077 if (value->isValueList()) {5078 CSSValueList* list = static_cast<CSSValueList*>(value);5079 ASSERT(list->length() == 2);5080 if (list->length() != 2)5081 return;5082 for (unsigned i = 0; i < 2; ++i) {5083 CSSValue* item = list->itemWithoutBoundsCheck(i);5084 if (!item->isPrimitiveValue())5085 continue;5086 5087 CSSPrimitiveValue* value = static_cast<CSSPrimitiveValue*>(item);5088 if (value->getIdent() == CSSValueFilled || value->getIdent() == CSSValueOpen)5089 m_style->setTextEmphasisFill(*value);5090 else5091 m_style->setTextEmphasisMark(*value);5092 }5093 m_style->setTextEmphasisCustomMark(nullAtom);5094 return;5095 }5096 5097 if (!primitiveValue)5098 return;5099 5100 if (primitiveValue->primitiveType() == CSSPrimitiveValue::CSS_STRING) {5101 m_style->setTextEmphasisFill(TextEmphasisFillFilled);5102 m_style->setTextEmphasisMark(TextEmphasisMarkCustom);5103 m_style->setTextEmphasisCustomMark(primitiveValue->getStringValue());5104 return;5105 }5106 5107 m_style->setTextEmphasisCustomMark(nullAtom);5108 5109 if (primitiveValue->getIdent() == CSSValueFilled || primitiveValue->getIdent() == CSSValueOpen) {5110 m_style->setTextEmphasisFill(*primitiveValue);5111 m_style->setTextEmphasisMark(TextEmphasisMarkAuto);5112 } else {5113 m_style->setTextEmphasisFill(TextEmphasisFillFilled);5114 m_style->setTextEmphasisMark(*primitiveValue);5115 }5116 5117 return;5118 5062 case CSSPropertyWebkitLineBoxContain: { 5119 5063 HANDLE_INHERIT_AND_INITIAL(lineBoxContain, LineBoxContain) … … 5259 5203 case CSSPropertyWebkitColumnGap: 5260 5204 case CSSPropertyWebkitColumnWidth: 5205 case CSSPropertyWebkitTextCombine: 5206 case CSSPropertyWebkitTextEmphasisPosition: 5207 case CSSPropertyWebkitTextEmphasisStyle: 5261 5208 case CSSPropertyZIndex: 5262 5209 ASSERT_NOT_REACHED();
Note: See TracChangeset
for help on using the changeset viewer.