Changeset 58057 in webkit
- Timestamp:
- Apr 21, 2010 10:49:53 PM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r58053 r58057 1 2010-04-21 Ray Rischpater <Raymond.Rischpater@Nokia.com> 2 3 In HTMLInputElement.cpp there are numerous style 4 violations. 5 6 This patch includes style changes to fix existing style 7 deviations in this file. 8 9 Rubber stamped by Darin Adler. 10 11 Fixes <https://bugs.webkit.org/show_bug.cgi?id=37881> 12 13 * html/HTMLInputElement.cpp: 14 1 15 2010-04-21 Gustavo Sverzut Barbieri <barbieri@profusion.mobi> 2 16 -
trunk/WebCore/html/HTMLInputElement.cpp
r57695 r58057 47 47 #include "HTMLNames.h" 48 48 #include "HTMLOptionElement.h" 49 #include "ScriptEventListener.h"50 49 #include "KeyboardEvent.h" 51 50 #include "LocalizedStrings.h" … … 61 60 #include "RenderTextControlSingleLine.h" 62 61 #include "RenderTheme.h" 62 #include "ScriptEventListener.h" 63 63 #include "StepRange.h" 64 64 #include "StringHash.h" … … 172 172 173 173 switch (inputType()) { 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 174 case DATE: 175 case DATETIME: 176 case DATETIMELOCAL: 177 case EMAIL: 178 case FILE: 179 case MONTH: 180 case NUMBER: 181 case PASSWORD: 182 case SEARCH: 183 case TELEPHONE: 184 case TEXT: 185 case TIME: 186 case URL: 187 case WEEK: 188 return value().isEmpty(); 189 case CHECKBOX: 190 return !checked(); 191 case RADIO: 192 return !checkedRadioButtons(this).checkedButtonForGroup(name()); 193 case COLOR: 194 return false; 195 case BUTTON: 196 case HIDDEN: 197 case IMAGE: 198 case ISINDEX: 199 case RANGE: 200 case RESET: 201 case SUBMIT: 202 break; 203 203 } 204 204 … … 210 210 { 211 211 switch (inputType()) { 212 case BUTTON: 213 case CHECKBOX: 214 case COLOR: 215 case DATE: 216 case DATETIME: 217 case DATETIMELOCAL: 218 case FILE: 219 case HIDDEN: 220 case IMAGE: 221 case ISINDEX: 222 case MONTH: 223 case NUMBER: 224 case RADIO: 225 case RANGE: 226 case RESET: 227 case SUBMIT: 228 case TIME: 229 case WEEK: 212 case BUTTON: 213 case CHECKBOX: 214 case COLOR: 215 case DATE: 216 case DATETIME: 217 case DATETIMELOCAL: 218 case FILE: 219 case HIDDEN: 220 case IMAGE: 221 case ISINDEX: 222 case MONTH: 223 case NUMBER: 224 case RADIO: 225 case RANGE: 226 case RESET: 227 case SUBMIT: 228 case TIME: 229 case WEEK: 230 return false; 231 case EMAIL: 232 case PASSWORD: 233 case SEARCH: 234 case TELEPHONE: 235 case TEXT: 236 case URL: 237 const AtomicString& pattern = getAttribute(patternAttr); 238 String value = this->value(); 239 // Empty values can't be mismatched 240 if (pattern.isEmpty() || value.isEmpty()) 230 241 return false; 231 case EMAIL: 232 case PASSWORD: 233 case SEARCH: 234 case TELEPHONE: 235 case TEXT: 236 case URL: 237 const AtomicString& pattern = getAttribute(patternAttr); 238 String value = this->value(); 239 240 // Empty values can't be mismatched 241 if (pattern.isEmpty() || value.isEmpty()) 242 return false; 243 244 RegularExpression patternRegExp(pattern, TextCaseSensitive); 245 int matchLength = 0; 246 int valueLength = value.length(); 247 int matchOffset = patternRegExp.match(value, 0, &matchLength); 248 249 return matchOffset != 0 || matchLength != valueLength; 250 } 251 242 RegularExpression patternRegExp(pattern, TextCaseSensitive); 243 int matchLength = 0; 244 int valueLength = value.length(); 245 int matchOffset = patternRegExp.match(value, 0, &matchLength); 246 return matchOffset || matchLength != valueLength; 247 } 252 248 ASSERT_NOT_REACHED(); 253 249 return false; … … 701 697 if (currentFocusedNode && currentFocusedNode->hasTagName(inputTag)) { 702 698 HTMLInputElement* focusedInput = static_cast<HTMLInputElement*>(currentFocusedNode); 703 if (focusedInput->inputType() == RADIO && focusedInput->form() == form() && 704 focusedInput->name() == name()) 699 if (focusedInput->inputType() == RADIO && focusedInput->form() == form() && focusedInput->name() == name()) 705 700 return false; 706 701 } … … 907 902 { 908 903 switch (inputType()) { 909 case BUTTON: 910 case COLOR: 911 case DATE: 912 case DATETIME: 913 case DATETIMELOCAL: 914 case EMAIL: 915 case FILE: 916 case HIDDEN: 917 case IMAGE: 918 case ISINDEX: 919 case MONTH: 920 case NUMBER: 921 case RANGE: 922 case RESET: 923 case SEARCH: 924 case SUBMIT: 925 case TELEPHONE: 926 case TEXT: 927 case TIME: 928 case URL: 929 case WEEK: { 930 String currentValue = value(); 931 if (currentValue == defaultValue()) 932 return false; 933 result = currentValue; 934 return true; 935 } 936 case CHECKBOX: 937 case RADIO: 938 result = checked() ? "on" : "off"; 939 return true; 940 case PASSWORD: 904 case BUTTON: 905 case COLOR: 906 case DATE: 907 case DATETIME: 908 case DATETIMELOCAL: 909 case EMAIL: 910 case FILE: 911 case HIDDEN: 912 case IMAGE: 913 case ISINDEX: 914 case MONTH: 915 case NUMBER: 916 case RANGE: 917 case RESET: 918 case SEARCH: 919 case SUBMIT: 920 case TELEPHONE: 921 case TEXT: 922 case TIME: 923 case URL: 924 case WEEK: { 925 String currentValue = value(); 926 if (currentValue == defaultValue()) 941 927 return false; 928 result = currentValue; 929 return true; 930 } 931 case CHECKBOX: 932 case RADIO: 933 result = checked() ? "on" : "off"; 934 return true; 935 case PASSWORD: 936 return false; 942 937 } 943 938 ASSERT_NOT_REACHED(); … … 949 944 ASSERT(inputType() != PASSWORD); // should never save/restore password fields 950 945 switch (inputType()) { 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 946 case BUTTON: 947 case COLOR: 948 case DATE: 949 case DATETIME: 950 case DATETIMELOCAL: 951 case EMAIL: 952 case FILE: 953 case HIDDEN: 954 case IMAGE: 955 case ISINDEX: 956 case MONTH: 957 case NUMBER: 958 case RANGE: 959 case RESET: 960 case SEARCH: 961 case SUBMIT: 962 case TELEPHONE: 963 case TEXT: 964 case TIME: 965 case URL: 966 case WEEK: 967 setValue(state); 968 break; 969 case CHECKBOX: 970 case RADIO: 971 setChecked(state == "on"); 972 break; 973 case PASSWORD: 974 break; 980 975 } 981 976 } … … 996 991 { 997 992 switch (inputType()) { 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 993 case BUTTON: 994 case CHECKBOX: 995 case FILE: 996 case IMAGE: 997 case RADIO: 998 case RANGE: 999 case RESET: 1000 case SUBMIT: 1001 focus(false); 1002 // send the mouse button events iff the caller specified sendToAnyElement 1003 dispatchSimulatedClick(0, sendToAnyElement); 1004 break; 1005 case HIDDEN: 1006 // a no-op for this type 1007 break; 1008 case COLOR: 1009 case DATE: 1010 case DATETIME: 1011 case DATETIMELOCAL: 1012 case EMAIL: 1013 case ISINDEX: 1014 case MONTH: 1015 case NUMBER: 1016 case PASSWORD: 1017 case SEARCH: 1018 case TELEPHONE: 1019 case TEXT: 1020 case TIME: 1021 case URL: 1022 case WEEK: 1023 // should never restore previous selection here 1024 focus(false); 1025 break; 1031 1026 } 1032 1027 } … … 1034 1029 bool HTMLInputElement::mapToEntry(const QualifiedName& attrName, MappedAttributeEntry& result) const 1035 1030 { 1036 if (((attrName == heightAttr || attrName == widthAttr) && respectHeightAndWidthAttrs()) ||1037 attrName == vspaceAttr ||1038 attrName == hspaceAttr) {1031 if (((attrName == heightAttr || attrName == widthAttr) && respectHeightAndWidthAttrs()) 1032 || attrName == vspaceAttr 1033 || attrName == hspaceAttr) { 1039 1034 result = eUniversal; 1040 1035 return false; … … 1103 1098 m_imageLoader->updateFromElementIgnoringPreviousError(); 1104 1099 } 1105 } else if (attr->name() == usemapAttr || 1106 attr->name() == accesskeyAttr) { 1100 } else if (attr->name() == usemapAttr || attr->name() == accesskeyAttr) { 1107 1101 // FIXME: ignore for the moment 1108 1102 } else if (attr->name() == vspaceAttr) { … … 1121 1115 if (respectHeightAndWidthAttrs()) 1122 1116 addCSSLength(attr, CSSPropertyHeight, attr->value()); 1123 } 1124 // Search field and slider attributes all just cause updateFromElement to be called through style 1125 // recalcing. 1126 else if (attr->name() == onsearchAttr) { 1117 } else if (attr->name() == onsearchAttr) { 1118 // Search field and slider attributes all just cause updateFromElement to be called through style recalcing. 1127 1119 setAttributeEventListener(eventNames().searchEvent, createAttributeEventListener(this, attr)); 1128 1120 } else if (attr->name() == resultsAttr) { … … 1168 1160 } 1169 1161 1170 RenderObject *HTMLInputElement::createRenderer(RenderArena *arena, RenderStyle *style)1162 RenderObject* HTMLInputElement::createRenderer(RenderArena *arena, RenderStyle *style) 1171 1163 { 1172 1164 switch (inputType()) { 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1165 case BUTTON: 1166 case RESET: 1167 case SUBMIT: 1168 return new (arena) RenderButton(this); 1169 case CHECKBOX: 1170 case RADIO: 1171 return RenderObject::createObject(this, style); 1172 case FILE: 1173 return new (arena) RenderFileUploadControl(this); 1174 case HIDDEN: 1175 break; 1176 case IMAGE: 1177 return new (arena) RenderImage(this); 1178 case RANGE: 1179 return new (arena) RenderSlider(this); 1180 case COLOR: 1181 case DATE: 1182 case DATETIME: 1183 case DATETIMELOCAL: 1184 case EMAIL: 1185 case ISINDEX: 1186 case MONTH: 1187 case NUMBER: 1188 case PASSWORD: 1189 case SEARCH: 1190 case TELEPHONE: 1191 case TEXT: 1192 case TIME: 1193 case URL: 1194 case WEEK: 1195 return new (arena) RenderTextControlSingleLine(this, placeholderShouldBeVisible()); 1204 1196 } 1205 1197 ASSERT(false); … … 1282 1274 1283 1275 switch (inputType()) { 1284 case COLOR: 1285 case DATE: 1286 case DATETIME: 1287 case DATETIMELOCAL: 1288 case EMAIL: 1289 case HIDDEN: 1290 case ISINDEX: 1291 case MONTH: 1292 case NUMBER: 1293 case PASSWORD: 1294 case RANGE: 1295 case SEARCH: 1296 case TELEPHONE: 1297 case TEXT: 1298 case TIME: 1299 case URL: 1300 case WEEK: 1301 // always successful 1276 case COLOR: 1277 case DATE: 1278 case DATETIME: 1279 case DATETIMELOCAL: 1280 case EMAIL: 1281 case HIDDEN: 1282 case ISINDEX: 1283 case MONTH: 1284 case NUMBER: 1285 case PASSWORD: 1286 case RANGE: 1287 case SEARCH: 1288 case TELEPHONE: 1289 case TEXT: 1290 case TIME: 1291 case URL: 1292 case WEEK: 1293 // always successful 1294 encoding.appendData(name(), value()); 1295 return true; 1296 1297 case CHECKBOX: 1298 case RADIO: 1299 if (checked()) { 1302 1300 encoding.appendData(name(), value()); 1303 1301 return true; 1304 1305 case CHECKBOX: 1306 case RADIO: 1307 if (checked()) { 1302 } 1303 break; 1304 1305 case BUTTON: 1306 case RESET: 1307 // these types of buttons are never successful 1308 return false; 1309 1310 case IMAGE: 1311 if (m_activeSubmit) { 1312 encoding.appendData(name().isEmpty() ? "x" : (name() + ".x"), m_xPos); 1313 encoding.appendData(name().isEmpty() ? "y" : (name() + ".y"), m_yPos); 1314 if (!name().isEmpty() && !value().isEmpty()) 1308 1315 encoding.appendData(name(), value()); 1309 return true;1310 }1311 break;1312 1313 case BUTTON:1314 case RESET:1315 // these types of buttons are never successful1316 return false;1317 1318 case IMAGE:1319 if (m_activeSubmit) {1320 encoding.appendData(name().isEmpty() ? "x" : (name() + ".x"), m_xPos);1321 encoding.appendData(name().isEmpty() ? "y" : (name() + ".y"), m_yPos);1322 if (!name().isEmpty() && !value().isEmpty())1323 encoding.appendData(name(), value());1324 return true;1325 }1326 break;1327 1328 case SUBMIT:1329 if (m_activeSubmit) {1330 String enc_str = valueWithDefault();1331 encoding.appendData(name(), enc_str);1332 return true;1333 }1334 break;1335 1336 case FILE: {1337 unsigned numFiles = m_fileList->length();1338 if (!multipart) {1339 // Send only the basenames.1340 // 4.10.16.4 and 4.10.16.6 sections in HTML5.1341 1342 // Unlike the multipart case, we have no special1343 // handling for the empty fileList because Netscape1344 // doesn't support for non-multipart submission of1345 // file inputs, and Firefox doesn't add "name=" query1346 // parameter.1347 1348 for (unsigned i = 0; i < numFiles; ++i) {1349 encoding.appendData(name(), m_fileList->item(i)->fileName());1350 }1351 return true;1352 }1353 1354 // If no filename at all is entered, return successful but empty.1355 // Null would be more logical, but Netscape posts an empty file. Argh.1356 if (!numFiles) {1357 encoding.appendBlob(name(), File::create(""));1358 return true;1359 }1360 1361 for (unsigned i = 0; i < numFiles; ++i)1362 encoding.appendBlob(name(), m_fileList->item(i));1363 1316 return true; 1317 } 1318 break; 1319 1320 case SUBMIT: 1321 if (m_activeSubmit) { 1322 String encstr = valueWithDefault(); 1323 encoding.appendData(name(), encstr); 1324 return true; 1325 } 1326 break; 1327 1328 case FILE: { 1329 unsigned numFiles = m_fileList->length(); 1330 if (!multipart) { 1331 // Send only the basenames. 1332 // 4.10.16.4 and 4.10.16.6 sections in HTML5. 1333 1334 // Unlike the multipart case, we have no special 1335 // handling for the empty fileList because Netscape 1336 // doesn't support for non-multipart submission of 1337 // file inputs, and Firefox doesn't add "name=" query 1338 // parameter. 1339 1340 for (unsigned i = 0; i < numFiles; ++i) 1341 encoding.appendData(name(), m_fileList->item(i)->fileName()); 1342 return true; 1343 } 1344 1345 // If no filename at all is entered, return successful but empty. 1346 // Null would be more logical, but Netscape posts an empty file. Argh. 1347 if (!numFiles) { 1348 encoding.appendBlob(name(), File::create("")); 1349 return true; 1350 } 1351 1352 for (unsigned i = 0; i < numFiles; ++i) 1353 encoding.appendBlob(name(), m_fileList->item(i)); 1354 return true; 1364 1355 } 1365 1356 } … … 1441 1432 } 1442 1433 1443 void HTMLInputElement::setIndeterminate(bool _indeterminate)1434 void HTMLInputElement::setIndeterminate(bool newValue) 1444 1435 { 1445 1436 // Only checkboxes and radio buttons honor indeterminate. 1446 if (!allowsIndeterminate() || indeterminate() == _indeterminate)1437 if (!allowsIndeterminate() || indeterminate() == newValue) 1447 1438 return; 1448 1439 1449 m_indeterminate = _indeterminate;1440 m_indeterminate = newValue; 1450 1441 1451 1442 setNeedsStyleRecalc(); … … 1493 1484 if (inputType() == CHECKBOX || inputType() == RADIO) 1494 1485 return checked() ? "on" : ""; 1495 elseif (inputType() == RANGE)1486 if (inputType() == RANGE) 1496 1487 return serializeForNumberType(StepRange(this).defaultValue()); 1497 1488 } … … 1506 1497 if (v.isNull()) { 1507 1498 switch (inputType()) { 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1499 case BUTTON: 1500 case CHECKBOX: 1501 case COLOR: 1502 case DATE: 1503 case DATETIME: 1504 case DATETIMELOCAL: 1505 case EMAIL: 1506 case FILE: 1507 case HIDDEN: 1508 case IMAGE: 1509 case ISINDEX: 1510 case MONTH: 1511 case NUMBER: 1512 case PASSWORD: 1513 case RADIO: 1514 case RANGE: 1515 case SEARCH: 1516 case TELEPHONE: 1517 case TEXT: 1518 case TIME: 1519 case URL: 1520 case WEEK: 1521 break; 1522 case RESET: 1523 v = resetButtonDefaultLabel(); 1524 break; 1525 case SUBMIT: 1526 v = submitButtonDefaultLabel(); 1527 break; 1537 1528 } 1538 1529 } … … 1953 1944 { 1954 1945 switch (inputType()) { 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1946 case BUTTON: 1947 case CHECKBOX: 1948 case HIDDEN: 1949 case IMAGE: 1950 case RADIO: 1951 case RESET: 1952 case SUBMIT: 1953 return false; 1954 case COLOR: 1955 case DATE: 1956 case DATETIME: 1957 case DATETIMELOCAL: 1958 case EMAIL: 1959 case FILE: 1960 case ISINDEX: 1961 case MONTH: 1962 case NUMBER: 1963 case PASSWORD: 1964 case RANGE: 1965 case SEARCH: 1966 case TELEPHONE: 1967 case TEXT: 1968 case TIME: 1969 case URL: 1970 case WEEK: 1971 return true; 1981 1972 } 1982 1973 return false; … … 2153 2144 if (charCode == '\r') { 2154 2145 switch (inputType()) { 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2146 case CHECKBOX: 2147 case COLOR: 2148 case DATE: 2149 case DATETIME: 2150 case DATETIMELOCAL: 2151 case EMAIL: 2152 case HIDDEN: 2153 case ISINDEX: 2154 case MONTH: 2155 case NUMBER: 2156 case PASSWORD: 2157 case RANGE: 2158 case SEARCH: 2159 case TELEPHONE: 2160 case TEXT: 2161 case TIME: 2162 case URL: 2163 case WEEK: 2164 // Simulate mouse click on the default form button for enter for these types of elements. 2165 clickDefaultFormButton = true; 2166 break; 2167 case BUTTON: 2168 case FILE: 2169 case IMAGE: 2170 case RESET: 2171 case SUBMIT: 2172 // Simulate mouse click for enter for these types of elements. 2173 clickElement = true; 2174 break; 2175 case RADIO: 2176 break; // Don't do anything for enter on a radio button. 2186 2177 } 2187 2178 } else if (charCode == ' ') { 2188 2179 switch (inputType()) { 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2180 case BUTTON: 2181 case CHECKBOX: 2182 case FILE: 2183 case IMAGE: 2184 case RESET: 2185 case SUBMIT: 2186 case RADIO: 2187 // Prevent scrolling down the page. 2188 evt->setDefaultHandled(); 2189 return; 2190 default: 2191 break; 2201 2192 } 2202 2193 } … … 2214 2205 if (key == "U+0020") { 2215 2206 switch (inputType()) { 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2207 case BUTTON: 2208 case CHECKBOX: 2209 case FILE: 2210 case IMAGE: 2211 case RESET: 2212 case SUBMIT: 2213 case RADIO: 2214 setActive(true, true); 2215 // No setDefaultHandled(), because IE dispatches a keypress in this case 2216 // and the caller will only dispatch a keypress if we don't call setDefaultHandled. 2217 return; 2218 default: 2219 break; 2229 2220 } 2230 2221 } … … 2272 2263 if (key == "U+0020") { 2273 2264 switch (inputType()) { 2274 case BUTTON: 2275 case CHECKBOX: 2276 case FILE: 2277 case IMAGE: 2278 case RESET: 2279 case SUBMIT: 2280 // Simulate mouse click for spacebar for these types of elements. 2281 // The AppKit already does this for some, but not all, of them. 2265 case BUTTON: 2266 case CHECKBOX: 2267 case FILE: 2268 case IMAGE: 2269 case RESET: 2270 case SUBMIT: 2271 // Simulate mouse click for spacebar for these types of elements. 2272 // The AppKit already does this for some, but not all, of them. 2273 clickElement = true; 2274 break; 2275 case RADIO: 2276 // If an unselected radio is tabbed into (because the entire group has nothing 2277 // checked, or because of some explicit .focus() call), then allow space to check it. 2278 if (!checked()) 2282 2279 clickElement = true; 2283 break; 2284 case RADIO: 2285 // If an unselected radio is tabbed into (because the entire group has nothing 2286 // checked, or because of some explicit .focus() call), then allow space to check it. 2287 if (!checked()) 2288 clickElement = true; 2289 break; 2290 case COLOR: 2291 case DATE: 2292 case DATETIME: 2293 case DATETIMELOCAL: 2294 case EMAIL: 2295 case HIDDEN: 2296 case ISINDEX: 2297 case MONTH: 2298 case NUMBER: 2299 case PASSWORD: 2300 case RANGE: 2301 case SEARCH: 2302 case TELEPHONE: 2303 case TEXT: 2304 case TIME: 2305 case URL: 2306 case WEEK: 2307 break; 2280 break; 2281 case COLOR: 2282 case DATE: 2283 case DATETIME: 2284 case DATETIMELOCAL: 2285 case EMAIL: 2286 case HIDDEN: 2287 case ISINDEX: 2288 case MONTH: 2289 case NUMBER: 2290 case PASSWORD: 2291 case RANGE: 2292 case SEARCH: 2293 case TELEPHONE: 2294 case TEXT: 2295 case TIME: 2296 case URL: 2297 case WEEK: 2298 break; 2308 2299 } 2309 2300 } … … 2464 2455 } 2465 2456 2466 void HTMLInputElement::setSize(unsigned _size)2467 { 2468 setAttribute(sizeAttr, String::number( _size));2457 void HTMLInputElement::setSize(unsigned size) 2458 { 2459 setAttribute(sizeAttr, String::number(size)); 2469 2460 } 2470 2461 … … 2542 2533 2543 2534 switch (inputType()) { 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2535 case CHECKBOX: 2536 case DATE: 2537 case DATETIME: 2538 case DATETIMELOCAL: 2539 case EMAIL: 2540 case FILE: 2541 case MONTH: 2542 case NUMBER: 2543 case PASSWORD: 2544 case RADIO: 2545 case SEARCH: 2546 case TELEPHONE: 2547 case TEXT: 2548 case TIME: 2549 case URL: 2550 case WEEK: 2551 return true; 2552 case BUTTON: 2553 case COLOR: 2554 case HIDDEN: 2555 case IMAGE: 2556 case ISINDEX: 2557 case RANGE: 2558 case RESET: 2559 case SUBMIT: 2560 return false; 2570 2561 } 2571 2562 … … 2766 2757 return 0; 2767 2758 } 2768 #endif 2759 #endif // ENABLE(DATALIST) 2769 2760 2770 2761 } // namespace
Note: See TracChangeset
for help on using the changeset viewer.