KDevelop API Documentation

kdevlanguagesupport.h

Go to the documentation of this file.
00001 /* This file is part of the KDE project
00002    Copyright (C) 2001 Matthias Hoelzer-Kluepfel <hoelzer@kde.org>
00003    Copyright (C) 2001-2002 Bernd Gehrmann <bernd@kdevelop.org>
00004    Copyright (C) 2002-2003 Roberto Raggi <roberto@kdevelop.org>
00005    Copyright (C) 2002 Simon Hausmann <hausmann@kde.org>
00006    Copyright (C) 2002 F@lk Brettschneider <falkbr@kdevelop.org>
00007    Copyright (C) 2003 Alexander Dymo <cloudtemple@mksat.net>
00008    Copyright (C) 2003 Amilcar do Carmo Lucas <amilcar@ida.ing.tu-bs.de>
00009 
00010    This library is free software; you can redistribute it and/or
00011    modify it under the terms of the GNU Library General Public
00012    License as published by the Free Software Foundation; either
00013    version 2 of the License, or (at your option) any later version.
00014 
00015    This library is distributed in the hope that it will be useful,
00016    but WITHOUT ANY WARRANTY; without even the implied warranty of
00017    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018    Library General Public License for more details.
00019 
00020    You should have received a copy of the GNU Library General Public License
00021    along with this library; see the file COPYING.LIB.  If not, write to
00022    the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00023    Boston, MA 02111-1307, USA.
00024 */
00029 #ifndef _KDEVLANGUAGESUPPORT_H_
00030 #define _KDEVLANGUAGESUPPORT_H_
00031 
00032 #include <qstring.h>
00033 #include <qstringlist.h>
00034 #include <kmimetype.h>
00035 #include "kdevplugin.h"
00036 #include "codemodel.h"
00037 #include <designer.h>
00038 
00039 class Tag;
00040 class KDevDesignerIntegration;
00041 
00042 using namespace KInterfaceDesigner;
00043 
00044 class KDevLanguageSupport : public KDevPlugin
00045 {
00046     Q_OBJECT
00047 
00048 public:
00049 
00050     enum Features {
00051         Classes=1, Structs=2, Functions=4, Variables=8,
00052         Namespaces=16, Signals=32, Slots=64, Declarations=128,   /* features of the language itself       */
00053         NewClass=512, AddMethod=1024, AddAttribute=2048,         /* features of the language support part */
00054         Scripts=4096, NewScript=8192                             /* features for scripting support (perl) */
00055     };
00056 
00057     KDevLanguageSupport( const QString& pluginName, const QString& icon, QObject *parent, const char *name );
00058     ~KDevLanguageSupport();
00059 
00065     virtual Features features();
00070     virtual KMimeType::List mimeTypes();
00071 
00075     virtual QString formatTag( const Tag& tag );
00079     virtual QString formatModelItem( const CodeModelItem *item, bool shortDescription=false );
00080 
00086     virtual QString formatClassName(const QString &name);
00090     virtual QString unformatClassName(const QString &name);
00091 
00097     virtual void addClass();
00102     virtual void addMethod( ClassDom klass );
00107     virtual void implementVirtualMethods( ClassDom klass );
00112     virtual void addAttribute( ClassDom klass );
00118     virtual QStringList subclassWidget(const QString& formName);
00125     virtual QStringList updateWidget(const QString& formName, const QString& fileName);
00126 
00130     virtual KDevDesignerIntegration *designer(KInterfaceDesigner::DesignerType type);
00131 
00132 public slots:
00134     void addFunction(DesignerType type, const QString &formName, Function function);
00136     void removeFunction(DesignerType type, const QString &formName, Function function);
00138     void editFunction(DesignerType type, const QString &formName, Function oldFunction, Function function);
00139     
00140     void openFunction(DesignerType type, const QString &formName, const QString &functionName);
00141     
00142 signals:
00147     void updatedSourceInfo();
00148 
00152     void aboutToRemoveSourceInfo( const QString& fileName );
00153 
00157     void removedSourceInfo( const QString& fileName );
00158 
00162     void addedSourceInfo( const QString& fileName );
00163 };
00164 
00165 
00166 #endif
KDE Logo
This file is part of the documentation for KDevelop Version 3.1.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Feb 22 09:22:36 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003