diff options
author | Feng Qian <> | 2009-04-10 18:11:29 -0700 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2009-04-10 18:11:29 -0700 |
commit | 8f72e70a9fd78eec56623b3a62e68f16b7b27e28 (patch) | |
tree | 181bf9a400c30a1bf34ea6d72560e8d00111d549 /WebCore/rendering/RenderTheme.cpp | |
parent | 7ed56f225e0ade046e1c2178977f72b2d896f196 (diff) | |
download | external_webkit-8f72e70a9fd78eec56623b3a62e68f16b7b27e28.zip external_webkit-8f72e70a9fd78eec56623b3a62e68f16b7b27e28.tar.gz external_webkit-8f72e70a9fd78eec56623b3a62e68f16b7b27e28.tar.bz2 |
AI 145796: Land the WebKit merge @r42026.
Automated import of CL 145796
Diffstat (limited to 'WebCore/rendering/RenderTheme.cpp')
-rw-r--r-- | WebCore/rendering/RenderTheme.cpp | 52 |
1 files changed, 34 insertions, 18 deletions
diff --git a/WebCore/rendering/RenderTheme.cpp b/WebCore/rendering/RenderTheme.cpp index e7fa5de..f82f48c 100644 --- a/WebCore/rendering/RenderTheme.cpp +++ b/WebCore/rendering/RenderTheme.cpp @@ -581,7 +581,7 @@ ControlStates RenderTheme::controlStatesForRenderer(const RenderObject* o) const bool RenderTheme::isActive(const RenderObject* o) const { - Node* node = o->element(); + Node* node = o->node(); if (!node) return false; @@ -598,28 +598,43 @@ bool RenderTheme::isActive(const RenderObject* o) const bool RenderTheme::isChecked(const RenderObject* o) const { - if (!o->element()) + if (!o->node() || !o->node()->isElementNode()) return false; - return o->element()->isChecked(); + + InputElement* inputElement = toInputElement(static_cast<Element*>(o->node())); + if (!inputElement) + return false; + + return inputElement->isChecked(); } bool RenderTheme::isIndeterminate(const RenderObject* o) const { - if (!o->element()) + if (!o->node() || !o->node()->isElementNode()) + return false; + + InputElement* inputElement = toInputElement(static_cast<Element*>(o->node())); + if (!inputElement) return false; - return o->element()->isIndeterminate(); + + return inputElement->isIndeterminate(); } bool RenderTheme::isEnabled(const RenderObject* o) const { - if (!o->element()) + if (!o->node() || !o->node()->isElementNode()) + return true; + + FormControlElement* formControlElement = toFormControlElement(static_cast<Element*>(o->node())); + if (!formControlElement) return true; - return o->element()->isEnabled(); + + return formControlElement->isEnabled(); } bool RenderTheme::isFocused(const RenderObject* o) const { - Node* node = o->element(); + Node* node = o->node(); if (!node) return false; Document* document = node->document(); @@ -629,23 +644,28 @@ bool RenderTheme::isFocused(const RenderObject* o) const bool RenderTheme::isPressed(const RenderObject* o) const { - if (!o->element()) + if (!o->node()) return false; - return o->element()->active(); + return o->node()->active(); } bool RenderTheme::isReadOnlyControl(const RenderObject* o) const { - if (!o->element()) + if (!o->node() || !o->node()->isElementNode()) + return false; + + FormControlElement* formControlElement = toFormControlElement(static_cast<Element*>(o->node())); + if (!formControlElement) return false; - return o->element()->isReadOnlyControl(); + + return formControlElement->isReadOnlyControl(); } bool RenderTheme::isHovered(const RenderObject* o) const { - if (!o->element()) + if (!o->node()) return false; - return o->element()->hovered(); + return o->node()->hovered(); } bool RenderTheme::isDefault(const RenderObject* o) const @@ -721,10 +741,6 @@ void RenderTheme::adjustMenuListButtonStyle(CSSStyleSelector*, RenderStyle*, Ele { } -void RenderTheme::adjustButtonInnerStyle(RenderStyle*) const -{ -} - void RenderTheme::adjustSliderTrackStyle(CSSStyleSelector*, RenderStyle*, Element*) const { } |