00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
#ifndef __ktexteditor_cursorinterface_h__
00020
#define __ktexteditor_cursorinterface_h__
00021
00022
#include <qptrlist.h>
00023
#include <qstring.h>
00024
00025
#include <kdelibs_export.h>
00026
00027
namespace KTextEditor
00028 {
00029
00033 class KTEXTEDITOR_EXPORT Cursor
00034 {
00035
public:
00036
virtual void position (
unsigned int *line,
unsigned int *col )
const = 0;
00037
00038
virtual bool setPosition (
unsigned int line,
unsigned int col ) = 0;
00039
00040
virtual bool insertText (
const QString& text ) = 0;
00041
00042
virtual bool removeText (
unsigned int numberOfCharacters ) = 0;
00043
00044
virtual QChar currentChar ()
const = 0;
00045 };
00046
00050 class KTEXTEDITOR_EXPORT CursorInterface
00051 {
00052
friend class PrivateCursorInterface;
00053
00054
public:
00055 CursorInterface ();
00056
virtual ~CursorInterface ();
00057
00058
unsigned int cursorInterfaceNumber ()
const;
00059
00060
protected:
00061
void setCursorInterfaceDCOPSuffix (
const QCString &suffix);
00062
00063
public:
00067
virtual Cursor *createCursor ( ) = 0;
00068
00069
00070
00071
00072
virtual QPtrList<Cursor> cursors ()
const = 0;
00073
00074
private:
00075
class PrivateCursorInterface *d;
00076
static unsigned int globalCursorInterfaceNumber;
00077
unsigned int myCursorInterfaceNumber;
00078 };
00079
00080 KTEXTEDITOR_EXPORT CursorInterface *cursorInterface (
class Document *doc);
00081
00082 }
00083
00084
#endif