/* * Copyright (c) 2022, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include namespace Web::Painting { class TextPaintable : public Paintable { public: static NonnullRefPtr create(Layout::TextNode const&); Layout::TextNode const& layout_node() const { return static_cast(Paintable::layout_node()); } virtual bool wants_mouse_events() const override; virtual DOM::Node* mouse_event_target() const override; virtual DispatchEventOfSameName handle_mousedown(Badge, const Gfx::IntPoint&, unsigned button, unsigned modifiers) override; virtual DispatchEventOfSameName handle_mouseup(Badge, const Gfx::IntPoint&, unsigned button, unsigned modifiers) override; virtual DispatchEventOfSameName handle_mousemove(Badge, const Gfx::IntPoint&, unsigned button, unsigned modifiers) override; private: explicit TextPaintable(Layout::TextNode const&); }; }