HTMLImageElement.h 956 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include <LibDraw/GraphicsBitmap.h>
  3. #include <LibDraw/ImageDecoder.h>
  4. #include <LibHTML/DOM/HTMLElement.h>
  5. class LayoutDocument;
  6. class HTMLImageElement : public HTMLElement {
  7. public:
  8. HTMLImageElement(Document&, const String& tag_name);
  9. virtual ~HTMLImageElement() override;
  10. virtual void parse_attribute(const String& name, const String& value) override;
  11. String alt() const { return attribute("alt"); }
  12. String src() const { return attribute("src"); }
  13. int preferred_width() const;
  14. int preferred_height() const;
  15. const GraphicsBitmap* bitmap() const;
  16. const ImageDecoder* image_decoder() const { return m_image_decoder; }
  17. void set_volatile(Badge<LayoutDocument>, bool);
  18. private:
  19. void load_image(const String& src);
  20. virtual RefPtr<LayoutNode> create_layout_node(const StyleProperties* parent_style) const override;
  21. RefPtr<ImageDecoder> m_image_decoder;
  22. ByteBuffer m_encoded_data;
  23. };