KDevelop API Documentation

languages/cpp/cppnewclassdlg.h

Go to the documentation of this file.
00001 /*************************************************************************** 00002 * Copyright (C) 1998 by Sandy Meier * 00003 * smeier@rz.uni-potsdam.de * 00004 * Copyright (C) 2002 by Bernd Gehrmann * 00005 * bernd@kdevelop.org * 00006 * Copyright (C) 2003 by Alexander Dymo * 00007 * cloudtemple@mksat.net * 00008 * * 00009 * This program is free software; you can redistribute it and/or modify * 00010 * it under the terms of the GNU General Public License as published by * 00011 * the Free Software Foundation; either version 2 of the License, or * 00012 * (at your option) any later version. * 00013 * * 00014 ***************************************************************************/ 00015 00016 #ifndef _CPPNEWCLASSDLG_H_ 00017 #define _CPPNEWCLASSDLG_H_ 00018 00019 #include <qlineedit.h> 00020 #include <qlistview.h> 00021 #include <qwidgetstack.h> 00022 00023 #include "codemodel.h" 00024 #include "cppnewclassdlgbase.h" 00025 00026 class KDevLanguageSupport; 00027 class KDevProject; 00028 class QPopupMenu; 00029 class KCompletion; 00030 00031 00032 template<class T> 00033 class PCheckListItem: public QCheckListItem{ 00034 public: 00035 00036 PCheckListItem ( T item, QCheckListItem * parent, const QString & text, Type tt = Controller ): 00037 QCheckListItem ( parent, text, tt ), m_item(item) {} 00038 00039 PCheckListItem ( T item, QCheckListItem * parent, QListViewItem * after, const QString & text, Type tt = Controller ): 00040 QCheckListItem ( parent, after, text, tt ), m_item(item) {} 00041 00042 PCheckListItem ( T item, QListViewItem * parent, const QString & text, Type tt = Controller ): 00043 QCheckListItem ( parent, text, tt ), m_item(item) {} 00044 00045 PCheckListItem ( T item, QListViewItem * parent, QListViewItem * after, const QString & text, Type tt = Controller ): 00046 QCheckListItem ( parent, after, text, tt ), m_item(item) {} 00047 00048 PCheckListItem ( T item, QListView * parent, const QString & text, Type tt = Controller ): 00049 QCheckListItem ( parent, text, tt ), m_item(item) {} 00050 00051 PCheckListItem ( T item, QListView * parent, QListViewItem * after, const QString & text, Type tt = Controller ): 00052 QCheckListItem ( parent, after, text, tt ), m_item(item) {} 00053 00054 PCheckListItem ( T item, QListViewItem * parent, const QString & text, const QPixmap & p ): 00055 QCheckListItem ( parent, text, p ), m_item(item) {} 00056 00057 PCheckListItem ( T item, QListView * parent, const QString & text, const QPixmap & p ): 00058 QCheckListItem ( parent, text, p ), m_item(item) {} 00059 00060 T item() 00061 { 00062 return m_item; 00063 } 00064 00065 QString templateAddition; 00066 00067 private: 00068 T m_item; 00069 }; 00070 00071 template<class T> 00072 class PListViewItem: public QListViewItem{ 00073 public: 00074 00075 PListViewItem ( T item, QListViewItem * parent, QListViewItem * after, const QString & text ): 00076 QListViewItem ( parent, after, text ), m_item(item) {} 00077 00078 PListViewItem ( T item, QListViewItem * parent, const QString & text ): 00079 QListViewItem ( parent, text ), m_item(item) {} 00080 00081 PListViewItem ( T item, QListView * parent, const QString & text ): 00082 QListViewItem ( parent, text ), m_item(item) {} 00083 00084 PListViewItem ( T item, QListView * parent, QListViewItem * after, const QString & text ): 00085 QListViewItem ( parent, after, text ), m_item(item) {} 00086 00087 T item() 00088 { 00089 return m_item; 00090 } 00091 00092 QString templateAddition; 00093 private: 00094 T m_item; 00095 }; 00096 00097 00098 class CppNewClassDialog : public CppNewClassDialogBase 00099 { 00100 Q_OBJECT 00101 00102 public: 00103 CppNewClassDialog(KDevLanguageSupport *part, QWidget *parent=0, const char *name=0); 00104 ~CppNewClassDialog(); 00105 00106 protected: 00107 virtual void accept(); 00108 virtual void classNameChanged(const QString &text); 00109 virtual void classNamespaceChanged(const QString &text); 00110 virtual void headerChanged(); 00111 virtual void implementationChanged(); 00112 virtual void nameHandlerChanged(const QString &text); 00113 virtual void baseclassname_changed(const QString &text); 00114 virtual void baseIncludeChanged(const QString &text); 00115 00116 virtual void addBaseClass(); 00117 virtual void remBaseClass(); 00118 virtual void remBaseClassOnly(); 00119 virtual void currBaseNameChanged(const QString &text); 00120 virtual void currBasePrivateSet(); 00121 virtual void currBaseProtectedSet(); 00122 virtual void currBasePublicSet(); 00123 virtual void currBaseVirtualChanged(int val); 00124 virtual void currBaseSelected(QListViewItem *it); 00125 virtual void scopeboxActivated(int value); 00126 00127 virtual void checkObjCInheritance(int val); 00128 virtual void checkQWidgetInheritance(int val); 00129 00130 virtual void upbaseclass_button_clicked(); 00131 virtual void downbaseclass_button_clicked(); 00132 virtual void baseclasses_view_selectionChanged(); 00133 00134 virtual void newTabSelected(const QString &text); 00135 virtual void newTabSelected(QWidget *w); 00136 virtual void access_view_mouseButtonPressed( int button, QListViewItem * item, const QPoint &p, int c ); 00137 virtual void changeToPrivate(); 00138 virtual void changeToProtected(); 00139 virtual void changeToPublic(); 00140 virtual void changeToInherited(); 00141 virtual void methods_view_mouseButtonPressed(int button ,QListViewItem * item, const QPoint&p ,int c); 00142 virtual void extendFunctionality(); 00143 virtual void replaceFunctionality(); 00144 virtual void to_constructors_list_clicked(); 00145 virtual void clear_selection_button_clicked(); 00146 virtual void selectall_button_clicked(); 00147 virtual void gtk_box_stateChanged(int val); 00148 virtual void qobject_box_stateChanged(int val); 00149 00150 void reloadAdvancedInheritance(bool clean = false); 00151 void parseClass(QString clName, QString inheritance); 00152 void addToConstructorsList(QCheckListItem *myClass, FunctionDom method); 00153 void addToMethodsList(QListViewItem *parent, FunctionDom method); 00154 void addToUpgradeList(QListViewItem *parent, FunctionDom method, QString modifier); 00155 void addToUpgradeList(QListViewItem *parent, VariableDom attr, QString modifier); 00156 void clearConstructorsList(bool clean = false); 00157 void clearMethodsList(bool clean = false); 00158 void clearUpgradeList(bool clean = false); 00159 bool isConstructor(QString className, const FunctionDom &method); 00160 bool isDestructor(QString className, const FunctionDom &method); 00161 00162 private: 00163 00164 bool headerModified; 00165 bool baseincludeModified; 00166 bool implementationModified; 00167 QString m_parse; 00168 QPopupMenu *accessMenu; 00169 QPopupMenu *overMenu; 00170 KDevLanguageSupport *m_part; 00171 00172 // configuration variables 00173 QString interface_url; 00174 QString implementation_url; 00175 QString interface_suffix; 00176 QString implementation_suffix; 00177 QStringList currNamespace; 00178 bool lowercase_filenames; 00179 QStringList currBaseClasses; 00180 KCompletion * compBasename; 00181 KCompletion * compNamespace; 00182 00183 void setCompletionBasename(CodeModel *model); 00184 void addCompletionBasenameNamespacesRecursive(const NamespaceDom & namespaceDom, const QString & namespaceParent = ""); 00185 void setCompletionNamespaceRecursive(const NamespaceDom & namespaceDom, const QString & namespaceParent = ""); 00186 void setStateOfInheritanceEditors(bool state, bool hideList = true); 00187 void setAccessForBase(QString baseclass, QString newAccess); 00188 void setAccessForItem(QListViewItem *curr, QString newAccess, bool isPublic); 00189 void remClassFromAdv(QString text); 00190 void checkUpButtonState(); 00191 void checkDownButtonState(); 00192 void updateConstructorsOrder(); 00193 00194 QString classNameFormatted(); 00195 QString templateStrFormatted(); 00196 QString templateParamsFormatted(); 00197 QString classNameFormatted(const QString &); 00198 QString templateStrFormatted(const QString &); 00199 QString templateParamsFormatted(const QString &); 00200 QString templateActualParamsFormatted(const QString &); 00201 void removeTemplateParams(QString &); 00202 00203 friend class ClassGenerator; 00204 00206 class ClassGenerator { 00207 00208 public: 00209 ClassGenerator(CppNewClassDialog& _dlg) : dlg(_dlg) {} 00210 bool generate(); 00211 00212 private: 00213 bool validateInput(); 00214 void common_text(); 00215 void gen_implementation(); 00216 void gen_interface(); 00217 void genMethodDeclaration(FunctionDom method, QString className, QString templateStr, 00218 QString *adv_h, QString *adv_cpp, bool extend, QString baseClassName ); 00219 00220 void beautifyHeader(QString &templ, QString &headerGuard, 00221 QString &includeBaseHeader, QString &author, QString &doc, QString &className, QString &templateStr, 00222 QString &baseclass, QString &inheritance, QString &qobjectStr, QString &args, 00223 QString &header, QString &namespaceBeg, QString &constructors, QString &advH_public, QString &advH_public_slots, 00224 QString &advH_protected, QString &advH_protected_slots, QString &advH_private, QString &advH_private_slots, 00225 QString &namespaceEnd); 00226 void beautifySource(QString &templ, QString &header, QString &className, QString &namespaceBeg, 00227 QString &constructors, QString &advCpp, QString &namespaceEnd, QString &implementation); 00228 00229 QString className; 00230 QString templateStr; 00231 QString templateParams; 00232 QString header; 00233 QString implementation; 00234 00235 QString advConstructorsHeader; 00236 QString advConstructorsSource; 00237 00238 KDevProject *project; 00239 QString subDir, headerPath, implementationPath; 00240 QString doc; 00241 QString namespaceStr; 00242 bool childClass; 00243 bool objc; 00244 bool qobject; 00245 bool gtk; 00246 QStringList namespaces; 00247 QString namespaceBeg, namespaceEnd; 00248 QString argsH; 00249 QString argsCpp; 00250 00251 QString advH_public; 00252 QString advH_public_slots; 00253 QString advH_protected; 00254 QString advH_protected_slots; 00255 QString advH_private; 00256 QString advH_private_slots; 00257 QString advCpp; 00258 00259 00260 CppNewClassDialog& dlg; 00261 }; 00262 00263 00265 friend class CppNewClassDialog::ClassGenerator; 00266 }; 00267 00268 #endif
KDE Logo
This file is part of the documentation for KDevelop Version 3.0.4.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Oct 19 08:01:42 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003