summaryrefslogtreecommitdiff
path: root/Source/WebCore/html/shadow/SliderThumbElement.h
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
committerLorry Tar Creator <lorry-tar-importer@lorry>2017-06-27 06:07:23 +0000
commit1bf1084f2b10c3b47fd1a588d85d21ed0eb41d0c (patch)
tree46dcd36c86e7fbc6e5df36deb463b33e9967a6f7 /Source/WebCore/html/shadow/SliderThumbElement.h
parent32761a6cee1d0dee366b885b7b9c777e67885688 (diff)
downloadWebKitGtk-tarball-master.tar.gz
Diffstat (limited to 'Source/WebCore/html/shadow/SliderThumbElement.h')
-rw-r--r--Source/WebCore/html/shadow/SliderThumbElement.h77
1 files changed, 42 insertions, 35 deletions
diff --git a/Source/WebCore/html/shadow/SliderThumbElement.h b/Source/WebCore/html/shadow/SliderThumbElement.h
index a061d63b8..f8a99b375 100644
--- a/Source/WebCore/html/shadow/SliderThumbElement.h
+++ b/Source/WebCore/html/shadow/SliderThumbElement.h
@@ -29,11 +29,9 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef SliderThumbElement_h
-#define SliderThumbElement_h
+#pragma once
#include "HTMLDivElement.h"
-#include "HTMLNames.h"
#include "RenderBlockFlow.h"
#include <wtf/Forward.h>
@@ -45,15 +43,15 @@ class TouchEvent;
class SliderThumbElement final : public HTMLDivElement {
public:
- static PassRefPtr<SliderThumbElement> create(Document&);
+ static Ref<SliderThumbElement> create(Document&);
void setPositionFromValue();
void dragFrom(const LayoutPoint&);
HTMLInputElement* hostInput() const;
void setPositionFromPoint(const LayoutPoint&);
-#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS)
- void handleTouchEvent(TouchEvent*);
+#if ENABLE(IOS_TOUCH_EVENTS)
+ void handleTouchEvent(TouchEvent&);
void disabledAttributeChanged();
#endif
@@ -61,81 +59,90 @@ public:
private:
SliderThumbElement(Document&);
- virtual RenderPtr<RenderElement> createElementRenderer(PassRef<RenderStyle>) override;
- virtual PassRefPtr<Element> cloneElementWithoutAttributesAndChildren() override;
- virtual bool isDisabledFormControl() const override;
- virtual bool matchesReadOnlyPseudoClass() const override;
- virtual bool matchesReadWritePseudoClass() const override;
- virtual Element* focusDelegate() override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
+
+ Ref<Element> cloneElementWithoutAttributesAndChildren(Document&) override;
+ bool isDisabledFormControl() const override;
+ bool matchesReadWritePseudoClass() const override;
+ Element* focusDelegate() override;
#if !PLATFORM(IOS)
- virtual void defaultEventHandler(Event*) override;
- virtual bool willRespondToMouseMoveEvents() override;
- virtual bool willRespondToMouseClickEvents() override;
+ void defaultEventHandler(Event&) override;
+ bool willRespondToMouseMoveEvents() override;
+ bool willRespondToMouseClickEvents() override;
#endif
-#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS)
- virtual void didAttachRenderers() override;
+#if ENABLE(IOS_TOUCH_EVENTS)
+ void didAttachRenderers() override;
#endif
- virtual void willDetachRenderers() override;
+ void willDetachRenderers() override;
- virtual const AtomicString& shadowPseudoId() const override;
+ std::optional<ElementStyle> resolveCustomStyle(const RenderStyle&, const RenderStyle*) override;
+ const AtomicString& shadowPseudoId() const override;
void startDragging();
void stopDragging();
-#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS)
+#if ENABLE(IOS_TOUCH_EVENTS)
unsigned exclusiveTouchIdentifier() const;
void setExclusiveTouchIdentifier(unsigned);
void clearExclusiveTouchIdentifier();
- void handleTouchStart(TouchEvent*);
- void handleTouchMove(TouchEvent*);
- void handleTouchEndAndCancel(TouchEvent*);
+ void handleTouchStart(TouchEvent&);
+ void handleTouchMove(TouchEvent&);
+ void handleTouchEndAndCancel(TouchEvent&);
bool shouldAcceptTouchEvents();
void registerForTouchEvents();
void unregisterForTouchEvents();
#endif
+ AtomicString m_shadowPseudoId;
bool m_inDragMode;
-#if ENABLE(TOUCH_EVENTS) && PLATFORM(IOS)
+#if ENABLE(IOS_TOUCH_EVENTS)
// FIXME: Currently it is safe to use 0, but this may need to change
- // if touch identifers change in the future and can be 0.
+ // if touch identifiers change in the future and can be 0.
static const unsigned NoIdentifier = 0;
unsigned m_exclusiveTouchIdentifier;
bool m_isRegisteredAsTouchEventListener;
#endif
};
-inline PassRefPtr<SliderThumbElement> SliderThumbElement::create(Document& document)
+inline Ref<SliderThumbElement> SliderThumbElement::create(Document& document)
{
- return adoptRef(new SliderThumbElement(document));
+ return adoptRef(*new SliderThumbElement(document));
}
// --------------------------------
class RenderSliderThumb final : public RenderBlockFlow {
public:
- RenderSliderThumb(SliderThumbElement&, PassRef<RenderStyle>);
- void updateAppearance(RenderStyle* parentStyle);
+ RenderSliderThumb(SliderThumbElement&, RenderStyle&&);
+ void updateAppearance(const RenderStyle* parentStyle);
private:
- virtual bool isSliderThumb() const override;
+ bool isSliderThumb() const override;
};
// --------------------------------
class SliderContainerElement final : public HTMLDivElement {
public:
- static PassRefPtr<SliderContainerElement> create(Document&);
+ static Ref<SliderContainerElement> create(Document&);
private:
SliderContainerElement(Document&);
- virtual RenderPtr<RenderElement> createElementRenderer(PassRef<RenderStyle>) override;
- virtual const AtomicString& shadowPseudoId() const override;
+ RenderPtr<RenderElement> createElementRenderer(RenderStyle&&, const RenderTreePosition&) override;
+ std::optional<ElementStyle> resolveCustomStyle(const RenderStyle&, const RenderStyle*) override;
+ const AtomicString& shadowPseudoId() const override;
+ bool isSliderContainerElement() const override { return true; }
+
+ AtomicString m_shadowPseudoId;
};
-}
+} // namespace WebCore
-#endif
+SPECIALIZE_TYPE_TRAITS_BEGIN(WebCore::SliderContainerElement)
+ static bool isType(const WebCore::Element& element) { return element.isSliderContainerElement(); }
+ static bool isType(const WebCore::Node& node) { return is<WebCore::Element>(node) && isType(downcast<WebCore::Element>(node)); }
+SPECIALIZE_TYPE_TRAITS_END()