kjsembed
numberedtextview.h
Go to the documentation of this file.00001 /* This file is part of the KDE libraries 00002 Copyright (C) 2005, 2006 Ian Reinhart Geiser <geiseri@kde.org> 00003 Copyright (C) 2005, 2006 Matt Broadstone <mbroadst@gmail.com> 00004 Copyright (C) 2005, 2006 Richard J. Moore <rich@kde.org> 00005 Copyright (C) 2005, 2006 Erik L. Bunce <kde@bunce.us> 00006 00007 This library is free software; you can redistribute it and/or 00008 modify it under the terms of the GNU Library General Public 00009 License as published by the Free Software Foundation; either 00010 version 2 of the License, or (at your option) any later version. 00011 00012 This library is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00015 Library General Public License for more details. 00016 00017 You should have received a copy of the GNU Library General Public License 00018 along with this library; see the file COPYING.LIB. If not, write to 00019 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00020 Boston, MA 02110-1301, USA. 00021 */ 00022 00023 #ifndef NUMBERED_TEXT_VIEW_H 00024 #define NUMBERED_TEXT_VIEW_H 00025 00026 #include <QtGui/QFrame> 00027 #include <QtGui/QPixmap> 00028 #include <QtGui/QTextCursor> 00029 00030 class QTextEdit; 00031 class QHBoxLayout; 00032 00036 class NumberBar : public QWidget 00037 { 00038 Q_OBJECT 00039 00040 public: 00041 NumberBar( QWidget *parent ); 00042 ~NumberBar(); 00043 00044 void setCurrentLine( int lineno ); 00045 void setStopLine( int lineno ); 00046 void setBugLine( int lineno ); 00047 00048 int currentLine() const; 00049 int stopLine() const; 00050 int bugLine() const; 00051 00052 void setTextEdit( QTextEdit *edit ); 00053 void paintEvent( QPaintEvent *ev ); 00054 00055 00056 00057 protected: 00058 bool event( QEvent *ev ); 00059 00060 private: 00061 QTextEdit *edit; 00062 QPixmap stopMarker; 00063 QPixmap currentMarker; 00064 QPixmap bugMarker; 00065 int m_stopLine; 00066 int m_currentLine; 00067 int m_bugLine; 00068 QRect stopRect; 00069 QRect currentRect; 00070 QRect bugRect; 00071 }; 00072 00076 class NumberedTextView : public QFrame 00077 { 00078 Q_OBJECT 00079 Q_PROPERTY( QString text READ text WRITE setText ) 00080 Q_PROPERTY( int currentLine READ currentLine WRITE setCurrentLine ) 00081 Q_PROPERTY( int stopLine READ stopLine WRITE setStopLine ) 00082 Q_PROPERTY( int bugLine READ bugLine WRITE setBugLine ) 00083 public: 00084 NumberedTextView( QWidget *parent = 0 ); 00085 ~NumberedTextView(); 00086 00088 QTextEdit *textEdit() const { return view; } 00089 00094 void setCurrentLine( int lineno ); 00095 00100 void setStopLine( int lineno ); 00101 00106 void setBugLine( int lineno ); 00107 00108 int currentLine() const; 00109 int stopLine() const; 00110 int bugLine() const; 00111 00113 bool eventFilter( QObject *obj, QEvent *event ); 00114 00115 QString text() const; 00116 void setText( const QString &text ); 00117 00118 00119 Q_SIGNALS: 00124 void mouseHover( const QString &word ); 00125 00131 void mouseHover( const QPoint &pos, const QString &word ); 00132 00133 protected Q_SLOTS: 00135 void textChanged( int pos, int added, int removed ); 00136 00137 private: 00138 QTextEdit *view; 00139 NumberBar *numbers; 00140 QHBoxLayout *box; 00141 //int m_currentLine; 00142 QTextCursor highlight; 00143 }; 00144 00145 00146 #endif // NUMBERED_TEXT_VIEW_H 00147 00148