Eneboo - Documentación para desarrolladores
src/qt/src/widgets/qsyntaxhighlighter_p.h
Ir a la documentación de este archivo.
00001 /****************************************************************************
00002 ** $Id: qt/qsyntaxhighlighter_p.h   3.3.8   edited Jan 11 14:39 $
00003 **
00004 ** Definition of the internal QSyntaxHighlighterInternal class
00005 **
00006 ** Created : 031111
00007 **
00008 ** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
00009 **
00010 ** This file is part of the widgets module of the Qt GUI Toolkit.
00011 **
00012 ** This file may be distributed under the terms of the Q Public License
00013 ** as defined by Trolltech ASA of Norway and appearing in the file
00014 ** LICENSE.QPL included in the packaging of this file.
00015 **
00016 ** This file may be distributed and/or modified under the terms of the
00017 ** GNU General Public License version 2 as published by the Free Software
00018 ** Foundation and appearing in the file LICENSE.GPL included in the
00019 ** packaging of this file.
00020 **
00021 ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
00022 ** licenses may use this file in accordance with the Qt Commercial License
00023 ** Agreement provided with the Software.
00024 **
00025 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00026 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00027 **
00028 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
00029 **   information about Qt Commercial License Agreements.
00030 ** See http://www.trolltech.com/qpl/ for QPL licensing information.
00031 ** See http://www.trolltech.com/gpl/ for GPL licensing information.
00032 **
00033 ** Contact info@trolltech.com if any conditions of this licensing are
00034 ** not clear to you.
00035 **
00036 **********************************************************************/
00037 
00038 #ifndef QSYNTAXHIGHLIGHTER_P_H
00039 #define QSYNTAXHIGHLIGHTER_P_H
00040 
00041 #ifndef QT_NO_SYNTAXHIGHLIGHTER
00042 #include "qsyntaxhighlighter.h"
00043 #include "private/qrichtext_p.h"
00044 
00045 class QSyntaxHighlighterPrivate
00046 {
00047 public:
00048     QSyntaxHighlighterPrivate() :
00049         currentParagraph( -1 )
00050         {}
00051 
00052     int currentParagraph;
00053 };
00054 
00055 class QSyntaxHighlighterInternal : public QTextPreProcessor
00056 {
00057 public:
00058     QSyntaxHighlighterInternal( QSyntaxHighlighter *h ) : highlighter( h ) {}
00059     void process( QTextDocument *doc, QTextParagraph *p, int, bool invalidate ) {
00060         if ( p->prev() && p->prev()->endState() == -1 )
00061             process( doc, p->prev(), 0, FALSE );
00062 
00063         highlighter->para = p;
00064         QString text = p->string()->toString();
00065         int endState = p->prev() ? p->prev()->endState() : -2;
00066         int oldEndState = p->endState();
00067         highlighter->d->currentParagraph = p->paragId();
00068         p->setEndState( highlighter->highlightParagraph( text, endState ) );
00069         highlighter->d->currentParagraph = -1;
00070         highlighter->para = 0;
00071 
00072         p->setFirstPreProcess( FALSE );
00073         QTextParagraph *op = p;
00074         p = p->next();
00075         if ( (!!oldEndState || !!op->endState()) && oldEndState != op->endState() &&
00076              invalidate && p && !p->firstPreProcess() && p->endState() != -1 ) {
00077             while ( p ) {
00078                 if ( p->endState() == -1 )
00079                     return;
00080                 p->setEndState( -1 );
00081                 p = p->next();
00082             }
00083         }
00084     }
00085     QTextFormat *format( int ) { return 0; }
00086 
00087 private:
00088     QSyntaxHighlighter *highlighter;
00089 
00090     friend class QTextEdit;
00091 };
00092 
00093 #endif // QT_NO_SYNTAXHIGHLIGHTER
00094 #endif // QSYNTAXHIGHLIGHTER_P_H
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'