Maki
Formally verfied low-code orchestration
Loading...
Searching...
No Matches
code_viewer.h
1#pragma once
2
3#include <QPlainTextEdit>
4
6
7class CodeViewer : public QPlainTextEdit
8{
9 Q_OBJECT
10
11public:
12 CodeViewer(QWidget* parent = nullptr);
13
14 void lineNumberAreaPaintEvent(QPaintEvent* event);
15 int lineNumberAreaWidth() const;
16
17protected:
18 void resizeEvent(QResizeEvent* event) override;
19
20private slots:
21 void updateLineNumberAreaWidth(int newBlockCount);
22 void highlightCurrentLine();
23 void updateLineNumberArea(const QRect& rect, int dy);
24
25private:
26 LineNumberArea* mLineNumberArea = nullptr;
27};
28
29class LineNumberArea : public QWidget
30{
31public:
32 LineNumberArea(CodeViewer* editor)
33 : QWidget(editor)
34 , mEditor(editor)
35 {
36 }
37
38 QSize sizeHint() const override
39 {
40 return QSize(mEditor->lineNumberAreaWidth(), 0);
41 }
42
43protected:
44 void paintEvent(QPaintEvent* event) override
45 {
46 mEditor->lineNumberAreaPaintEvent(event);
47 }
48
49private:
50 CodeViewer* mEditor = nullptr;
51};
Definition code_viewer.h:8
Definition code_viewer.h:30