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 564 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
575 | 575 |
576 ASSERT(valueList->length() <= 2); | 576 ASSERT(valueList->length() <= 2); |
577 CSSPrimitiveValue* eachLineValue = toCSSPrimitiveValue(valueList->item(1)); | 577 CSSPrimitiveValue* eachLineValue = toCSSPrimitiveValue(valueList->item(1)); |
578 if (eachLineValue) { | 578 if (eachLineValue) { |
579 ASSERT(eachLineValue->getValueID() == CSSValueEachLine); | 579 ASSERT(eachLineValue->getValueID() == CSSValueEachLine); |
580 state.style()->setTextIndentLine(TextIndentEachLine); | 580 state.style()->setTextIndentLine(TextIndentEachLine); |
581 } else | 581 } else |
582 state.style()->setTextIndentLine(TextIndentFirstLine); | 582 state.style()->setTextIndentLine(TextIndentFirstLine); |
583 } | 583 } |
584 | 584 |
| 585 void StyleBuilderFunctions::applyInitialCSSPropertyTransformOrigin(StyleResolver
State& state) |
| 586 { |
| 587 applyInitialCSSPropertyWebkitTransformOriginX(state); |
| 588 applyInitialCSSPropertyWebkitTransformOriginY(state); |
| 589 applyInitialCSSPropertyWebkitTransformOriginZ(state); |
| 590 } |
| 591 |
| 592 void StyleBuilderFunctions::applyInheritCSSPropertyTransformOrigin(StyleResolver
State& state) |
| 593 { |
| 594 applyInheritCSSPropertyWebkitTransformOriginX(state); |
| 595 applyInheritCSSPropertyWebkitTransformOriginY(state); |
| 596 applyInheritCSSPropertyWebkitTransformOriginZ(state); |
| 597 } |
| 598 |
| 599 void StyleBuilderFunctions::applyValueCSSPropertyTransformOrigin(StyleResolverSt
ate& state, CSSValue* value) |
| 600 { |
| 601 CSSValueList* list = toCSSValueList(value); |
| 602 ASSERT(list->length() == 3); |
| 603 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(list->item(0)); |
| 604 if (primitiveValue->isValueID()) { |
| 605 switch (primitiveValue->getValueID()) { |
| 606 case CSSValueLeft: |
| 607 state.style()->setTransformOriginX(Length(0, Percent)); |
| 608 break; |
| 609 case CSSValueRight: |
| 610 state.style()->setTransformOriginX(Length(100, Percent)); |
| 611 break; |
| 612 case CSSValueCenter: |
| 613 state.style()->setTransformOriginX(Length(50, Percent)); |
| 614 break; |
| 615 default: |
| 616 ASSERT_NOT_REACHED(); |
| 617 } |
| 618 } else { |
| 619 state.style()->setTransformOriginX(StyleBuilderConverter::convertLength(
state, primitiveValue)); |
| 620 } |
| 621 |
| 622 primitiveValue = toCSSPrimitiveValue(list->item(1)); |
| 623 if (primitiveValue->isValueID()) { |
| 624 switch (primitiveValue->getValueID()) { |
| 625 case CSSValueTop: |
| 626 state.style()->setTransformOriginY(Length(0, Percent)); |
| 627 break; |
| 628 case CSSValueBottom: |
| 629 state.style()->setTransformOriginY(Length(100, Percent)); |
| 630 break; |
| 631 case CSSValueCenter: |
| 632 state.style()->setTransformOriginY(Length(50, Percent)); |
| 633 break; |
| 634 default: |
| 635 ASSERT_NOT_REACHED(); |
| 636 } |
| 637 } else { |
| 638 state.style()->setTransformOriginY(StyleBuilderConverter::convertLength(
state, primitiveValue)); |
| 639 } |
| 640 |
| 641 primitiveValue = toCSSPrimitiveValue(list->item(2)); |
| 642 state.style()->setTransformOriginZ(StyleBuilderConverter::convertComputedLen
gth<float>(state, primitiveValue)); |
| 643 } |
| 644 |
| 645 void StyleBuilderFunctions::applyInitialCSSPropertyPerspectiveOrigin(StyleResolv
erState& state) |
| 646 { |
| 647 applyInitialCSSPropertyWebkitPerspectiveOriginX(state); |
| 648 applyInitialCSSPropertyWebkitPerspectiveOriginY(state); |
| 649 } |
| 650 |
| 651 void StyleBuilderFunctions::applyInheritCSSPropertyPerspectiveOrigin(StyleResolv
erState& state) |
| 652 { |
| 653 applyInheritCSSPropertyWebkitPerspectiveOriginX(state); |
| 654 applyInheritCSSPropertyWebkitPerspectiveOriginY(state); |
| 655 } |
| 656 |
| 657 void StyleBuilderFunctions::applyValueCSSPropertyPerspectiveOrigin(StyleResolver
State& state, CSSValue* value) |
| 658 { |
| 659 CSSValueList* list = toCSSValueList(value); |
| 660 ASSERT(list->length() == 2); |
| 661 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(list->item(0)); |
| 662 if (primitiveValue->isValueID()) { |
| 663 switch (primitiveValue->getValueID()) { |
| 664 case CSSValueLeft: |
| 665 state.style()->setPerspectiveOriginX(Length(0, Percent)); |
| 666 break; |
| 667 case CSSValueRight: |
| 668 state.style()->setPerspectiveOriginX(Length(100, Percent)); |
| 669 break; |
| 670 case CSSValueCenter: |
| 671 state.style()->setPerspectiveOriginX(Length(50, Percent)); |
| 672 break; |
| 673 default: |
| 674 ASSERT_NOT_REACHED(); |
| 675 } |
| 676 } else { |
| 677 state.style()->setPerspectiveOriginX(StyleBuilderConverter::convertLengt
h(state, primitiveValue)); |
| 678 } |
| 679 |
| 680 primitiveValue = toCSSPrimitiveValue(list->item(1)); |
| 681 if (primitiveValue->isValueID()) { |
| 682 switch (primitiveValue->getValueID()) { |
| 683 case CSSValueTop: |
| 684 state.style()->setPerspectiveOriginY(Length(0, Percent)); |
| 685 break; |
| 686 case CSSValueBottom: |
| 687 state.style()->setPerspectiveOriginY(Length(100, Percent)); |
| 688 break; |
| 689 case CSSValueCenter: |
| 690 state.style()->setPerspectiveOriginY(Length(50, Percent)); |
| 691 break; |
| 692 default: |
| 693 ASSERT_NOT_REACHED(); |
| 694 } |
| 695 } else { |
| 696 state.style()->setPerspectiveOriginY(StyleBuilderConverter::convertLengt
h(state, primitiveValue)); |
| 697 } |
| 698 } |
| 699 |
585 void StyleBuilderFunctions::applyValueCSSPropertyVerticalAlign(StyleResolverStat
e& state, CSSValue* value) | 700 void StyleBuilderFunctions::applyValueCSSPropertyVerticalAlign(StyleResolverStat
e& state, CSSValue* value) |
586 { | 701 { |
587 if (!value->isPrimitiveValue()) | 702 if (!value->isPrimitiveValue()) |
588 return; | 703 return; |
589 | 704 |
590 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); | 705 CSSPrimitiveValue* primitiveValue = toCSSPrimitiveValue(value); |
591 | 706 |
592 if (primitiveValue->getValueID()) | 707 if (primitiveValue->getValueID()) |
593 return state.style()->setVerticalAlign(*primitiveValue); | 708 return state.style()->setVerticalAlign(*primitiveValue); |
594 | 709 |
(...skipping 820 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1415 width = CSSPrimitiveValue::create(result, CSSPrimitiveValue::CSS_EMS
)->computeLength<float>(state.cssToLengthConversionData()); | 1530 width = CSSPrimitiveValue::create(result, CSSPrimitiveValue::CSS_EMS
)->computeLength<float>(state.cssToLengthConversionData()); |
1416 break; | 1531 break; |
1417 } | 1532 } |
1418 default: | 1533 default: |
1419 width = primitiveValue->computeLength<float>(state.cssToLengthConver
sionData()); | 1534 width = primitiveValue->computeLength<float>(state.cssToLengthConver
sionData()); |
1420 break; | 1535 break; |
1421 } | 1536 } |
1422 state.style()->setTextStrokeWidth(width); | 1537 state.style()->setTextStrokeWidth(width); |
1423 return; | 1538 return; |
1424 } | 1539 } |
| 1540 case CSSPropertyTransform: |
1425 case CSSPropertyWebkitTransform: { | 1541 case CSSPropertyWebkitTransform: { |
1426 HANDLE_INHERIT_AND_INITIAL(transform, Transform); | 1542 HANDLE_INHERIT_AND_INITIAL(transform, Transform); |
1427 TransformOperations operations; | 1543 TransformOperations operations; |
1428 TransformBuilder::createTransformOperations(value, state.cssToLengthConv
ersionData(), operations); | 1544 TransformBuilder::createTransformOperations(value, state.cssToLengthConv
ersionData(), operations); |
1429 state.style()->setTransform(operations); | 1545 state.style()->setTransform(operations); |
1430 return; | 1546 return; |
1431 } | 1547 } |
| 1548 case CSSPropertyPerspective: |
1432 case CSSPropertyWebkitPerspective: { | 1549 case CSSPropertyWebkitPerspective: { |
1433 HANDLE_INHERIT_AND_INITIAL(perspective, Perspective) | 1550 HANDLE_INHERIT_AND_INITIAL(perspective, Perspective) |
1434 | 1551 |
1435 if (!primitiveValue) | 1552 if (!primitiveValue) |
1436 return; | 1553 return; |
1437 | 1554 |
1438 if (primitiveValue->getValueID() == CSSValueNone) { | 1555 if (primitiveValue->getValueID() == CSSValueNone) { |
1439 state.style()->setPerspective(0); | 1556 state.style()->setPerspective(0); |
1440 return; | 1557 return; |
1441 } | 1558 } |
1442 | 1559 |
1443 float perspectiveValue; | 1560 float perspectiveValue; |
1444 if (primitiveValue->isLength()) { | 1561 if (primitiveValue->isLength()) { |
1445 perspectiveValue = primitiveValue->computeLength<float>(state.cssToL
engthConversionData()); | 1562 perspectiveValue = primitiveValue->computeLength<float>(state.cssToL
engthConversionData()); |
1446 } else if (primitiveValue->isNumber()) { | 1563 } else if (id == CSSPropertyWebkitPerspective && primitiveValue->isNumbe
r()) { |
1447 // For backward compatibility, treat valueless numbers as px. | 1564 // Prefixed version treates unitless numbers as px. |
1448 perspectiveValue = CSSPrimitiveValue::create(primitiveValue->getDoub
leValue(), CSSPrimitiveValue::CSS_PX)->computeLength<float>(state.cssToLengthCon
versionData()); | 1565 perspectiveValue = CSSPrimitiveValue::create(primitiveValue->getDoub
leValue(), CSSPrimitiveValue::CSS_PX)->computeLength<float>(state.cssToLengthCon
versionData()); |
1449 } else { | 1566 } else { |
1450 return; | 1567 return; |
1451 } | 1568 } |
1452 | 1569 |
1453 if (perspectiveValue >= 0.0f) | 1570 if (perspectiveValue >= 0.0f) |
1454 state.style()->setPerspective(perspectiveValue); | 1571 state.style()->setPerspective(perspectiveValue); |
1455 return; | 1572 return; |
1456 } | 1573 } |
1457 case CSSPropertyWebkitTapHighlightColor: { | 1574 case CSSPropertyWebkitTapHighlightColor: { |
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1873 case CSSPropertyWebkitAnimationDelay: | 1990 case CSSPropertyWebkitAnimationDelay: |
1874 case CSSPropertyWebkitAnimationDirection: | 1991 case CSSPropertyWebkitAnimationDirection: |
1875 case CSSPropertyWebkitAnimationDuration: | 1992 case CSSPropertyWebkitAnimationDuration: |
1876 case CSSPropertyWebkitAnimationFillMode: | 1993 case CSSPropertyWebkitAnimationFillMode: |
1877 case CSSPropertyWebkitAnimationIterationCount: | 1994 case CSSPropertyWebkitAnimationIterationCount: |
1878 case CSSPropertyWebkitAnimationName: | 1995 case CSSPropertyWebkitAnimationName: |
1879 case CSSPropertyWebkitAnimationPlayState: | 1996 case CSSPropertyWebkitAnimationPlayState: |
1880 case CSSPropertyWebkitAnimationTimingFunction: | 1997 case CSSPropertyWebkitAnimationTimingFunction: |
1881 case CSSPropertyWebkitAppearance: | 1998 case CSSPropertyWebkitAppearance: |
1882 case CSSPropertyWebkitAspectRatio: | 1999 case CSSPropertyWebkitAspectRatio: |
| 2000 case CSSPropertyBackfaceVisibility: |
1883 case CSSPropertyWebkitBackfaceVisibility: | 2001 case CSSPropertyWebkitBackfaceVisibility: |
1884 case CSSPropertyWebkitBackgroundClip: | 2002 case CSSPropertyWebkitBackgroundClip: |
1885 case CSSPropertyWebkitBackgroundComposite: | 2003 case CSSPropertyWebkitBackgroundComposite: |
1886 case CSSPropertyWebkitBackgroundOrigin: | 2004 case CSSPropertyWebkitBackgroundOrigin: |
1887 case CSSPropertyWebkitBackgroundSize: | 2005 case CSSPropertyWebkitBackgroundSize: |
1888 case CSSPropertyWebkitBorderFit: | 2006 case CSSPropertyWebkitBorderFit: |
1889 case CSSPropertyWebkitBorderHorizontalSpacing: | 2007 case CSSPropertyWebkitBorderHorizontalSpacing: |
1890 case CSSPropertyWebkitBorderImage: | 2008 case CSSPropertyWebkitBorderImage: |
1891 case CSSPropertyWebkitBorderVerticalSpacing: | 2009 case CSSPropertyWebkitBorderVerticalSpacing: |
1892 case CSSPropertyWebkitBoxAlign: | 2010 case CSSPropertyWebkitBoxAlign: |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1938 case CSSPropertyWebkitMaskBoxImageWidth: | 2056 case CSSPropertyWebkitMaskBoxImageWidth: |
1939 case CSSPropertyWebkitMaskClip: | 2057 case CSSPropertyWebkitMaskClip: |
1940 case CSSPropertyWebkitMaskComposite: | 2058 case CSSPropertyWebkitMaskComposite: |
1941 case CSSPropertyWebkitMaskImage: | 2059 case CSSPropertyWebkitMaskImage: |
1942 case CSSPropertyWebkitMaskOrigin: | 2060 case CSSPropertyWebkitMaskOrigin: |
1943 case CSSPropertyWebkitMaskPositionX: | 2061 case CSSPropertyWebkitMaskPositionX: |
1944 case CSSPropertyWebkitMaskPositionY: | 2062 case CSSPropertyWebkitMaskPositionY: |
1945 case CSSPropertyWebkitMaskRepeatX: | 2063 case CSSPropertyWebkitMaskRepeatX: |
1946 case CSSPropertyWebkitMaskRepeatY: | 2064 case CSSPropertyWebkitMaskRepeatY: |
1947 case CSSPropertyWebkitMaskSize: | 2065 case CSSPropertyWebkitMaskSize: |
| 2066 case CSSPropertyPerspectiveOrigin: |
1948 case CSSPropertyWebkitPerspectiveOrigin: | 2067 case CSSPropertyWebkitPerspectiveOrigin: |
1949 case CSSPropertyWebkitPerspectiveOriginX: | 2068 case CSSPropertyWebkitPerspectiveOriginX: |
1950 case CSSPropertyWebkitPerspectiveOriginY: | 2069 case CSSPropertyWebkitPerspectiveOriginY: |
1951 case CSSPropertyWebkitPrintColorAdjust: | 2070 case CSSPropertyWebkitPrintColorAdjust: |
1952 case CSSPropertyWebkitRtlOrdering: | 2071 case CSSPropertyWebkitRtlOrdering: |
1953 case CSSPropertyWebkitRubyPosition: | 2072 case CSSPropertyWebkitRubyPosition: |
1954 case CSSPropertyWebkitTextCombine: | 2073 case CSSPropertyWebkitTextCombine: |
1955 case CSSPropertyTextUnderlinePosition: | 2074 case CSSPropertyTextUnderlinePosition: |
1956 case CSSPropertyWebkitTextEmphasisColor: | 2075 case CSSPropertyWebkitTextEmphasisColor: |
1957 case CSSPropertyWebkitTextEmphasisPosition: | 2076 case CSSPropertyWebkitTextEmphasisPosition: |
1958 case CSSPropertyWebkitTextEmphasisStyle: | 2077 case CSSPropertyWebkitTextEmphasisStyle: |
1959 case CSSPropertyWebkitTextFillColor: | 2078 case CSSPropertyWebkitTextFillColor: |
1960 case CSSPropertyWebkitTextSecurity: | 2079 case CSSPropertyWebkitTextSecurity: |
1961 case CSSPropertyWebkitTextStrokeColor: | 2080 case CSSPropertyWebkitTextStrokeColor: |
1962 case CSSPropertyWebkitTransformOriginX: | 2081 case CSSPropertyWebkitTransformOriginX: |
1963 case CSSPropertyWebkitTransformOriginY: | 2082 case CSSPropertyWebkitTransformOriginY: |
1964 case CSSPropertyWebkitTransformOriginZ: | 2083 case CSSPropertyWebkitTransformOriginZ: |
| 2084 case CSSPropertyTransformOrigin: |
| 2085 case CSSPropertyTransformStyle: |
1965 case CSSPropertyWebkitTransformStyle: | 2086 case CSSPropertyWebkitTransformStyle: |
1966 case CSSPropertyWebkitTransitionDelay: | 2087 case CSSPropertyWebkitTransitionDelay: |
1967 case CSSPropertyWebkitTransitionDuration: | 2088 case CSSPropertyWebkitTransitionDuration: |
1968 case CSSPropertyWebkitTransitionProperty: | 2089 case CSSPropertyWebkitTransitionProperty: |
1969 case CSSPropertyWebkitTransitionTimingFunction: | 2090 case CSSPropertyWebkitTransitionTimingFunction: |
1970 case CSSPropertyWebkitUserDrag: | 2091 case CSSPropertyWebkitUserDrag: |
1971 case CSSPropertyWebkitUserModify: | 2092 case CSSPropertyWebkitUserModify: |
1972 case CSSPropertyWebkitUserSelect: | 2093 case CSSPropertyWebkitUserSelect: |
1973 case CSSPropertyWebkitClipPath: | 2094 case CSSPropertyWebkitClipPath: |
1974 case CSSPropertyWebkitWrapFlow: | 2095 case CSSPropertyWebkitWrapFlow: |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2177 break; | 2298 break; |
2178 } | 2299 } |
2179 case CSSPropertyEnableBackground: | 2300 case CSSPropertyEnableBackground: |
2180 // Silently ignoring this property for now | 2301 // Silently ignoring this property for now |
2181 // http://bugs.webkit.org/show_bug.cgi?id=6022 | 2302 // http://bugs.webkit.org/show_bug.cgi?id=6022 |
2182 break; | 2303 break; |
2183 } | 2304 } |
2184 } | 2305 } |
2185 | 2306 |
2186 } // namespace WebCore | 2307 } // namespace WebCore |
OLD | NEW |