umbrello 2.34.70-5524f40e1
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
codetextedit.h
Go to the documentation of this file.
1/*
2 CodeTextEdit: Text edit widget with line numbers and highlighted current line.
3 SPDX-FileCopyrightText: 2010 Nokia Corporation and /or its subsidiary(-ies) <qt-info@nokia.com>
4 Code based on examples of the Qt Toolkit under BSD license,
5 <http://doc.qt.nokia.com/4.6/widgets-codeeditor.html>.
6 SPDX-FileCopyrightText: 2010 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
7
8 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
9*/
10
11#ifndef CODETEXTEDIT_H
12#define CODETEXTEDIT_H
13
14#include <QObject>
15#include <QPlainTextEdit>
16
17class QPaintEvent;
18class QResizeEvent;
19class QSize;
20class QWidget;
21
23class LineNumberArea;
24
25class CodeTextEdit : public QPlainTextEdit
26{
27 Q_OBJECT
28
29public:
30 explicit CodeTextEdit(QWidget *parent = 0);
31
32 void lineNumberAreaPaintEvent(QPaintEvent *event);
34
35protected:
36 void resizeEvent(QResizeEvent *event);
37
38private slots:
39 void updateLineNumberAreaWidth(int newBlockCount);
41 void updateLineNumberArea(const QRect &, int);
42
43private:
46};
47
48
49class LineNumberArea : public QWidget
50{
51public:
52 explicit LineNumberArea(CodeTextEdit *editor) : QWidget(editor) {
53 m_codeEditor = editor;
54 }
55
56 QSize sizeHint() const {
57 return QSize(m_codeEditor->lineNumberAreaWidth(), 0);
58 }
59
60protected:
61 void paintEvent(QPaintEvent *event) {
63 }
64
65private:
67};
68
69#endif // CODETEXTBOX_H
Definition: codetextedit.h:26
void lineNumberAreaPaintEvent(QPaintEvent *event)
Definition: codetextedit.cpp:117
CodeTextEdit(QWidget *parent=0)
Definition: codetextedit.cpp:21
void highlightCurrentLine()
Definition: codetextedit.cpp:95
CodeTextHighlighter * m_highlighter
Definition: codetextedit.h:45
void updateLineNumberArea(const QRect &, int)
Definition: codetextedit.cpp:67
void resizeEvent(QResizeEvent *event)
Definition: codetextedit.cpp:84
QWidget * m_lineNumberArea
Definition: codetextedit.h:44
int lineNumberAreaWidth()
Definition: codetextedit.cpp:39
void updateLineNumberAreaWidth(int newBlockCount)
Definition: codetextedit.cpp:58
Definition: codetexthighlighter.h:21
Definition: codetextedit.h:50
QSize sizeHint() const
Definition: codetextedit.h:56
CodeTextEdit * m_codeEditor
Definition: codetextedit.h:66
void paintEvent(QPaintEvent *event)
Definition: codetextedit.h:61
LineNumberArea(CodeTextEdit *editor)
Definition: codetextedit.h:52