summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/rendering/RenderProgress.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/RenderProgress.cpp')
-rw-r--r--Source/WebCore/rendering/RenderProgress.cpp28
1 files changed, 12 insertions, 16 deletions
diff --git a/Source/WebCore/rendering/RenderProgress.cpp b/Source/WebCore/rendering/RenderProgress.cpp
index 4194e2b..2a8e6f3 100644
--- a/Source/WebCore/rendering/RenderProgress.cpp
+++ b/Source/WebCore/rendering/RenderProgress.cpp
@@ -36,6 +36,16 @@ using namespace std;
namespace WebCore {
+IntRect RenderProgressBarValuePart::preferredFrameRect()
+{
+ return toRenderProgress(parent())->valuePartRect();
+}
+
+bool RenderProgressBarValuePart::shouldBeHidden()
+{
+ return !toRenderProgress(parent())->shouldHaveParts();
+}
+
RenderProgress::RenderProgress(HTMLProgressElement* element)
: RenderIndicator(element)
, m_position(-1)
@@ -49,23 +59,10 @@ RenderProgress::RenderProgress(HTMLProgressElement* element)
RenderProgress::~RenderProgress()
{
- if (m_valuePart)
- m_valuePart->detach();
}
void RenderProgress::updateFromElement()
{
- if (!m_valuePart) {
- m_valuePart = ShadowBlockElement::createForPart(static_cast<HTMLElement*>(node()), PROGRESS_BAR_VALUE);
- if (m_valuePart->renderer())
- addChild(m_valuePart->renderer());
- }
-
- if (shouldHaveParts())
- style()->setAppearance(NoControlPart);
- else if (m_valuePart->renderer())
- m_valuePart->renderer()->style()->setVisibility(HIDDEN);
-
HTMLProgressElement* element = progressElement();
if (m_position == element->position())
return;
@@ -102,7 +99,8 @@ void RenderProgress::paint(PaintInfo& paintInfo, int tx, int ty)
void RenderProgress::layoutParts()
{
- m_valuePart->layoutAsPart(valuePartRect());
+ for (RenderObject* child = firstChild(); child; child = child->nextSibling())
+ child->layout();
updateAnimationState();
}
@@ -110,8 +108,6 @@ bool RenderProgress::shouldHaveParts() const
{
if (!style()->hasAppearance())
return true;
- if (ShadowBlockElement::partShouldHaveStyle(this, PROGRESS_BAR_VALUE))
- return true;
return false;
}