OLD | NEW |
1 /* | 1 /* |
2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) | 2 * (C) 1999-2003 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2012 Apple Inc. All rights reserv
ed. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2012 Apple Inc. All rights reserv
ed. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
91 case CSSPrimitiveValue::CSS_COUNTER: | 91 case CSSPrimitiveValue::CSS_COUNTER: |
92 case CSSPrimitiveValue::CSS_COUNTER_NAME: | 92 case CSSPrimitiveValue::CSS_COUNTER_NAME: |
93 case CSSPrimitiveValue::CSS_IDENT: | 93 case CSSPrimitiveValue::CSS_IDENT: |
94 case CSSPrimitiveValue::CSS_PROPERTY_ID: | 94 case CSSPrimitiveValue::CSS_PROPERTY_ID: |
95 case CSSPrimitiveValue::CSS_VALUE_ID: | 95 case CSSPrimitiveValue::CSS_VALUE_ID: |
96 case CSSPrimitiveValue::CSS_PAIR: | 96 case CSSPrimitiveValue::CSS_PAIR: |
97 case CSSPrimitiveValue::CSS_RECT: | 97 case CSSPrimitiveValue::CSS_RECT: |
98 case CSSPrimitiveValue::CSS_QUAD: | 98 case CSSPrimitiveValue::CSS_QUAD: |
99 case CSSPrimitiveValue::CSS_RGBCOLOR: | 99 case CSSPrimitiveValue::CSS_RGBCOLOR: |
100 case CSSPrimitiveValue::CSS_SHAPE: | 100 case CSSPrimitiveValue::CSS_SHAPE: |
| 101 case CSSPrimitiveValue::CSS_CUSTOM_IDENT: |
101 case CSSPrimitiveValue::CSS_STRING: | 102 case CSSPrimitiveValue::CSS_STRING: |
102 case CSSPrimitiveValue::CSS_UNICODE_RANGE: | 103 case CSSPrimitiveValue::CSS_UNICODE_RANGE: |
103 case CSSPrimitiveValue::CSS_UNKNOWN: | 104 case CSSPrimitiveValue::CSS_UNKNOWN: |
104 case CSSPrimitiveValue::CSS_URI: | 105 case CSSPrimitiveValue::CSS_URI: |
105 return false; | 106 return false; |
106 } | 107 } |
107 | 108 |
108 ASSERT_NOT_REACHED(); | 109 ASSERT_NOT_REACHED(); |
109 return false; | 110 return false; |
110 } | 111 } |
(...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
444 } | 445 } |
445 | 446 |
446 CSSPrimitiveValue::~CSSPrimitiveValue() | 447 CSSPrimitiveValue::~CSSPrimitiveValue() |
447 { | 448 { |
448 cleanup(); | 449 cleanup(); |
449 } | 450 } |
450 | 451 |
451 void CSSPrimitiveValue::cleanup() | 452 void CSSPrimitiveValue::cleanup() |
452 { | 453 { |
453 switch (static_cast<UnitType>(m_primitiveUnitType)) { | 454 switch (static_cast<UnitType>(m_primitiveUnitType)) { |
| 455 case CSS_CUSTOM_IDENT: |
454 case CSS_STRING: | 456 case CSS_STRING: |
455 case CSS_URI: | 457 case CSS_URI: |
456 case CSS_ATTR: | 458 case CSS_ATTR: |
457 case CSS_COUNTER_NAME: | 459 case CSS_COUNTER_NAME: |
458 if (m_value.string) | 460 if (m_value.string) |
459 m_value.string->deref(); | 461 m_value.string->deref(); |
460 break; | 462 break; |
461 case CSS_COUNTER: | 463 case CSS_COUNTER: |
462 // We must not call deref() when oilpan is enabled because m_value.count
er is traced. | 464 // We must not call deref() when oilpan is enabled because m_value.count
er is traced. |
463 #if !ENABLE(OILPAN) | 465 #if !ENABLE(OILPAN) |
(...skipping 457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
921 case LengthUnitTypeCount: | 923 case LengthUnitTypeCount: |
922 break; | 924 break; |
923 } | 925 } |
924 ASSERT_NOT_REACHED(); | 926 ASSERT_NOT_REACHED(); |
925 return CSSPrimitiveValue::CSS_UNKNOWN; | 927 return CSSPrimitiveValue::CSS_UNKNOWN; |
926 } | 928 } |
927 | 929 |
928 String CSSPrimitiveValue::getStringValue() const | 930 String CSSPrimitiveValue::getStringValue() const |
929 { | 931 { |
930 switch (m_primitiveUnitType) { | 932 switch (m_primitiveUnitType) { |
931 case CSS_STRING: | 933 case CSS_CUSTOM_IDENT: |
932 case CSS_ATTR: | 934 case CSS_STRING: |
933 case CSS_URI: | 935 case CSS_ATTR: |
934 return m_value.string; | 936 case CSS_URI: |
935 case CSS_VALUE_ID: | 937 return m_value.string; |
936 return valueName(m_value.valueID); | 938 case CSS_VALUE_ID: |
937 case CSS_PROPERTY_ID: | 939 return valueName(m_value.valueID); |
938 return propertyName(m_value.propertyID); | 940 case CSS_PROPERTY_ID: |
939 default: | 941 return propertyName(m_value.propertyID); |
940 break; | 942 default: |
| 943 break; |
941 } | 944 } |
942 | 945 |
943 return String(); | 946 return String(); |
944 } | 947 } |
945 | 948 |
946 static String formatNumber(double number, const char* suffix, unsigned suffixLen
gth) | 949 static String formatNumber(double number, const char* suffix, unsigned suffixLen
gth) |
947 { | 950 { |
948 Decimal decimal = Decimal::fromDouble(number); | 951 Decimal decimal = Decimal::fromDouble(number); |
949 String result = decimal.toString(); | 952 String result = decimal.toString(); |
950 result.append(suffix, suffixLength); | 953 result.append(suffix, suffixLength); |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1015 return "fr"; | 1018 return "fr"; |
1016 case CSS_VW: | 1019 case CSS_VW: |
1017 return "vw"; | 1020 return "vw"; |
1018 case CSS_VH: | 1021 case CSS_VH: |
1019 return "vh"; | 1022 return "vh"; |
1020 case CSS_VMIN: | 1023 case CSS_VMIN: |
1021 return "vmin"; | 1024 return "vmin"; |
1022 case CSS_VMAX: | 1025 case CSS_VMAX: |
1023 return "vmax"; | 1026 return "vmax"; |
1024 case CSS_UNKNOWN: | 1027 case CSS_UNKNOWN: |
| 1028 case CSS_CUSTOM_IDENT: |
1025 case CSS_STRING: | 1029 case CSS_STRING: |
1026 case CSS_URI: | 1030 case CSS_URI: |
1027 case CSS_VALUE_ID: | 1031 case CSS_VALUE_ID: |
1028 case CSS_PROPERTY_ID: | 1032 case CSS_PROPERTY_ID: |
1029 case CSS_ATTR: | 1033 case CSS_ATTR: |
1030 case CSS_COUNTER_NAME: | 1034 case CSS_COUNTER_NAME: |
1031 case CSS_COUNTER: | 1035 case CSS_COUNTER: |
1032 case CSS_RECT: | 1036 case CSS_RECT: |
1033 case CSS_QUAD: | 1037 case CSS_QUAD: |
1034 case CSS_RGBCOLOR: | 1038 case CSS_RGBCOLOR: |
1035 case CSS_PAIR: | 1039 case CSS_PAIR: |
1036 case CSS_CALC: | 1040 case CSS_CALC: |
1037 case CSS_SHAPE: | 1041 case CSS_SHAPE: |
1038 case CSS_IDENT: | 1042 case CSS_IDENT: |
1039 case CSS_UNICODE_RANGE: | 1043 case CSS_UNICODE_RANGE: |
1040 case CSS_CALC_PERCENTAGE_WITH_NUMBER: | 1044 case CSS_CALC_PERCENTAGE_WITH_NUMBER: |
1041 case CSS_CALC_PERCENTAGE_WITH_LENGTH: | 1045 case CSS_CALC_PERCENTAGE_WITH_LENGTH: |
1042 break; | 1046 break; |
1043 }; | 1047 }; |
1044 ASSERT_NOT_REACHED(); | 1048 ASSERT_NOT_REACHED(); |
1045 return ""; | 1049 return ""; |
1046 } | 1050 } |
1047 | 1051 |
1048 String CSSPrimitiveValue::customCSSText(CSSTextFormattingFlags formattingFlag) c
onst | 1052 String CSSPrimitiveValue::customCSSText() const |
1049 { | 1053 { |
1050 if (m_hasCachedCSSText) { | 1054 if (m_hasCachedCSSText) { |
1051 ASSERT(cssTextCache().contains(this)); | 1055 ASSERT(cssTextCache().contains(this)); |
1052 return cssTextCache().get(this); | 1056 return cssTextCache().get(this); |
1053 } | 1057 } |
1054 | 1058 |
1055 String text; | 1059 String text; |
1056 switch (m_primitiveUnitType) { | 1060 switch (m_primitiveUnitType) { |
1057 case CSS_UNKNOWN: | 1061 case CSS_UNKNOWN: |
1058 // FIXME | 1062 // FIXME |
(...skipping 21 matching lines...) Expand all Loading... |
1080 case CSS_HZ: | 1084 case CSS_HZ: |
1081 case CSS_KHZ: | 1085 case CSS_KHZ: |
1082 case CSS_TURN: | 1086 case CSS_TURN: |
1083 case CSS_FR: | 1087 case CSS_FR: |
1084 case CSS_VW: | 1088 case CSS_VW: |
1085 case CSS_VH: | 1089 case CSS_VH: |
1086 case CSS_VMIN: | 1090 case CSS_VMIN: |
1087 case CSS_VMAX: | 1091 case CSS_VMAX: |
1088 text = formatNumber(m_value.num, unitTypeToString((UnitType)m_primit
iveUnitType)); | 1092 text = formatNumber(m_value.num, unitTypeToString((UnitType)m_primit
iveUnitType)); |
1089 break; | 1093 break; |
| 1094 case CSS_CUSTOM_IDENT: |
| 1095 text = quoteCSSStringIfNeeded(m_value.string); |
| 1096 break; |
1090 case CSS_STRING: | 1097 case CSS_STRING: |
1091 text = formattingFlag == AlwaysQuoteCSSString ? quoteCSSString(m_val
ue.string) : quoteCSSStringIfNeeded(m_value.string); | 1098 text = quoteCSSString(m_value.string); |
1092 break; | 1099 break; |
1093 case CSS_URI: | 1100 case CSS_URI: |
1094 text = "url(" + quoteCSSURLIfNeeded(m_value.string) + ")"; | 1101 text = "url(" + quoteCSSURLIfNeeded(m_value.string) + ")"; |
1095 break; | 1102 break; |
1096 case CSS_VALUE_ID: | 1103 case CSS_VALUE_ID: |
1097 text = valueName(m_value.valueID); | 1104 text = valueName(m_value.valueID); |
1098 break; | 1105 break; |
1099 case CSS_PROPERTY_ID: | 1106 case CSS_PROPERTY_ID: |
1100 text = propertyName(m_value.propertyID); | 1107 text = propertyName(m_value.propertyID); |
1101 break; | 1108 break; |
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1195 case CSS_VW: | 1202 case CSS_VW: |
1196 case CSS_VH: | 1203 case CSS_VH: |
1197 case CSS_VMIN: | 1204 case CSS_VMIN: |
1198 case CSS_VMAX: | 1205 case CSS_VMAX: |
1199 case CSS_FR: | 1206 case CSS_FR: |
1200 return m_value.num == other.m_value.num; | 1207 return m_value.num == other.m_value.num; |
1201 case CSS_PROPERTY_ID: | 1208 case CSS_PROPERTY_ID: |
1202 return propertyName(m_value.propertyID) == propertyName(other.m_value.pr
opertyID); | 1209 return propertyName(m_value.propertyID) == propertyName(other.m_value.pr
opertyID); |
1203 case CSS_VALUE_ID: | 1210 case CSS_VALUE_ID: |
1204 return valueName(m_value.valueID) == valueName(other.m_value.valueID); | 1211 return valueName(m_value.valueID) == valueName(other.m_value.valueID); |
| 1212 case CSS_CUSTOM_IDENT: |
1205 case CSS_STRING: | 1213 case CSS_STRING: |
1206 case CSS_URI: | 1214 case CSS_URI: |
1207 case CSS_ATTR: | 1215 case CSS_ATTR: |
1208 case CSS_COUNTER_NAME: | 1216 case CSS_COUNTER_NAME: |
1209 return equal(m_value.string, other.m_value.string); | 1217 return equal(m_value.string, other.m_value.string); |
1210 case CSS_COUNTER: | 1218 case CSS_COUNTER: |
1211 return m_value.counter && other.m_value.counter && m_value.counter->equa
ls(*other.m_value.counter); | 1219 return m_value.counter && other.m_value.counter && m_value.counter->equa
ls(*other.m_value.counter); |
1212 case CSS_RECT: | 1220 case CSS_RECT: |
1213 return m_value.rect && other.m_value.rect && m_value.rect->equals(*other
.m_value.rect); | 1221 return m_value.rect && other.m_value.rect && m_value.rect->equals(*other
.m_value.rect); |
1214 case CSS_QUAD: | 1222 case CSS_QUAD: |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1248 visitor->trace(m_value.shape); | 1256 visitor->trace(m_value.shape); |
1249 break; | 1257 break; |
1250 default: | 1258 default: |
1251 break; | 1259 break; |
1252 } | 1260 } |
1253 #endif | 1261 #endif |
1254 CSSValue::traceAfterDispatch(visitor); | 1262 CSSValue::traceAfterDispatch(visitor); |
1255 } | 1263 } |
1256 | 1264 |
1257 } // namespace blink | 1265 } // namespace blink |
OLD | NEW |