diff options
Diffstat (limited to 'FoldingCodeExample/editor.h')
-rw-r--r-- | FoldingCodeExample/editor.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/FoldingCodeExample/editor.h b/FoldingCodeExample/editor.h new file mode 100644 index 0000000..97e176d --- /dev/null +++ b/FoldingCodeExample/editor.h @@ -0,0 +1,46 @@ +#ifndef EDITOR_H +#define EDITOR_H + +#include <QPlainTextEdit> +#include <QPlainTextDocumentLayout> +#include <QTextBlock> +#include <QSize> +#include <QDebug> + +class QPaintEvent; +class QMouseEvent; + +class EditorLayout : public QPlainTextDocumentLayout +{ + Q_OBJECT + +public: + EditorLayout(QTextDocument *document) : QPlainTextDocumentLayout(document) { + } + + void emitDocumentSizeChanged() { + emit documentSizeChanged(documentSize()); + } +}; + +class Editor : public QPlainTextEdit +{ + Q_OBJECT + +public: + Editor(); + +protected: + void paintEvent(QPaintEvent *event); + void mousePressEvent(QMouseEvent *event); + +private slots: + void updateCursorPosition(); + +private: + QTextBlock foldedBlockAt(const QPoint &point); + + bool folded; +}; + +#endif |