/* * Copyright (c) 2023, Tim Flynn * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace Web::Painting { class VideoPaintable final : public MediaPaintable { GC_CELL(VideoPaintable, MediaPaintable); GC_DECLARE_ALLOCATOR(VideoPaintable); public: static GC::Ref create(Layout::VideoBox const&); virtual void paint(PaintContext&, PaintPhase) const override; Layout::VideoBox& layout_box(); Layout::VideoBox const& layout_box() const; private: VideoPaintable(Layout::VideoBox const&); void paint_placeholder_video_controls(PaintContext&, DevicePixelRect video_rect, Optional const& mouse_position) const; }; }