qsyntaxhighlighter.h

上传用户:binglan008
上传日期:2007-01-28
资源大小:53508k
文件大小:3k
源码类别:Linux/Unix编程
开发平台:MultiPlatform
  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.
  4. **
  5. ** This file is part of the QtGui module of the Qt Toolkit.
  6. **
  7. ** This file may be used under the terms of the GNU General Public
  8. ** License version 2.0 as published by the Free Software Foundation
  9. ** and appearing in the file LICENSE.GPL included in the packaging of
  10. ** this file.  Please review the following information to ensure GNU
  11. ** General Public Licensing requirements will be met:
  12. ** http://trolltech.com/products/qt/licenses/licensing/opensource/
  13. **
  14. ** If you are unsure which license is appropriate for your use, please
  15. ** review the following information:
  16. ** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
  17. ** or contact the sales department at sales@trolltech.com.
  18. **
  19. ** In addition, as a special exception, Trolltech gives you certain
  20. ** additional rights. These rights are described in the Trolltech GPL
  21. ** Exception version 1.0, which can be found at
  22. ** http://www.trolltech.com/products/qt/gplexception/ and in the file
  23. ** GPL_EXCEPTION.txt in this package.
  24. **
  25. ** In addition, as a special exception, Trolltech, as the sole copyright
  26. ** holder for Qt Designer, grants users of the Qt/Eclipse Integration
  27. ** plug-in the right for the Qt/Eclipse Integration to link to
  28. ** functionality provided by Qt Designer and its related libraries.
  29. **
  30. ** Trolltech reserves all rights not expressly granted herein.
  31. **
  32. ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
  33. ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  34. **
  35. ****************************************************************************/
  36. #ifndef QSYNTAXHIGHLIGHTER_H
  37. #define QSYNTAXHIGHLIGHTER_H
  38. #include <QtCore/qglobal.h>
  39. #ifndef QT_NO_SYNTAXHIGHLIGHTER
  40. #include <QtCore/qobject.h>
  41. #include <QtGui/qtextobject.h>
  42. QT_BEGIN_HEADER
  43. QT_MODULE(Gui)
  44. class QTextDocument;
  45. class QSyntaxHighlighterPrivate;
  46. class QTextCharFormat;
  47. class QFont;
  48. class QColor;
  49. class QTextBlockUserData;
  50. class QTextEdit;
  51. class Q_GUI_EXPORT QSyntaxHighlighter : public QObject
  52. {
  53.     Q_OBJECT
  54.     Q_DECLARE_PRIVATE(QSyntaxHighlighter)
  55. public:
  56.     QSyntaxHighlighter(QObject *parent);
  57.     QSyntaxHighlighter(QTextDocument *parent);
  58.     QSyntaxHighlighter(QTextEdit *parent);
  59.     virtual ~QSyntaxHighlighter();
  60.     void setDocument(QTextDocument *doc);
  61.     QTextDocument *document() const;
  62. public Q_SLOTS:
  63.     void rehighlight();
  64. protected:
  65.     virtual void highlightBlock(const QString &text) = 0;
  66.     void setFormat(int start, int count, const QTextCharFormat &format);
  67.     void setFormat(int start, int count, const QColor &color);
  68.     void setFormat(int start, int count, const QFont &font);
  69.     QTextCharFormat format(int pos) const;
  70.     int previousBlockState() const;
  71.     int currentBlockState() const;
  72.     void setCurrentBlockState(int newState);
  73.     void setCurrentBlockUserData(QTextBlockUserData *data);
  74.     QTextBlockUserData *currentBlockUserData() const;
  75. private:
  76.     Q_DISABLE_COPY(QSyntaxHighlighter)
  77.     Q_PRIVATE_SLOT(d_func(), void _q_reformatBlocks(int from, int charsRemoved, int charsAdded))
  78.     Q_PRIVATE_SLOT(d_func(), void _q_delayedRehighlight())
  79. };
  80. QT_END_HEADER
  81. #endif // QT_NO_SYNTAXHIGHLIGHTER
  82. #endif // QSYNTAXHIGHLIGHTER_H