interfaces Library API Documentation

markinterface.h

00001 /* This file is part of the KDE project
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 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., 59 Temple Place - Suite 330,
00017    Boston, MA 02111-1307, USA.
00018 */
00019 
00020 #ifndef __ktexteditor_markinterface_h__
00021 #define __ktexteditor_markinterface_h__
00022 
00023 #include <qptrlist.h>
00024 
00025 class QCString;
00026 
00027 namespace KTextEditor
00028 {
00029 
00030 class Mark
00031 {
00032   public:
00033     uint line;
00034     uint type;
00035 };
00036 
00037 /*
00038 *  This is an interface for the KTextEditor::Document class !!!
00039 */
00040 class MarkInterface
00041 {
00042   friend class PrivateMarkInterface;
00043   
00044   public:
00045     MarkInterface ();
00046     virtual ~MarkInterface ();
00047 
00048     unsigned int markInterfaceNumber () const;
00049     
00050   protected:  
00051     void setMarkInterfaceDCOPSuffix (const QCString &suffix);  
00052 
00053   //
00054   // slots !!!
00055   //
00056   public:
00057     virtual uint mark (uint line) = 0;
00058 
00059     virtual void setMark (uint line, uint markType) = 0;
00060     virtual void clearMark (uint line) = 0;
00061 
00062     virtual void addMark (uint line, uint markType) = 0;
00063     virtual void removeMark (uint line, uint markType) = 0;
00064 
00065     virtual QPtrList<KTextEditor::Mark> marks () = 0;
00066     virtual void clearMarks () = 0;
00067     
00068     enum MarkTypes
00069     {
00070       markType01= 0x1, // Bookmark !!!
00071       markType02= 0x2, // Breakpoint active !!!
00072       markType03= 0x4, // Breakpoint reached !!!
00073       markType04= 0x8, // Breakpoint disabled !!!
00074       markType05= 0x10,// Execution mark !!!
00075       markType06= 0x20,
00076       markType07= 0x40,
00077       markType08= 0x80,
00078       markType09= 0x100,
00079       markType10= 0x200,
00080       markType11= 0x400,
00081       markType12= 0x800,
00082       markType13= 0x1000,
00083       markType14= 0x2000,
00084       markType15= 0x4000,
00085       markType16= 0x8000,
00086       markType17= 0x10000,
00087       markType18= 0x20000,
00088       markType19= 0x40000,
00089       markType20= 0x80000,
00090       markType21= 0x100000,
00091       markType22= 0x200000,
00092       markType23= 0x400000,
00093       markType24= 0x800000,
00094       markType25= 0x1000000,
00095       markType26= 0x2000000,
00096       markType27= 0x4000000,
00097       markType28= 0x8000000,
00098       markType29= 0x10000000,
00099       markType30= 0x20000000,
00100       markType31= 0x40000000,
00101       markType32= 0x80000000
00102     };
00103 
00104   //
00105   // signals !!!
00106   //
00107   public:
00108     virtual void marksChanged () = 0;
00109   
00110   private:
00111     class PrivateMarkInterface *d;
00112     static unsigned int globalMarkInterfaceNumber;
00113     unsigned int myMarkInterfaceNumber;
00114 };
00115 
00116 MarkInterface *markInterface (class Document *doc);
00117 
00118 }
00119 
00120 #endif
KDE Logo
This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 13:30:49 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001