KTextEditor
highlightinterface.h
Go to the documentation of this file.
00001 /* This file is part of the KDE project 00002 Copyright (C) 2009 Milian Wolff <mail@milianw.de> 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Library General Public 00006 License as published by the Free Software Foundation; either 00007 version 2 of the License, or (at your option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to 00016 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00017 Boston, MA 02110-1301, USA. 00018 */ 00019 00020 #ifndef KDELIBS_KTEXTEDITOR_HIGHLIGHTINTERFACE_H 00021 #define KDELIBS_KTEXTEDITOR_HIGHLIGHTINTERFACE_H 00022 00023 #include <ktexteditor/ktexteditor_export.h> 00024 00025 #include <ktexteditor/attribute.h> 00026 #include <ktexteditor/cursor.h> 00027 00028 namespace KTextEditor 00029 { 00030 00031 class Document; 00032 00064 class KTEXTEDITOR_EXPORT HighlightInterface 00065 { 00066 public: 00068 enum DefaultStyle { 00069 dsNormal, 00070 dsKeyword, 00071 dsDataType, 00072 dsDecVal, 00073 dsBaseN, 00074 dsFloat, 00075 dsChar, 00076 dsString, 00077 dsComment, 00078 dsOthers, 00079 dsAlert, 00080 dsFunction, 00081 dsRegionMarker, 00082 dsError 00083 }; 00084 00088 HighlightInterface(); 00089 00093 virtual ~HighlightInterface(); 00094 00098 virtual Attribute::Ptr defaultStyle(const DefaultStyle ds) const = 0; 00099 00104 struct AttributeBlock { 00105 AttributeBlock(const int _start, const int _length, const Attribute::Ptr & _attribute) 00106 : start(_start), length(_length), attribute(_attribute) 00107 { 00108 } 00110 int start; 00112 int length; 00114 Attribute::Ptr attribute; 00115 }; 00116 00122 virtual QList<AttributeBlock> lineAttributes(const unsigned int line) = 0; 00123 00136 virtual QStringList embeddedHighlightingModes() const = 0; 00137 00149 virtual QString highlightingModeAt(const Cursor &position) = 0; 00150 }; 00151 00152 } 00153 00154 Q_DECLARE_INTERFACE(KTextEditor::HighlightInterface, "org.kde.KTextEditor.HighlightInterface") 00155 00156 #endif // KDELIBS_KTEXTEDITOR_HIGHLIGHTINTERFACE_H 00157 00158 // kate: space-indent on; indent-width 2; replace-tabs on;
KDE 4.6 API Reference