13#include <QPlainTextEdit>
18class CodeEditor :
public QPlainTextEdit {
22 explicit CodeEditor(QWidget* parent =
nullptr);
24 void lineNumberAreaPaintEvent(QPaintEvent* event);
25 int lineNumberAreaWidth();
29 bool lineNumbersVisible()
const;
36 void resizeEvent(QResizeEvent* event)
override;
37 void changeEvent(QEvent* event)
override;
40 void updateLineNumberAreaWidth(
int newBlockCount);
41 void highlightCurrentLine();
42 void updateLineNumberArea(
const QRect& rect,
int dy);
46 bool showLineNumbers =
true;
47 bool lightTheme =
false;
50class LineNumberArea :
public QWidget {
53 : QWidget(editor), codeEditor(editor) {}
55 QSize sizeHint()
const override {
56 return QSize(codeEditor->lineNumberAreaWidth(), 0);
60 void paintEvent(QPaintEvent* event)
override {
61 codeEditor->lineNumberAreaPaintEvent(event);
Definition codeeditor.h:18
void setLightTheme(bool light)
Set whether to use light theme colors for line numbers and highlights.
Definition codeeditor.cpp:38
void setLineNumbersVisible(bool visible)
Show or hide the line number gutter.
Definition codeeditor.cpp:30
Definition codeeditor.h:50