/*
* This file is part of NixNote
* Copyright 2009 Randy Baumgarte
*
* This file may be licensed under the terms of of the
* GNU General Public License Version 2 (the ``GPL'').
*
* Software distributed under the License is distributed
* on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
* express or implied. See the GPL for the specific language
* governing rights and limitations.
*
* You should have received a copy of the GPL along with this
* program. If not, go to http://www.gnu.org/licenses/gpl.html
* or write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
package cx.fbn.nevernote.gui;
import com.trolltech.qt.core.QRegExp;
import com.trolltech.qt.core.Qt;
import com.trolltech.qt.gui.QBrush;
import com.trolltech.qt.gui.QColor;
import com.trolltech.qt.gui.QFont;
import com.trolltech.qt.gui.QSyntaxHighlighter;
import com.trolltech.qt.gui.QTextCharFormat;
import com.trolltech.qt.gui.QTextDocument;
public class Highlighter extends QSyntaxHighlighter {
public class HighlightingRule {
public QRegExp pattern;
public QTextCharFormat format;
public HighlightingRule(QRegExp pattern, QTextCharFormat format) {
this.pattern = pattern;
this.format = format;
}
}
public Highlighter(QTextDocument parent) {
super(parent);
}
@Override
protected void highlightBlock(String text) {
QTextCharFormat format = new QTextCharFormat();
QBrush brush = new QBrush(QColor.blue, Qt.BrushStyle.SolidPattern);
format.setForeground(brush);
format.setFontWeight(QFont.Weight.Bold.value());
int index = text.indexOf("<");
while (index >= 0) {
int length = text.indexOf(">", index)-index+1;
setFormat(index, length, format);
index = text.indexOf("<", index+1);
}
setCurrentBlockState(0);
}
}