| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 560 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 571 StringBuilder result; | 571 StringBuilder result; |
| 572 if (m_gradientType == CSSDeprecatedLinearGradient) { | 572 if (m_gradientType == CSSDeprecatedLinearGradient) { |
| 573 result.appendLiteral("-webkit-gradient(linear, "); | 573 result.appendLiteral("-webkit-gradient(linear, "); |
| 574 result.append(m_firstX->cssText()); | 574 result.append(m_firstX->cssText()); |
| 575 result.append(' '); | 575 result.append(' '); |
| 576 result.append(m_firstY->cssText()); | 576 result.append(m_firstY->cssText()); |
| 577 result.appendLiteral(", "); | 577 result.appendLiteral(", "); |
| 578 result.append(m_secondX->cssText()); | 578 result.append(m_secondX->cssText()); |
| 579 result.append(' '); | 579 result.append(' '); |
| 580 result.append(m_secondY->cssText()); | 580 result.append(m_secondY->cssText()); |
| 581 | 581 appendCSSTextForDeprecatedColorStops(result); |
| 582 for (unsigned i = 0; i < m_stops.size(); i++) { | |
| 583 const CSSGradientColorStop& stop = m_stops[i]; | |
| 584 result.appendLiteral(", "); | |
| 585 if (stop.m_position->getDoubleValue(CSSPrimitiveValue::CSS_NUMBER) =
= 0) { | |
| 586 result.appendLiteral("from("); | |
| 587 result.append(stop.m_color->cssText()); | |
| 588 result.append(')'); | |
| 589 } else if (stop.m_position->getDoubleValue(CSSPrimitiveValue::CSS_NU
MBER) == 1) { | |
| 590 result.appendLiteral("to("); | |
| 591 result.append(stop.m_color->cssText()); | |
| 592 result.append(')'); | |
| 593 } else { | |
| 594 result.appendLiteral("color-stop("); | |
| 595 result.appendNumber(stop.m_position->getDoubleValue(CSSPrimitive
Value::CSS_NUMBER)); | |
| 596 result.appendLiteral(", "); | |
| 597 result.append(stop.m_color->cssText()); | |
| 598 result.append(')'); | |
| 599 } | |
| 600 } | |
| 601 } else if (m_gradientType == CSSPrefixedLinearGradient) { | 582 } else if (m_gradientType == CSSPrefixedLinearGradient) { |
| 602 if (m_repeating) | 583 if (m_repeating) |
| 603 result.appendLiteral("-webkit-repeating-linear-gradient("); | 584 result.appendLiteral("-webkit-repeating-linear-gradient("); |
| 604 else | 585 else |
| 605 result.appendLiteral("-webkit-linear-gradient("); | 586 result.appendLiteral("-webkit-linear-gradient("); |
| 606 | 587 |
| 607 if (m_angle) | 588 if (m_angle) |
| 608 result.append(m_angle->cssText()); | 589 result.append(m_angle->cssText()); |
| 609 else { | 590 else { |
| 610 if (m_firstX && m_firstY) { | 591 if (m_firstX && m_firstY) { |
| (...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 839 | 820 |
| 840 return equalXandY && m_stops == other.m_stops; | 821 return equalXandY && m_stops == other.m_stops; |
| 841 } | 822 } |
| 842 | 823 |
| 843 void CSSLinearGradientValue::traceAfterDispatch(Visitor* visitor) | 824 void CSSLinearGradientValue::traceAfterDispatch(Visitor* visitor) |
| 844 { | 825 { |
| 845 visitor->trace(m_angle); | 826 visitor->trace(m_angle); |
| 846 CSSGradientValue::traceAfterDispatch(visitor); | 827 CSSGradientValue::traceAfterDispatch(visitor); |
| 847 } | 828 } |
| 848 | 829 |
| 830 inline void CSSGradientValue::appendCSSTextForDeprecatedColorStops(StringBuilder
& result) const |
| 831 { |
| 832 for (unsigned i = 0; i < m_stops.size(); i++) { |
| 833 const CSSGradientColorStop& stop = m_stops[i]; |
| 834 result.appendLiteral(", "); |
| 835 if (stop.m_position->getDoubleValue(CSSPrimitiveValue::CSS_NUMBER) == 0)
{ |
| 836 result.appendLiteral("from("); |
| 837 result.append(stop.m_color->cssText()); |
| 838 result.append(')'); |
| 839 } else if (stop.m_position->getDoubleValue(CSSPrimitiveValue::CSS_NUMBER
) == 1) { |
| 840 result.appendLiteral("to("); |
| 841 result.append(stop.m_color->cssText()); |
| 842 result.append(')'); |
| 843 } else { |
| 844 result.appendLiteral("color-stop("); |
| 845 result.appendNumber(stop.m_position->getDoubleValue(CSSPrimitiveValu
e::CSS_NUMBER)); |
| 846 result.appendLiteral(", "); |
| 847 result.append(stop.m_color->cssText()); |
| 848 result.append(')'); |
| 849 } |
| 850 } |
| 851 } |
| 852 |
| 849 String CSSRadialGradientValue::customCSSText() const | 853 String CSSRadialGradientValue::customCSSText() const |
| 850 { | 854 { |
| 851 StringBuilder result; | 855 StringBuilder result; |
| 852 | 856 |
| 853 if (m_gradientType == CSSDeprecatedRadialGradient) { | 857 if (m_gradientType == CSSDeprecatedRadialGradient) { |
| 854 result.appendLiteral("-webkit-gradient(radial, "); | 858 result.appendLiteral("-webkit-gradient(radial, "); |
| 855 result.append(m_firstX->cssText()); | 859 result.append(m_firstX->cssText()); |
| 856 result.append(' '); | 860 result.append(' '); |
| 857 result.append(m_firstY->cssText()); | 861 result.append(m_firstY->cssText()); |
| 858 result.appendLiteral(", "); | 862 result.appendLiteral(", "); |
| 859 result.append(m_firstRadius->cssText()); | 863 result.append(m_firstRadius->cssText()); |
| 860 result.appendLiteral(", "); | 864 result.appendLiteral(", "); |
| 861 result.append(m_secondX->cssText()); | 865 result.append(m_secondX->cssText()); |
| 862 result.append(' '); | 866 result.append(' '); |
| 863 result.append(m_secondY->cssText()); | 867 result.append(m_secondY->cssText()); |
| 864 result.appendLiteral(", "); | 868 result.appendLiteral(", "); |
| 865 result.append(m_secondRadius->cssText()); | 869 result.append(m_secondRadius->cssText()); |
| 866 | 870 appendCSSTextForDeprecatedColorStops(result); |
| 867 // FIXME: share? | |
| 868 for (unsigned i = 0; i < m_stops.size(); i++) { | |
| 869 const CSSGradientColorStop& stop = m_stops[i]; | |
| 870 result.appendLiteral(", "); | |
| 871 if (stop.m_position->getDoubleValue(CSSPrimitiveValue::CSS_NUMBER) =
= 0) { | |
| 872 result.appendLiteral("from("); | |
| 873 result.append(stop.m_color->cssText()); | |
| 874 result.append(')'); | |
| 875 } else if (stop.m_position->getDoubleValue(CSSPrimitiveValue::CSS_NU
MBER) == 1) { | |
| 876 result.appendLiteral("to("); | |
| 877 result.append(stop.m_color->cssText()); | |
| 878 result.append(')'); | |
| 879 } else { | |
| 880 result.appendLiteral("color-stop("); | |
| 881 result.appendNumber(stop.m_position->getDoubleValue(CSSPrimitive
Value::CSS_NUMBER)); | |
| 882 result.appendLiteral(", "); | |
| 883 result.append(stop.m_color->cssText()); | |
| 884 result.append(')'); | |
| 885 } | |
| 886 } | |
| 887 } else if (m_gradientType == CSSPrefixedRadialGradient) { | 871 } else if (m_gradientType == CSSPrefixedRadialGradient) { |
| 888 if (m_repeating) | 872 if (m_repeating) |
| 889 result.appendLiteral("-webkit-repeating-radial-gradient("); | 873 result.appendLiteral("-webkit-repeating-radial-gradient("); |
| 890 else | 874 else |
| 891 result.appendLiteral("-webkit-radial-gradient("); | 875 result.appendLiteral("-webkit-radial-gradient("); |
| 892 | 876 |
| 893 if (m_firstX && m_firstY) { | 877 if (m_firstX && m_firstY) { |
| 894 result.append(m_firstX->cssText()); | 878 result.append(m_firstX->cssText()); |
| 895 result.append(' '); | 879 result.append(' '); |
| 896 result.append(m_firstY->cssText()); | 880 result.append(m_firstY->cssText()); |
| (...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1280 visitor->trace(m_firstRadius); | 1264 visitor->trace(m_firstRadius); |
| 1281 visitor->trace(m_secondRadius); | 1265 visitor->trace(m_secondRadius); |
| 1282 visitor->trace(m_shape); | 1266 visitor->trace(m_shape); |
| 1283 visitor->trace(m_sizingBehavior); | 1267 visitor->trace(m_sizingBehavior); |
| 1284 visitor->trace(m_endHorizontalSize); | 1268 visitor->trace(m_endHorizontalSize); |
| 1285 visitor->trace(m_endVerticalSize); | 1269 visitor->trace(m_endVerticalSize); |
| 1286 CSSGradientValue::traceAfterDispatch(visitor); | 1270 CSSGradientValue::traceAfterDispatch(visitor); |
| 1287 } | 1271 } |
| 1288 | 1272 |
| 1289 } // namespace blink | 1273 } // namespace blink |
| OLD | NEW |