| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2004, 2005, 2006 Nikolas Zimmermann <zimmermann@kde.org> |
| 3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> | 3 * Copyright (C) 2004, 2005, 2006, 2007 Rob Buis <buis@kde.org> |
| 4 * Copyright (C) 2007 Apple Inc. All rights reserved. | 4 * Copyright (C) 2007 Apple Inc. All rights reserved. |
| 5 * Copyright (C) Research In Motion Limited 2011. All rights reserved. | 5 * Copyright (C) Research In Motion Limited 2011. All rights reserved. |
| 6 * | 6 * |
| 7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
| 8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
| 9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
| 10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
| (...skipping 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 342 ASSERT_NOT_REACHED(); | 342 ASSERT_NOT_REACHED(); |
| 343 return 0; | 343 return 0; |
| 344 } | 344 } |
| 345 | 345 |
| 346 float SVGLengthContext::convertValueFromUserUnitsToCHS(float value) const | 346 float SVGLengthContext::convertValueFromUserUnitsToCHS(float value) const |
| 347 { | 347 { |
| 348 const ComputedStyle* style = computedStyleForLengthResolving(m_context); | 348 const ComputedStyle* style = computedStyleForLengthResolving(m_context); |
| 349 if (!style) | 349 if (!style) |
| 350 return 0; | 350 return 0; |
| 351 | 351 |
| 352 float zeroWidth = style->fontMetrics().zeroWidth() / style->effectiveZoom(); | 352 float zeroWidth = style->getFontMetrics().zeroWidth() / style->effectiveZoom
(); |
| 353 if (!zeroWidth) | 353 if (!zeroWidth) |
| 354 return 0; | 354 return 0; |
| 355 | 355 |
| 356 return value / zeroWidth; | 356 return value / zeroWidth; |
| 357 } | 357 } |
| 358 | 358 |
| 359 float SVGLengthContext::convertValueFromCHSToUserUnits(float value) const | 359 float SVGLengthContext::convertValueFromCHSToUserUnits(float value) const |
| 360 { | 360 { |
| 361 const ComputedStyle* style = computedStyleForLengthResolving(m_context); | 361 const ComputedStyle* style = computedStyleForLengthResolving(m_context); |
| 362 if (!style) | 362 if (!style) |
| 363 return 0; | 363 return 0; |
| 364 | 364 |
| 365 return value * style->fontMetrics().zeroWidth() / style->effectiveZoom(); | 365 return value * style->getFontMetrics().zeroWidth() / style->effectiveZoom(); |
| 366 } | 366 } |
| 367 | 367 |
| 368 float SVGLengthContext::convertValueFromUserUnitsToEXS(float value) const | 368 float SVGLengthContext::convertValueFromUserUnitsToEXS(float value) const |
| 369 { | 369 { |
| 370 const ComputedStyle* style = computedStyleForLengthResolving(m_context); | 370 const ComputedStyle* style = computedStyleForLengthResolving(m_context); |
| 371 if (!style) | 371 if (!style) |
| 372 return 0; | 372 return 0; |
| 373 | 373 |
| 374 // Use of ceil allows a pixel match to the W3Cs expected output of coords-un
its-03-b.svg | 374 // Use of ceil allows a pixel match to the W3Cs expected output of coords-un
its-03-b.svg |
| 375 // if this causes problems in real world cases maybe it would be best to rem
ove this | 375 // if this causes problems in real world cases maybe it would be best to rem
ove this |
| 376 float xHeight = ceilf(style->fontMetrics().xHeight() / style->effectiveZoom(
)); | 376 float xHeight = ceilf(style->getFontMetrics().xHeight() / style->effectiveZo
om()); |
| 377 if (!xHeight) | 377 if (!xHeight) |
| 378 return 0; | 378 return 0; |
| 379 | 379 |
| 380 return value / xHeight; | 380 return value / xHeight; |
| 381 } | 381 } |
| 382 | 382 |
| 383 float SVGLengthContext::convertValueFromEXSToUserUnits(float value) const | 383 float SVGLengthContext::convertValueFromEXSToUserUnits(float value) const |
| 384 { | 384 { |
| 385 const ComputedStyle* style = computedStyleForLengthResolving(m_context); | 385 const ComputedStyle* style = computedStyleForLengthResolving(m_context); |
| 386 if (!style) | 386 if (!style) |
| 387 return 0; | 387 return 0; |
| 388 | 388 |
| 389 // Use of ceil allows a pixel match to the W3Cs expected output of coords-un
its-03-b.svg | 389 // Use of ceil allows a pixel match to the W3Cs expected output of coords-un
its-03-b.svg |
| 390 // if this causes problems in real world cases maybe it would be best to rem
ove this | 390 // if this causes problems in real world cases maybe it would be best to rem
ove this |
| 391 return value * ceilf(style->fontMetrics().xHeight() / style->effectiveZoom()
); | 391 return value * ceilf(style->getFontMetrics().xHeight() / style->effectiveZoo
m()); |
| 392 } | 392 } |
| 393 | 393 |
| 394 bool SVGLengthContext::determineViewport(FloatSize& viewportSize) const | 394 bool SVGLengthContext::determineViewport(FloatSize& viewportSize) const |
| 395 { | 395 { |
| 396 if (!m_context) | 396 if (!m_context) |
| 397 return false; | 397 return false; |
| 398 | 398 |
| 399 // Root <svg> element lengths are resolved against the top level viewport. | 399 // Root <svg> element lengths are resolved against the top level viewport. |
| 400 if (m_context->isOutermostSVGSVGElement()) { | 400 if (m_context->isOutermostSVGSVGElement()) { |
| 401 viewportSize = toSVGSVGElement(m_context)->currentViewportSize(); | 401 viewportSize = toSVGSVGElement(m_context)->currentViewportSize(); |
| 402 return true; | 402 return true; |
| 403 } | 403 } |
| 404 | 404 |
| 405 // Take size from nearest viewport element. | 405 // Take size from nearest viewport element. |
| 406 SVGElement* viewportElement = m_context->viewportElement(); | 406 SVGElement* viewportElement = m_context->viewportElement(); |
| 407 if (!isSVGSVGElement(viewportElement)) | 407 if (!isSVGSVGElement(viewportElement)) |
| 408 return false; | 408 return false; |
| 409 | 409 |
| 410 const SVGSVGElement& svg = toSVGSVGElement(*viewportElement); | 410 const SVGSVGElement& svg = toSVGSVGElement(*viewportElement); |
| 411 viewportSize = svg.currentViewBoxRect().size(); | 411 viewportSize = svg.currentViewBoxRect().size(); |
| 412 if (viewportSize.isEmpty()) | 412 if (viewportSize.isEmpty()) |
| 413 viewportSize = svg.currentViewportSize(); | 413 viewportSize = svg.currentViewportSize(); |
| 414 | 414 |
| 415 return true; | 415 return true; |
| 416 } | 416 } |
| 417 | 417 |
| 418 } // namespace blink | 418 } // namespace blink |
| OLD | NEW |