LayoutText.h 680 B

123456789101112131415161718192021222324252627282930
  1. #pragma once
  2. #include <LibHTML/Layout/LayoutNode.h>
  3. #include <LibHTML/DOM/Text.h>
  4. class LayoutText : public LayoutNode {
  5. public:
  6. explicit LayoutText(const Text&);
  7. virtual ~LayoutText() override;
  8. const Text& node() const { return static_cast<const Text&>(*LayoutNode::node()); }
  9. const String& text() const;
  10. virtual const char* class_name() const override { return "LayoutText"; }
  11. virtual bool is_text() const final { return true; }
  12. virtual void layout() override;
  13. struct Run {
  14. Point pos;
  15. String text;
  16. };
  17. const Vector<Run>& runs() const { return m_runs; }
  18. private:
  19. void compute_runs();
  20. Vector<Run> m_runs;
  21. };