qscidocument.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. // This defines the interface to the QsciDocument class.
  2. //
  3. // Copyright (c) 2017 Riverbank Computing Limited <info@riverbankcomputing.com>
  4. //
  5. // This file is part of QScintilla.
  6. //
  7. // This file may be used under the terms of the GNU General Public License
  8. // version 3.0 as published by the Free Software Foundation and appearing in
  9. // the file LICENSE included in the packaging of this file. Please review the
  10. // following information to ensure the GNU General Public License version 3.0
  11. // requirements will be met: http://www.gnu.org/copyleft/gpl.html.
  12. //
  13. // If you do not wish to use this file under the terms of the GPL version 3.0
  14. // then you may purchase a commercial license. For more information contact
  15. // info@riverbankcomputing.com.
  16. //
  17. // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  18. // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  19. #ifndef QSCIDOCUMENT_H
  20. #define QSCIDOCUMENT_H
  21. #include <Qsci/qsciglobal.h>
  22. class QsciScintillaBase;
  23. class QsciDocumentP;
  24. //! \brief The QsciDocument class represents a document to be edited.
  25. //!
  26. //! It is an opaque class that can be attached to multiple instances of
  27. //! QsciScintilla to create different simultaneous views of the same document.
  28. //! QsciDocument uses implicit sharing so that copying class instances is a
  29. //! cheap operation.
  30. class QSCINTILLA_EXPORT QsciDocument
  31. {
  32. public:
  33. //! Create a new unattached document.
  34. QsciDocument();
  35. virtual ~QsciDocument();
  36. QsciDocument(const QsciDocument &);
  37. QsciDocument &operator=(const QsciDocument &);
  38. private:
  39. friend class QsciScintilla;
  40. void attach(const QsciDocument &that);
  41. void detach();
  42. void display(QsciScintillaBase *qsb, const QsciDocument *from);
  43. void undisplay(QsciScintillaBase *qsb);
  44. bool isModified() const;
  45. void setModified(bool m);
  46. QsciDocumentP *pdoc;
  47. };
  48. #endif