OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 3 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
4 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) | 4 * (C) 2004-2005 Allan Sandfeld Jensen (kde@carewolf.com) |
5 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) | 5 * Copyright (C) 2006, 2007 Nicholas Shanks (webkit@nickshanks.com) |
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved. | 6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 Apple Inc. All rights reserved. |
7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 7 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> | 8 * Copyright (C) 2007, 2008 Eric Seidel <eric@webkit.org> |
9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) | 9 * Copyright (C) 2008, 2009 Torch Mobile Inc. All rights reserved. (http://www.t orchmobile.com/) |
10 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. | 10 * Copyright (c) 2011, Code Aurora Forum. All rights reserved. |
(...skipping 1031 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1042 return; \ | 1042 return; \ |
1043 } | 1043 } |
1044 | 1044 |
1045 #define HANDLE_SVG_INHERIT_AND_INITIAL(prop, Prop) \ | 1045 #define HANDLE_SVG_INHERIT_AND_INITIAL(prop, Prop) \ |
1046 HANDLE_SVG_INHERIT(prop, Prop) \ | 1046 HANDLE_SVG_INHERIT(prop, Prop) \ |
1047 if (isInitial) { \ | 1047 if (isInitial) { \ |
1048 state.style()->accessSVGStyle()->set##Prop(SVGRenderStyle::initial##Prop()); \ | 1048 state.style()->accessSVGStyle()->set##Prop(SVGRenderStyle::initial##Prop()); \ |
1049 return; \ | 1049 return; \ |
1050 } | 1050 } |
1051 | 1051 |
1052 static void createImplicitNamedGridLinesFromGridArea(const NamedGridAreaMap& nam edGridAreas, NamedGridLinesMap& namedGridLines, GridTrackSizingDirection directi on) | |
1053 { | |
1054 NamedGridAreaMap::const_iterator end = namedGridAreas.end(); | |
1055 for (NamedGridAreaMap::const_iterator it = namedGridAreas.begin(); it != end ; ++it) { | |
1056 GridSpan areaSpan = direction == ForRows ? it->value.rows : it->value.co lumns; | |
1057 | |
1058 NamedGridLinesMap::AddResult startResult = namedGridLines.add(it->key + "-start", Vector<size_t>()); | |
1059 startResult.storedValue->value.append(areaSpan.resolvedInitialPosition.t oInt()); | |
1060 std::sort(startResult.storedValue->value.begin(), startResult.storedValu e->value.end()); | |
1061 | |
1062 NamedGridLinesMap::AddResult endResult = namedGridLines.add(it->key + "- end", Vector<size_t>()); | |
1063 endResult.storedValue->value.append(areaSpan.resolvedFinalPosition.toInt () + 1); | |
1064 std::sort(endResult.storedValue->value.begin(), endResult.storedValue->v alue.end()); | |
1065 } | |
1066 } | |
1067 | |
1052 static GridLength createGridTrackBreadth(CSSPrimitiveValue* primitiveValue, cons t StyleResolverState& state) | 1068 static GridLength createGridTrackBreadth(CSSPrimitiveValue* primitiveValue, cons t StyleResolverState& state) |
1053 { | 1069 { |
1054 if (primitiveValue->getValueID() == CSSValueMinContent) | 1070 if (primitiveValue->getValueID() == CSSValueMinContent) |
1055 return Length(MinContent); | 1071 return Length(MinContent); |
1056 | 1072 |
1057 if (primitiveValue->getValueID() == CSSValueMaxContent) | 1073 if (primitiveValue->getValueID() == CSSValueMaxContent) |
1058 return Length(MaxContent); | 1074 return Length(MaxContent); |
1059 | 1075 |
1060 // Fractional unit. | 1076 // Fractional unit. |
1061 if (primitiveValue->isFlex()) | 1077 if (primitiveValue->isFlex()) |
(...skipping 669 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1731 state.style()->setNamedGridColumnLines(RenderStyle::initialNamedGrid ColumnLines()); | 1747 state.style()->setNamedGridColumnLines(RenderStyle::initialNamedGrid ColumnLines()); |
1732 state.style()->setOrderedNamedGridColumnLines(RenderStyle::initialOr deredNamedGridColumnLines()); | 1748 state.style()->setOrderedNamedGridColumnLines(RenderStyle::initialOr deredNamedGridColumnLines()); |
1733 return; | 1749 return; |
1734 } | 1750 } |
1735 | 1751 |
1736 Vector<GridTrackSize> trackSizes; | 1752 Vector<GridTrackSize> trackSizes; |
1737 NamedGridLinesMap namedGridLines; | 1753 NamedGridLinesMap namedGridLines; |
1738 OrderedNamedGridLines orderedNamedGridLines; | 1754 OrderedNamedGridLines orderedNamedGridLines; |
1739 if (!createGridTrackList(value, trackSizes, namedGridLines, orderedNamed GridLines, state)) | 1755 if (!createGridTrackList(value, trackSizes, namedGridLines, orderedNamed GridLines, state)) |
1740 return; | 1756 return; |
1757 | |
1758 const NamedGridAreaMap& namedGridAreas = state.style()->namedGridArea(); | |
1759 if (!namedGridAreas.isEmpty()) | |
1760 createImplicitNamedGridLinesFromGridArea(namedGridAreas, namedGridLi nes, ForColumns); | |
1761 | |
1741 state.style()->setGridTemplateColumns(trackSizes); | 1762 state.style()->setGridTemplateColumns(trackSizes); |
1742 state.style()->setNamedGridColumnLines(namedGridLines); | 1763 state.style()->setNamedGridColumnLines(namedGridLines); |
1743 state.style()->setOrderedNamedGridColumnLines(orderedNamedGridLines); | 1764 state.style()->setOrderedNamedGridColumnLines(orderedNamedGridLines); |
1744 return; | 1765 return; |
1745 } | 1766 } |
1746 case CSSPropertyGridTemplateRows: { | 1767 case CSSPropertyGridTemplateRows: { |
1747 if (isInherit) { | 1768 if (isInherit) { |
1748 state.style()->setGridTemplateRows(state.parentStyle()->gridTemplate Rows()); | 1769 state.style()->setGridTemplateRows(state.parentStyle()->gridTemplate Rows()); |
1749 state.style()->setNamedGridRowLines(state.parentStyle()->namedGridRo wLines()); | 1770 state.style()->setNamedGridRowLines(state.parentStyle()->namedGridRo wLines()); |
1750 state.style()->setOrderedNamedGridRowLines(state.parentStyle()->orde redNamedGridRowLines()); | 1771 state.style()->setOrderedNamedGridRowLines(state.parentStyle()->orde redNamedGridRowLines()); |
1751 return; | 1772 return; |
1752 } | 1773 } |
1753 if (isInitial) { | 1774 if (isInitial) { |
1754 state.style()->setGridTemplateRows(RenderStyle::initialGridTemplateR ows()); | 1775 state.style()->setGridTemplateRows(RenderStyle::initialGridTemplateR ows()); |
1755 state.style()->setNamedGridRowLines(RenderStyle::initialNamedGridRow Lines()); | 1776 state.style()->setNamedGridRowLines(RenderStyle::initialNamedGridRow Lines()); |
1756 state.style()->setOrderedNamedGridRowLines(RenderStyle::initialOrder edNamedGridRowLines()); | 1777 state.style()->setOrderedNamedGridRowLines(RenderStyle::initialOrder edNamedGridRowLines()); |
1757 return; | 1778 return; |
1758 } | 1779 } |
1759 | 1780 |
1760 Vector<GridTrackSize> trackSizes; | 1781 Vector<GridTrackSize> trackSizes; |
1761 NamedGridLinesMap namedGridLines; | 1782 NamedGridLinesMap namedGridLines; |
1762 OrderedNamedGridLines orderedNamedGridLines; | 1783 OrderedNamedGridLines orderedNamedGridLines; |
1763 if (!createGridTrackList(value, trackSizes, namedGridLines, orderedNamed GridLines, state)) | 1784 if (!createGridTrackList(value, trackSizes, namedGridLines, orderedNamed GridLines, state)) |
1764 return; | 1785 return; |
1786 | |
1787 const NamedGridAreaMap& namedGridAreas = state.style()->namedGridArea(); | |
1788 if (!namedGridAreas.isEmpty()) | |
1789 createImplicitNamedGridLinesFromGridArea(namedGridAreas, namedGridLi nes, ForRows); | |
1790 | |
1765 state.style()->setGridTemplateRows(trackSizes); | 1791 state.style()->setGridTemplateRows(trackSizes); |
1766 state.style()->setNamedGridRowLines(namedGridLines); | 1792 state.style()->setNamedGridRowLines(namedGridLines); |
1767 state.style()->setOrderedNamedGridRowLines(orderedNamedGridLines); | 1793 state.style()->setOrderedNamedGridRowLines(orderedNamedGridLines); |
1768 return; | 1794 return; |
1769 } | 1795 } |
1770 | 1796 |
1771 case CSSPropertyGridColumnStart: { | 1797 case CSSPropertyGridColumnStart: { |
1772 HANDLE_INHERIT_AND_INITIAL(gridColumnStart, GridColumnStart); | 1798 HANDLE_INHERIT_AND_INITIAL(gridColumnStart, GridColumnStart); |
1773 GridPosition startPosition; | 1799 GridPosition startPosition; |
1774 if (!createGridPosition(value, startPosition)) | 1800 if (!createGridPosition(value, startPosition)) |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1815 state.style()->setNamedGridAreaColumnCount(RenderStyle::initialNamed GridAreaCount()); | 1841 state.style()->setNamedGridAreaColumnCount(RenderStyle::initialNamed GridAreaCount()); |
1816 return; | 1842 return; |
1817 } | 1843 } |
1818 | 1844 |
1819 if (value->isPrimitiveValue()) { | 1845 if (value->isPrimitiveValue()) { |
1820 ASSERT(toCSSPrimitiveValue(value)->getValueID() == CSSValueNone); | 1846 ASSERT(toCSSPrimitiveValue(value)->getValueID() == CSSValueNone); |
1821 return; | 1847 return; |
1822 } | 1848 } |
1823 | 1849 |
1824 CSSGridTemplateAreasValue* gridTemplateAreasValue = toCSSGridTemplateAre asValue(value); | 1850 CSSGridTemplateAreasValue* gridTemplateAreasValue = toCSSGridTemplateAre asValue(value); |
1825 state.style()->setNamedGridArea(gridTemplateAreasValue->gridAreaMap()); | 1851 const NamedGridAreaMap& newNamedGridAreas = gridTemplateAreasValue->grid AreaMap(); |
1852 | |
1853 NamedGridLinesMap namedGridColumnLines = state.style()->namedGridColumnL ines(); | |
1854 NamedGridLinesMap namedGridRowLines = state.style()->namedGridRowLines() ; | |
Julien - ping for review
2014/05/12 11:42:12
You're right about RenderStyle returning a constan
| |
1855 createImplicitNamedGridLinesFromGridArea(newNamedGridAreas, namedGridCol umnLines, ForColumns); | |
1856 createImplicitNamedGridLinesFromGridArea(newNamedGridAreas, namedGridRow Lines, ForRows); | |
1857 state.style()->setNamedGridColumnLines(namedGridColumnLines); | |
1858 state.style()->setNamedGridRowLines(namedGridRowLines); | |
1859 | |
1860 state.style()->setNamedGridArea(newNamedGridAreas); | |
1826 state.style()->setNamedGridAreaRowCount(gridTemplateAreasValue->rowCount ()); | 1861 state.style()->setNamedGridAreaRowCount(gridTemplateAreasValue->rowCount ()); |
1827 state.style()->setNamedGridAreaColumnCount(gridTemplateAreasValue->colum nCount()); | 1862 state.style()->setNamedGridAreaColumnCount(gridTemplateAreasValue->colum nCount()); |
1828 return; | 1863 return; |
1829 } | 1864 } |
1830 | 1865 |
1831 case CSSPropertyJustifySelf: { | 1866 case CSSPropertyJustifySelf: { |
1832 HANDLE_INHERIT_AND_INITIAL(justifySelf, JustifySelf); | 1867 HANDLE_INHERIT_AND_INITIAL(justifySelf, JustifySelf); |
1833 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 1868 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
1834 if (Pair* pairValue = primitiveValue->getPairValue()) { | 1869 if (Pair* pairValue = primitiveValue->getPairValue()) { |
1835 state.style()->setJustifySelf(*pairValue->first()); | 1870 state.style()->setJustifySelf(*pairValue->first()); |
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2295 break; | 2330 break; |
2296 } | 2331 } |
2297 case CSSPropertyEnableBackground: | 2332 case CSSPropertyEnableBackground: |
2298 // Silently ignoring this property for now | 2333 // Silently ignoring this property for now |
2299 // http://bugs.webkit.org/show_bug.cgi?id=6022 | 2334 // http://bugs.webkit.org/show_bug.cgi?id=6022 |
2300 break; | 2335 break; |
2301 } | 2336 } |
2302 } | 2337 } |
2303 | 2338 |
2304 } // namespace WebCore | 2339 } // namespace WebCore |
OLD | NEW |