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 964 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
975 | 975 |
976 GridLength minTrackBreadth; | 976 GridLength minTrackBreadth; |
977 GridLength maxTrackBreadth; | 977 GridLength maxTrackBreadth; |
978 if (!createGridTrackBreadth(minMaxTrackBreadth->first(), state, minTrackBrea
dth) || !createGridTrackBreadth(minMaxTrackBreadth->second(), state, maxTrackBre
adth)) | 978 if (!createGridTrackBreadth(minMaxTrackBreadth->first(), state, minTrackBrea
dth) || !createGridTrackBreadth(minMaxTrackBreadth->second(), state, maxTrackBre
adth)) |
979 return false; | 979 return false; |
980 | 980 |
981 trackSize.setMinMax(minTrackBreadth, maxTrackBreadth); | 981 trackSize.setMinMax(minTrackBreadth, maxTrackBreadth); |
982 return true; | 982 return true; |
983 } | 983 } |
984 | 984 |
985 static bool createGridTrackList(CSSValue* value, Vector<GridTrackSize>& trackSiz
es, NamedGridLinesMap& namedGridLines, const StyleResolverState& state) | 985 static bool createGridTrackList(CSSValue* value, Vector<GridTrackSize>& trackSiz
es, NamedGridLinesMap& namedGridLines, OrderedNamedGridLines& orderedNamedGridLi
nes, const StyleResolverState& state) |
986 { | 986 { |
987 // Handle 'none'. | 987 // Handle 'none'. |
988 if (value->isPrimitiveValue()) { | 988 if (value->isPrimitiveValue()) { |
989 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 989 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
990 return primitiveValue->getValueID() == CSSValueNone; | 990 return primitiveValue->getValueID() == CSSValueNone; |
991 } | 991 } |
992 | 992 |
993 if (!value->isValueList()) | 993 if (!value->isValueList()) |
994 return false; | 994 return false; |
995 | 995 |
996 size_t currentNamedGridLine = 0; | 996 size_t currentNamedGridLine = 0; |
997 for (CSSValueListIterator i = value; i.hasMore(); i.advance()) { | 997 for (CSSValueListIterator i = value; i.hasMore(); i.advance()) { |
998 CSSValue* currValue = i.value(); | 998 CSSValue* currValue = i.value(); |
999 if (currValue->isPrimitiveValue()) { | 999 if (currValue->isPrimitiveValue()) { |
1000 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(currValue); | 1000 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(currValue); |
1001 if (primitiveValue->isString()) { | 1001 if (primitiveValue->isString()) { |
1002 NamedGridLinesMap::AddResult result = namedGridLines.add(primiti
veValue->getStringValue(), Vector<size_t>()); | 1002 String namedGridLine = primitiveValue->getStringValue(); |
| 1003 NamedGridLinesMap::AddResult result = namedGridLines.add(namedGr
idLine, Vector<size_t>()); |
1003 result.iterator->value.append(currentNamedGridLine); | 1004 result.iterator->value.append(currentNamedGridLine); |
| 1005 OrderedNamedGridLines::AddResult orderedInsertionResult = ordere
dNamedGridLines.add(currentNamedGridLine, Vector<String>()); |
| 1006 orderedInsertionResult.iterator->value.append(namedGridLine); |
1004 continue; | 1007 continue; |
1005 } | 1008 } |
1006 } | 1009 } |
1007 | 1010 |
1008 ++currentNamedGridLine; | 1011 ++currentNamedGridLine; |
1009 GridTrackSize trackSize; | 1012 GridTrackSize trackSize; |
1010 if (!createGridTrackSize(currValue, trackSize, state)) | 1013 if (!createGridTrackSize(currValue, trackSize, state)) |
1011 return false; | 1014 return false; |
1012 | 1015 |
1013 trackSizes.append(trackSize); | 1016 trackSizes.append(trackSize); |
(...skipping 703 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1717 GridTrackSize trackSize; | 1720 GridTrackSize trackSize; |
1718 if (!createGridTrackSize(value, trackSize, state)) | 1721 if (!createGridTrackSize(value, trackSize, state)) |
1719 return; | 1722 return; |
1720 state.style()->setGridAutoRows(trackSize); | 1723 state.style()->setGridAutoRows(trackSize); |
1721 return; | 1724 return; |
1722 } | 1725 } |
1723 case CSSPropertyGridDefinitionColumns: { | 1726 case CSSPropertyGridDefinitionColumns: { |
1724 if (isInherit) { | 1727 if (isInherit) { |
1725 state.style()->setGridDefinitionColumns(state.parentStyle()->gridDef
initionColumns()); | 1728 state.style()->setGridDefinitionColumns(state.parentStyle()->gridDef
initionColumns()); |
1726 state.style()->setNamedGridColumnLines(state.parentStyle()->namedGri
dColumnLines()); | 1729 state.style()->setNamedGridColumnLines(state.parentStyle()->namedGri
dColumnLines()); |
| 1730 state.style()->setOrderedNamedGridColumnLines(state.parentStyle()->o
rderedNamedGridColumnLines()); |
1727 return; | 1731 return; |
1728 } | 1732 } |
1729 if (isInitial) { | 1733 if (isInitial) { |
1730 state.style()->setGridDefinitionColumns(RenderStyle::initialGridDefi
nitionColumns()); | 1734 state.style()->setGridDefinitionColumns(RenderStyle::initialGridDefi
nitionColumns()); |
1731 state.style()->setNamedGridColumnLines(RenderStyle::initialNamedGrid
ColumnLines()); | 1735 state.style()->setNamedGridColumnLines(RenderStyle::initialNamedGrid
ColumnLines()); |
| 1736 state.style()->setOrderedNamedGridColumnLines(RenderStyle::initialOr
deredNamedGridColumnLines()); |
1732 return; | 1737 return; |
1733 } | 1738 } |
1734 | 1739 |
1735 Vector<GridTrackSize> trackSizes; | 1740 Vector<GridTrackSize> trackSizes; |
1736 NamedGridLinesMap namedGridLines; | 1741 NamedGridLinesMap namedGridLines; |
1737 if (!createGridTrackList(value, trackSizes, namedGridLines, state)) | 1742 OrderedNamedGridLines orderedNamedGridLines; |
| 1743 if (!createGridTrackList(value, trackSizes, namedGridLines, orderedNamed
GridLines, state)) |
1738 return; | 1744 return; |
1739 state.style()->setGridDefinitionColumns(trackSizes); | 1745 state.style()->setGridDefinitionColumns(trackSizes); |
1740 state.style()->setNamedGridColumnLines(namedGridLines); | 1746 state.style()->setNamedGridColumnLines(namedGridLines); |
| 1747 state.style()->setOrderedNamedGridColumnLines(orderedNamedGridLines); |
1741 return; | 1748 return; |
1742 } | 1749 } |
1743 case CSSPropertyGridDefinitionRows: { | 1750 case CSSPropertyGridDefinitionRows: { |
1744 if (isInherit) { | 1751 if (isInherit) { |
1745 state.style()->setGridDefinitionRows(state.parentStyle()->gridDefini
tionRows()); | 1752 state.style()->setGridDefinitionRows(state.parentStyle()->gridDefini
tionRows()); |
1746 state.style()->setNamedGridRowLines(state.parentStyle()->namedGridRo
wLines()); | 1753 state.style()->setNamedGridRowLines(state.parentStyle()->namedGridRo
wLines()); |
| 1754 state.style()->setOrderedNamedGridRowLines(state.parentStyle()->orde
redNamedGridRowLines()); |
1747 return; | 1755 return; |
1748 } | 1756 } |
1749 if (isInitial) { | 1757 if (isInitial) { |
1750 state.style()->setGridDefinitionRows(RenderStyle::initialGridDefinit
ionRows()); | 1758 state.style()->setGridDefinitionRows(RenderStyle::initialGridDefinit
ionRows()); |
1751 state.style()->setNamedGridRowLines(RenderStyle::initialNamedGridRow
Lines()); | 1759 state.style()->setNamedGridRowLines(RenderStyle::initialNamedGridRow
Lines()); |
| 1760 state.style()->setOrderedNamedGridRowLines(RenderStyle::initialOrder
edNamedGridRowLines()); |
1752 return; | 1761 return; |
1753 } | 1762 } |
1754 | 1763 |
1755 Vector<GridTrackSize> trackSizes; | 1764 Vector<GridTrackSize> trackSizes; |
1756 NamedGridLinesMap namedGridLines; | 1765 NamedGridLinesMap namedGridLines; |
1757 if (!createGridTrackList(value, trackSizes, namedGridLines, state)) | 1766 OrderedNamedGridLines orderedNamedGridLines; |
| 1767 if (!createGridTrackList(value, trackSizes, namedGridLines, orderedNamed
GridLines, state)) |
1758 return; | 1768 return; |
1759 state.style()->setGridDefinitionRows(trackSizes); | 1769 state.style()->setGridDefinitionRows(trackSizes); |
1760 state.style()->setNamedGridRowLines(namedGridLines); | 1770 state.style()->setNamedGridRowLines(namedGridLines); |
| 1771 state.style()->setOrderedNamedGridRowLines(orderedNamedGridLines); |
1761 return; | 1772 return; |
1762 } | 1773 } |
1763 | 1774 |
1764 case CSSPropertyGridColumnStart: { | 1775 case CSSPropertyGridColumnStart: { |
1765 HANDLE_INHERIT_AND_INITIAL(gridColumnStart, GridColumnStart); | 1776 HANDLE_INHERIT_AND_INITIAL(gridColumnStart, GridColumnStart); |
1766 GridPosition startPosition; | 1777 GridPosition startPosition; |
1767 if (!createGridPosition(value, startPosition)) | 1778 if (!createGridPosition(value, startPosition)) |
1768 return; | 1779 return; |
1769 state.style()->setGridColumnStart(startPosition); | 1780 state.style()->setGridColumnStart(startPosition); |
1770 return; | 1781 return; |
(...skipping 566 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2337 break; | 2348 break; |
2338 } | 2349 } |
2339 case CSSPropertyEnableBackground: | 2350 case CSSPropertyEnableBackground: |
2340 // Silently ignoring this property for now | 2351 // Silently ignoring this property for now |
2341 // http://bugs.webkit.org/show_bug.cgi?id=6022 | 2352 // http://bugs.webkit.org/show_bug.cgi?id=6022 |
2342 break; | 2353 break; |
2343 } | 2354 } |
2344 } | 2355 } |
2345 | 2356 |
2346 } // namespace WebCore | 2357 } // namespace WebCore |
OLD | NEW |