ImagePaintable.h 793 B

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <LibWeb/Layout/ImageBox.h>
  8. #include <LibWeb/Painting/PaintableBox.h>
  9. namespace Web::Painting {
  10. class ImagePaintable final
  11. : public PaintableBox
  12. , public DOM::Document::ViewportClient {
  13. JS_CELL(ImagePaintable, PaintableBox);
  14. public:
  15. static JS::NonnullGCPtr<ImagePaintable> create(Layout::ImageBox const&);
  16. virtual void paint(PaintContext&, PaintPhase) const override;
  17. Layout::ImageBox const& layout_box() const;
  18. private:
  19. // ^JS::Cell
  20. virtual void finalize() override;
  21. // ^Document::ViewportClient
  22. virtual void did_set_viewport_rect(CSSPixelRect const&) final;
  23. ImagePaintable(Layout::ImageBox const&);
  24. };
  25. }