umbrello  2.39.2
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 
17 class QPaintEvent;
18 class QResizeEvent;
19 class QSize;
20 class QWidget;
21 
23 class LineNumberArea;
24 
25 class CodeTextEdit : public QPlainTextEdit
26 {
27  Q_OBJECT
28 
29 public:
30  explicit CodeTextEdit(QWidget *parent = 0);
31 
32  void lineNumberAreaPaintEvent(QPaintEvent *event);
33  int lineNumberAreaWidth();
34 
35 protected:
36  void resizeEvent(QResizeEvent *event);
37 
38 private slots:
39  void updateLineNumberAreaWidth(int newBlockCount);
40  void highlightCurrentLine();
41  void updateLineNumberArea(const QRect &, int);
42 
43 private:
44  QWidget *m_lineNumberArea;
46 };
47 
48 
49 class LineNumberArea : public QWidget
50 {
51 public:
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 
60 protected:
61  void paintEvent(QPaintEvent *event) {
63  }
64 
65 private:
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