editinterface.h
00001 /* This file is part of the KDE libraries 00002 Copyright (C) 2001 Christoph Cullmann <cullmann@kde.org> 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 version 2 as published by the Free Software Foundation. 00007 00008 This library is distributed in the hope that it will be useful, 00009 but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00011 Library General Public License for more details. 00012 00013 You should have received a copy of the GNU Library General Public License 00014 along with this library; see the file COPYING.LIB. If not, write to 00015 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00016 Boston, MA 02110-1301, USA. 00017 */ 00018 00019 #ifndef __ktexteditor_editinterface_h__ 00020 #define __ktexteditor_editinterface_h__ 00021 00022 #include <tqstring.h> 00023 00024 #include <kdelibs_export.h> 00025 00026 namespace KTextEditor 00027 { 00028 00033 class KTEXTEDITOR_EXPORT EditInterface 00034 { 00035 friend class PrivateEditInterface; 00036 00037 public: 00038 EditInterface(); 00039 virtual ~EditInterface(); 00040 00041 uint editInterfaceNumber () const; 00042 00043 protected: 00044 void setEditInterfaceDCOPSuffix (const TQCString &suffix); 00045 00046 public: 00053 virtual TQString text () const = 0; 00054 00058 virtual TQString text ( uint startLine, uint startCol, uint endLine, uint endCol ) const = 0; 00059 00063 virtual TQString textLine ( uint line ) const = 0; 00064 00068 virtual uint numLines () const = 0; 00069 00073 virtual uint length () const = 0; 00074 00078 virtual int lineLength ( uint line ) const = 0; 00079 00084 virtual bool setText ( const TQString &text ) = 0; 00085 00090 virtual bool clear () = 0; 00091 00097 virtual bool insertText ( uint line, uint col, const TQString &text ) = 0; 00098 00103 virtual bool removeText ( uint startLine, uint startCol, uint endLine, uint endCol ) = 0; 00104 00109 virtual bool insertLine ( uint line, const TQString &text ) = 0; 00110 00114 virtual bool removeLine ( uint line ) = 0; 00115 00119 public: 00120 virtual void textChanged () = 0; 00121 00122 virtual void charactersInteractivelyInserted(int ,int ,const TQString&)=0; //line, col, characters if you don't support this, don't create a signal, just overload it. 00123 00127 private: 00128 class PrivateEditInterface *d; 00129 static uint globalEditInterfaceNumber; 00130 uint myEditInterfaceNumber; 00131 }; 00132 00133 KTEXTEDITOR_EXPORT EditInterface *editInterface (class Document *doc); 00134 00135 } 00136 00137 #endif