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 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 | 184 |
185 StepRange stepRange(createStepRange(RejectAny)); | 185 StepRange stepRange(createStepRange(RejectAny)); |
186 | 186 |
187 | 187 |
188 // FIXME: We can't use stepUp() for the step value "any". So, we increase | 188 // FIXME: We can't use stepUp() for the step value "any". So, we increase |
189 // or decrease the value by 1/100 of the value range. Is it reasonable? | 189 // or decrease the value by 1/100 of the value range. Is it reasonable? |
190 const Decimal step = equalIgnoringCase(element().fastGetAttribute(stepAttr),
"any") ? (stepRange.maximum() - stepRange.minimum()) / 100 : stepRange.step(); | 190 const Decimal step = equalIgnoringCase(element().fastGetAttribute(stepAttr),
"any") ? (stepRange.maximum() - stepRange.minimum()) / 100 : stepRange.step(); |
191 const Decimal bigStep = std::max((stepRange.maximum() - stepRange.minimum())
/ 10, step); | 191 const Decimal bigStep = std::max((stepRange.maximum() - stepRange.minimum())
/ 10, step); |
192 | 192 |
193 bool isVertical = false; | 193 bool isVertical = false; |
194 if (element().renderer()) { | 194 if (element().layoutObject()) { |
195 ControlPart part = element().renderer()->style()->appearance(); | 195 ControlPart part = element().layoutObject()->style()->appearance(); |
196 isVertical = part == SliderVerticalPart; | 196 isVertical = part == SliderVerticalPart; |
197 } | 197 } |
198 | 198 |
199 Decimal newValue; | 199 Decimal newValue; |
200 if (key == "Up") | 200 if (key == "Up") |
201 newValue = current + step; | 201 newValue = current + step; |
202 else if (key == "Down") | 202 else if (key == "Down") |
203 newValue = current - step; | 203 newValue = current - step; |
204 else if (key == "Left") | 204 else if (key == "Left") |
205 newValue = isVertical ? current + step : current - step; | 205 newValue = isVertical ? current + step : current - step; |
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 | 319 |
320 inline Element* RangeInputType::sliderTrackElement() const | 320 inline Element* RangeInputType::sliderTrackElement() const |
321 { | 321 { |
322 return element().closedShadowRoot()->getElementById(ShadowElementNames::slid
erTrack()); | 322 return element().closedShadowRoot()->getElementById(ShadowElementNames::slid
erTrack()); |
323 } | 323 } |
324 | 324 |
325 void RangeInputType::listAttributeTargetChanged() | 325 void RangeInputType::listAttributeTargetChanged() |
326 { | 326 { |
327 m_tickMarkValuesDirty = true; | 327 m_tickMarkValuesDirty = true; |
328 Element* sliderTrackElement = this->sliderTrackElement(); | 328 Element* sliderTrackElement = this->sliderTrackElement(); |
329 if (sliderTrackElement->renderer()) | 329 if (sliderTrackElement->layoutObject()) |
330 sliderTrackElement->renderer()->setNeedsLayoutAndFullPaintInvalidation()
; | 330 sliderTrackElement->layoutObject()->setNeedsLayoutAndFullPaintInvalidati
on(); |
331 } | 331 } |
332 | 332 |
333 static bool decimalCompare(const Decimal& a, const Decimal& b) | 333 static bool decimalCompare(const Decimal& a, const Decimal& b) |
334 { | 334 { |
335 return a < b; | 335 return a < b; |
336 } | 336 } |
337 | 337 |
338 void RangeInputType::updateTickMarkValues() | 338 void RangeInputType::updateTickMarkValues() |
339 { | 339 { |
340 if (!m_tickMarkValuesDirty) | 340 if (!m_tickMarkValuesDirty) |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
384 right = middle; | 384 right = middle; |
385 } | 385 } |
386 const Decimal closestLeft = middle ? m_tickMarkValues[middle - 1] : Decimal:
:infinity(Decimal::Negative); | 386 const Decimal closestLeft = middle ? m_tickMarkValues[middle - 1] : Decimal:
:infinity(Decimal::Negative); |
387 const Decimal closestRight = middle != m_tickMarkValues.size() ? m_tickMarkV
alues[middle] : Decimal::infinity(Decimal::Positive); | 387 const Decimal closestRight = middle != m_tickMarkValues.size() ? m_tickMarkV
alues[middle] : Decimal::infinity(Decimal::Positive); |
388 if (closestRight - value < value - closestLeft) | 388 if (closestRight - value < value - closestLeft) |
389 return closestRight; | 389 return closestRight; |
390 return closestLeft; | 390 return closestLeft; |
391 } | 391 } |
392 | 392 |
393 } // namespace blink | 393 } // namespace blink |
OLD | NEW |