Frame.h 720 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include <AK/Function.h>
  3. #include <AK/Noncopyable.h>
  4. #include <AK/RefPtr.h>
  5. #include <LibDraw/Rect.h>
  6. #include <LibDraw/Size.h>
  7. #include <LibHTML/TreeNode.h>
  8. class Document;
  9. class Frame : public TreeNode<Frame> {
  10. public:
  11. static NonnullRefPtr<Frame> create() { return adopt(*new Frame); }
  12. ~Frame();
  13. const Document* document() const { return m_document; }
  14. Document* document() { return m_document; }
  15. void set_document(Document*);
  16. const Size& size() const { return m_size; }
  17. void set_size(const Size&);
  18. void set_needs_display(const Rect&);
  19. Function<void(const Rect&)> on_set_needs_display;
  20. private:
  21. Frame();
  22. RefPtr<Document> m_document;
  23. Size m_size;
  24. };