diff options
author | Ben Murdoch <benm@google.com> | 2011-05-13 16:23:25 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-05-16 11:35:02 +0100 |
commit | 65f03d4f644ce73618e5f4f50dd694b26f55ae12 (patch) | |
tree | f478babb801e720de7bfaee23443ffe029f58731 /Source/WebCore/html/shadow/SliderThumbElement.cpp | |
parent | 47de4a2fb7262c7ebdb9cd133ad2c54c187454d0 (diff) | |
download | external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.zip external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.tar.gz external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.tar.bz2 |
Merge WebKit at r75993: Initial merge by git.
Change-Id: I602bbdc3974787a3b0450456a30a7868286921c3
Diffstat (limited to 'Source/WebCore/html/shadow/SliderThumbElement.cpp')
-rw-r--r-- | Source/WebCore/html/shadow/SliderThumbElement.cpp | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/Source/WebCore/html/shadow/SliderThumbElement.cpp b/Source/WebCore/html/shadow/SliderThumbElement.cpp index d29d257..0402e89 100644 --- a/Source/WebCore/html/shadow/SliderThumbElement.cpp +++ b/Source/WebCore/html/shadow/SliderThumbElement.cpp @@ -37,6 +37,7 @@ #include "Frame.h" #include "MouseEvent.h" #include "RenderSlider.h" +#include "RenderTheme.h" #if PLATFORM(ANDROID) && ENABLE(TOUCH_EVENTS) #include "TouchEvent.h" @@ -44,14 +45,58 @@ namespace WebCore { +// FIXME: Find a way to cascade appearance (see the layout method) and get rid of this class. +class RenderSliderThumb : public RenderBlock { +public: + RenderSliderThumb(Node*); + virtual void layout(); +}; + + +RenderSliderThumb::RenderSliderThumb(Node* node) + : RenderBlock(node) +{ +} + +void RenderSliderThumb::layout() +{ + // FIXME: Hard-coding this cascade of appearance is bad, because it's something + // that CSS usually does. We need to find a way to express this in CSS. + RenderStyle* parentStyle = parent()->style(); + if (parentStyle->appearance() == SliderVerticalPart) + style()->setAppearance(SliderThumbVerticalPart); + else if (parentStyle->appearance() == SliderHorizontalPart) + style()->setAppearance(SliderThumbHorizontalPart); + else if (parentStyle->appearance() == MediaSliderPart) + style()->setAppearance(MediaSliderThumbPart); + else if (parentStyle->appearance() == MediaVolumeSliderPart) + style()->setAppearance(MediaVolumeSliderThumbPart); + + if (style()->hasAppearance()) { + // FIXME: This should pass the style, not the renderer, to the theme. + theme()->adjustSliderThumbSize(this); + } + RenderBlock::layout(); +} + +RenderObject* SliderThumbElement::createRenderer(RenderArena* arena, RenderStyle*) +{ + return new (arena) RenderSliderThumb(this); +} + void SliderThumbElement::defaultEventHandler(Event* event) { +<<<<<<< HEAD if (!event->isMouseEvent() #if PLATFORM(ANDROID) && ENABLE(TOUCH_EVENTS) && !event->isTouchEvent() #endif ) { ShadowBlockElement::defaultEventHandler(event); +======= + if (!event->isMouseEvent()) { + HTMLDivElement::defaultEventHandler(event); +>>>>>>> WebKit.org @ r75993 return; } @@ -126,7 +171,7 @@ void SliderThumbElement::defaultEventHandler(Event* event) } } - ShadowBlockElement::defaultEventHandler(event); + HTMLDivElement::defaultEventHandler(event); } void SliderThumbElement::detach() @@ -135,7 +180,7 @@ void SliderThumbElement::detach() if (Frame* frame = document()->frame()) frame->eventHandler()->setCapturingMouseEventsNode(0); } - ShadowBlockElement::detach(); + HTMLDivElement::detach(); } } |