TextDocument.h 736 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include <AK/ByteBuffer.h>
  3. #include <AK/NonnullRefPtr.h>
  4. #include <AK/RefCounted.h>
  5. #include <AK/String.h>
  6. #include <LibGUI/GTextDocument.h>
  7. class TextDocument : public RefCounted<TextDocument> {
  8. public:
  9. static NonnullRefPtr<TextDocument> construct_with_name(const String& name)
  10. {
  11. return adopt(*new TextDocument(name));
  12. }
  13. const String& name() const { return m_name; }
  14. const ByteBuffer& contents() const;
  15. Vector<int> find(const StringView&) const;
  16. const GTextDocument& document() const;
  17. private:
  18. explicit TextDocument(const String& name)
  19. : m_name(name)
  20. {
  21. }
  22. String m_name;
  23. mutable ByteBuffer m_contents;
  24. mutable RefPtr<GTextDocument> m_document;
  25. };