OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * Copyright (C) 2011 Apple Inc. All rights reserved. | 3 * Copyright (C) 2011 Apple Inc. All rights reserved. |
4 * | 4 * |
5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
7 * met: | 7 * met: |
8 * | 8 * |
9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
(...skipping 26 matching lines...) Expand all Loading... |
37 #include "core/InputTypeNames.h" | 37 #include "core/InputTypeNames.h" |
38 #include "core/accessibility/AXObjectCache.h" | 38 #include "core/accessibility/AXObjectCache.h" |
39 #include "core/events/KeyboardEvent.h" | 39 #include "core/events/KeyboardEvent.h" |
40 #include "core/events/MouseEvent.h" | 40 #include "core/events/MouseEvent.h" |
41 #include "core/events/ScopedEventQueue.h" | 41 #include "core/events/ScopedEventQueue.h" |
42 #include "core/dom/Touch.h" | 42 #include "core/dom/Touch.h" |
43 #include "core/events/TouchEvent.h" | 43 #include "core/events/TouchEvent.h" |
44 #include "core/dom/TouchList.h" | 44 #include "core/dom/TouchList.h" |
45 #include "core/dom/shadow/ShadowRoot.h" | 45 #include "core/dom/shadow/ShadowRoot.h" |
46 #include "core/html/HTMLDataListElement.h" | 46 #include "core/html/HTMLDataListElement.h" |
| 47 #include "core/html/HTMLDataListOptionsCollection.h" |
47 #include "core/html/HTMLDivElement.h" | 48 #include "core/html/HTMLDivElement.h" |
48 #include "core/html/HTMLInputElement.h" | 49 #include "core/html/HTMLInputElement.h" |
49 #include "core/html/HTMLOptionElement.h" | 50 #include "core/html/HTMLOptionElement.h" |
50 #include "core/html/forms/StepRange.h" | 51 #include "core/html/forms/StepRange.h" |
51 #include "core/html/parser/HTMLParserIdioms.h" | 52 #include "core/html/parser/HTMLParserIdioms.h" |
52 #include "core/html/shadow/ShadowElementNames.h" | 53 #include "core/html/shadow/ShadowElementNames.h" |
53 #include "core/html/shadow/SliderThumbElement.h" | 54 #include "core/html/shadow/SliderThumbElement.h" |
54 #include "core/rendering/RenderSlider.h" | 55 #include "core/rendering/RenderSlider.h" |
55 #include "platform/PlatformMouseEvent.h" | 56 #include "platform/PlatformMouseEvent.h" |
56 #include "wtf/MathExtras.h" | 57 #include "wtf/MathExtras.h" |
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
339 | 340 |
340 void RangeInputType::updateTickMarkValues() | 341 void RangeInputType::updateTickMarkValues() |
341 { | 342 { |
342 if (!m_tickMarkValuesDirty) | 343 if (!m_tickMarkValuesDirty) |
343 return; | 344 return; |
344 m_tickMarkValues.clear(); | 345 m_tickMarkValues.clear(); |
345 m_tickMarkValuesDirty = false; | 346 m_tickMarkValuesDirty = false; |
346 HTMLDataListElement* dataList = element().dataList(); | 347 HTMLDataListElement* dataList = element().dataList(); |
347 if (!dataList) | 348 if (!dataList) |
348 return; | 349 return; |
349 RefPtrWillBeRawPtr<HTMLCollection> options = dataList->options(); | 350 RefPtrWillBeRawPtr<HTMLDataListOptionsCollection> options = dataList->option
s(); |
350 m_tickMarkValues.reserveCapacity(options->length()); | 351 m_tickMarkValues.reserveCapacity(options->length()); |
351 for (unsigned i = 0; i < options->length(); ++i) { | 352 for (unsigned i = 0; i < options->length(); ++i) { |
352 Element* element = options->item(i); | 353 HTMLOptionElement* optionElement = options->item(i); |
353 HTMLOptionElement* optionElement = toHTMLOptionElement(element); | |
354 String optionValue = optionElement->value(); | 354 String optionValue = optionElement->value(); |
355 if (!this->element().isValidValue(optionValue)) | 355 if (!this->element().isValidValue(optionValue)) |
356 continue; | 356 continue; |
357 m_tickMarkValues.append(parseToNumber(optionValue, Decimal::nan())); | 357 m_tickMarkValues.append(parseToNumber(optionValue, Decimal::nan())); |
358 } | 358 } |
359 m_tickMarkValues.shrinkToFit(); | 359 m_tickMarkValues.shrinkToFit(); |
360 nonCopyingSort(m_tickMarkValues.begin(), m_tickMarkValues.end(), decimalComp
are); | 360 nonCopyingSort(m_tickMarkValues.begin(), m_tickMarkValues.end(), decimalComp
are); |
361 } | 361 } |
362 | 362 |
363 Decimal RangeInputType::findClosestTickMarkValue(const Decimal& value) | 363 Decimal RangeInputType::findClosestTickMarkValue(const Decimal& value) |
(...skipping 23 matching lines...) Expand all Loading... |
387 right = middle; | 387 right = middle; |
388 } | 388 } |
389 const Decimal closestLeft = middle ? m_tickMarkValues[middle - 1] : Decimal:
:infinity(Decimal::Negative); | 389 const Decimal closestLeft = middle ? m_tickMarkValues[middle - 1] : Decimal:
:infinity(Decimal::Negative); |
390 const Decimal closestRight = middle != m_tickMarkValues.size() ? m_tickMarkV
alues[middle] : Decimal::infinity(Decimal::Positive); | 390 const Decimal closestRight = middle != m_tickMarkValues.size() ? m_tickMarkV
alues[middle] : Decimal::infinity(Decimal::Positive); |
391 if (closestRight - value < value - closestLeft) | 391 if (closestRight - value < value - closestLeft) |
392 return closestRight; | 392 return closestRight; |
393 return closestLeft; | 393 return closestLeft; |
394 } | 394 } |
395 | 395 |
396 } // namespace blink | 396 } // namespace blink |
OLD | NEW |