OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
5 * (C) 2006 Allan Sandfeld Jensen (kde@carewolf.com) | 5 * (C) 2006 Allan Sandfeld Jensen (kde@carewolf.com) |
6 * (C) 2006 Samuel Weinig (sam.weinig@gmail.com) | 6 * (C) 2006 Samuel Weinig (sam.weinig@gmail.com) |
7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. |
8 * Copyright (C) 2010 Google Inc. All rights reserved. | 8 * Copyright (C) 2010 Google Inc. All rights reserved. |
9 * Copyright (C) Research In Motion Limited 2011-2012. All rights reserved. | 9 * Copyright (C) Research In Motion Limited 2011-2012. All rights reserved. |
10 * | 10 * |
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
401 { | 401 { |
402 Document& document = this->document(); | 402 Document& document = this->document(); |
403 | 403 |
404 if (document.printing() || !document.frame()->selection().isFocusedAndActive
()) | 404 if (document.printing() || !document.frame()->selection().isFocusedAndActive
()) |
405 return; | 405 return; |
406 | 406 |
407 if (paintInfo.context->paintingDisabled() && !paintInfo.context->updatingCon
trolTints()) | 407 if (paintInfo.context->paintingDisabled() && !paintInfo.context->updatingCon
trolTints()) |
408 return; | 408 return; |
409 | 409 |
410 Element* focusedElement = document.focusedElement(); | 410 Element* focusedElement = document.focusedElement(); |
411 if (!focusedElement || !focusedElement->hasTagName(areaTag)) | 411 if (!isHTMLAreaElement(focusedElement)) |
412 return; | 412 return; |
413 | 413 |
414 HTMLAreaElement* areaElement = toHTMLAreaElement(focusedElement); | 414 HTMLAreaElement& areaElement = toHTMLAreaElement(*focusedElement); |
415 if (areaElement->imageElement() != node()) | 415 if (areaElement.imageElement() != node()) |
416 return; | 416 return; |
417 | 417 |
418 // Even if the theme handles focus ring drawing for entire elements, it won'
t do it for | 418 // Even if the theme handles focus ring drawing for entire elements, it won'
t do it for |
419 // an area within an image, so we don't call RenderTheme::supportsFocusRing
here. | 419 // an area within an image, so we don't call RenderTheme::supportsFocusRing
here. |
420 | 420 |
421 Path path = areaElement->computePath(this); | 421 Path path = areaElement.computePath(this); |
422 if (path.isEmpty()) | 422 if (path.isEmpty()) |
423 return; | 423 return; |
424 | 424 |
425 RenderStyle* areaElementStyle = areaElement->computedStyle(); | 425 RenderStyle* areaElementStyle = areaElement.computedStyle(); |
426 unsigned short outlineWidth = areaElementStyle->outlineWidth(); | 426 unsigned short outlineWidth = areaElementStyle->outlineWidth(); |
427 if (!outlineWidth) | 427 if (!outlineWidth) |
428 return; | 428 return; |
429 | 429 |
430 // FIXME: Clip path instead of context when Skia pathops is ready. | 430 // FIXME: Clip path instead of context when Skia pathops is ready. |
431 // https://crbug.com/251206 | 431 // https://crbug.com/251206 |
432 GraphicsContextStateSaver savedContext(*paintInfo.context); | 432 GraphicsContextStateSaver savedContext(*paintInfo.context); |
433 paintInfo.context->clip(absoluteContentBox()); | 433 paintInfo.context->clip(absoluteContentBox()); |
434 paintInfo.context->drawFocusRing(path, outlineWidth, | 434 paintInfo.context->drawFocusRing(path, outlineWidth, |
435 areaElementStyle->outlineOffset(), | 435 areaElementStyle->outlineOffset(), |
(...skipping 21 matching lines...) Expand all Loading... |
457 void RenderImage::paintIntoRect(GraphicsContext* context, const LayoutRect& rect
) | 457 void RenderImage::paintIntoRect(GraphicsContext* context, const LayoutRect& rect
) |
458 { | 458 { |
459 IntRect alignedRect = pixelSnappedIntRect(rect); | 459 IntRect alignedRect = pixelSnappedIntRect(rect); |
460 if (!m_imageResource->hasImage() || m_imageResource->errorOccurred() || alig
nedRect.width() <= 0 || alignedRect.height() <= 0) | 460 if (!m_imageResource->hasImage() || m_imageResource->errorOccurred() || alig
nedRect.width() <= 0 || alignedRect.height() <= 0) |
461 return; | 461 return; |
462 | 462 |
463 RefPtr<Image> img = m_imageResource->image(alignedRect.width(), alignedRect.
height()); | 463 RefPtr<Image> img = m_imageResource->image(alignedRect.width(), alignedRect.
height()); |
464 if (!img || img->isNull()) | 464 if (!img || img->isNull()) |
465 return; | 465 return; |
466 | 466 |
467 HTMLImageElement* imageElt = (node() && node()->hasTagName(imgTag)) ? toHTML
ImageElement(node()) : 0; | 467 HTMLImageElement* imageElt = isHTMLImageElement(node()) ? toHTMLImageElement
(node()) : 0; |
468 CompositeOperator compositeOperator = imageElt ? imageElt->compositeOperator
() : CompositeSourceOver; | 468 CompositeOperator compositeOperator = imageElt ? imageElt->compositeOperator
() : CompositeSourceOver; |
469 Image* image = m_imageResource->image().get(); | 469 Image* image = m_imageResource->image().get(); |
470 bool useLowQualityScaling = shouldPaintAtLowQuality(context, image, image, a
lignedRect.size()); | 470 bool useLowQualityScaling = shouldPaintAtLowQuality(context, image, image, a
lignedRect.size()); |
471 | 471 |
472 InspectorInstrumentation::willPaintImage(this); | 472 InspectorInstrumentation::willPaintImage(this); |
473 context->drawImage(m_imageResource->image(alignedRect.width(), alignedRect.h
eight()).get(), alignedRect, compositeOperator, shouldRespectImageOrientation(),
useLowQualityScaling); | 473 context->drawImage(m_imageResource->image(alignedRect.width(), alignedRect.h
eight()).get(), alignedRect, compositeOperator, shouldRespectImageOrientation(),
useLowQualityScaling); |
474 InspectorInstrumentation::didPaintImage(this); | 474 InspectorInstrumentation::didPaintImage(this); |
475 } | 475 } |
476 | 476 |
477 bool RenderImage::boxShadowShouldBeAppliedToBackground(BackgroundBleedAvoidance
bleedAvoidance, InlineFlowBox*) const | 477 bool RenderImage::boxShadowShouldBeAppliedToBackground(BackgroundBleedAvoidance
bleedAvoidance, InlineFlowBox*) const |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 return foregroundIsKnownToBeOpaqueInRect(backgroundPaintedExtent(), 0); | 515 return foregroundIsKnownToBeOpaqueInRect(backgroundPaintedExtent(), 0); |
516 } | 516 } |
517 | 517 |
518 LayoutUnit RenderImage::minimumReplacedHeight() const | 518 LayoutUnit RenderImage::minimumReplacedHeight() const |
519 { | 519 { |
520 return m_imageResource->errorOccurred() ? intrinsicSize().height() : LayoutU
nit(); | 520 return m_imageResource->errorOccurred() ? intrinsicSize().height() : LayoutU
nit(); |
521 } | 521 } |
522 | 522 |
523 HTMLMapElement* RenderImage::imageMap() const | 523 HTMLMapElement* RenderImage::imageMap() const |
524 { | 524 { |
525 HTMLImageElement* i = node() && node()->hasTagName(imgTag) ? toHTMLImageElem
ent(node()) : 0; | 525 HTMLImageElement* i = isHTMLImageElement(node()) ? toHTMLImageElement(node()
) : 0; |
526 return i ? i->treeScope().getImageMap(i->fastGetAttribute(usemapAttr)) : 0; | 526 return i ? i->treeScope().getImageMap(i->fastGetAttribute(usemapAttr)) : 0; |
527 } | 527 } |
528 | 528 |
529 bool RenderImage::nodeAtPoint(const HitTestRequest& request, HitTestResult& resu
lt, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOf
fset, HitTestAction hitTestAction) | 529 bool RenderImage::nodeAtPoint(const HitTestRequest& request, HitTestResult& resu
lt, const HitTestLocation& locationInContainer, const LayoutPoint& accumulatedOf
fset, HitTestAction hitTestAction) |
530 { | 530 { |
531 HitTestResult tempResult(result.hitTestLocation()); | 531 HitTestResult tempResult(result.hitTestLocation()); |
532 bool inside = RenderReplaced::nodeAtPoint(request, tempResult, locationInCon
tainer, accumulatedOffset, hitTestAction); | 532 bool inside = RenderReplaced::nodeAtPoint(request, tempResult, locationInCon
tainer, accumulatedOffset, hitTestAction); |
533 | 533 |
534 if (tempResult.innerNode() && node()) { | 534 if (tempResult.innerNode() && node()) { |
535 if (HTMLMapElement* map = imageMap()) { | 535 if (HTMLMapElement* map = imageMap()) { |
(...skipping 12 matching lines...) Expand all Loading... |
548 if (inside) | 548 if (inside) |
549 result = tempResult; | 549 result = tempResult; |
550 return inside; | 550 return inside; |
551 } | 551 } |
552 | 552 |
553 void RenderImage::updateAltText() | 553 void RenderImage::updateAltText() |
554 { | 554 { |
555 if (!node()) | 555 if (!node()) |
556 return; | 556 return; |
557 | 557 |
558 if (node()->hasTagName(inputTag)) | 558 if (isHTMLInputElement(*node())) |
559 m_altText = toHTMLInputElement(node())->altText(); | 559 m_altText = toHTMLInputElement(node())->altText(); |
560 else if (node()->hasTagName(imgTag)) | 560 else if (isHTMLImageElement(*node())) |
561 m_altText = toHTMLImageElement(node())->altText(); | 561 m_altText = toHTMLImageElement(node())->altText(); |
562 } | 562 } |
563 | 563 |
564 void RenderImage::layout() | 564 void RenderImage::layout() |
565 { | 565 { |
566 LayoutRectRecorder recorder(*this); | 566 LayoutRectRecorder recorder(*this); |
567 RenderReplaced::layout(); | 567 RenderReplaced::layout(); |
568 updateInnerContentRect(); | 568 updateInnerContentRect(); |
569 } | 569 } |
570 | 570 |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
626 return 0; | 626 return 0; |
627 | 627 |
628 ImageResource* cachedImage = m_imageResource->cachedImage(); | 628 ImageResource* cachedImage = m_imageResource->cachedImage(); |
629 if (cachedImage && cachedImage->image() && cachedImage->image()->isSVGImage(
)) | 629 if (cachedImage && cachedImage->image() && cachedImage->image()->isSVGImage(
)) |
630 return toSVGImage(cachedImage->image())->embeddedContentBox(); | 630 return toSVGImage(cachedImage->image())->embeddedContentBox(); |
631 | 631 |
632 return 0; | 632 return 0; |
633 } | 633 } |
634 | 634 |
635 } // namespace WebCore | 635 } // namespace WebCore |
OLD | NEW |