diff options
Diffstat (limited to 'lib/interfaces/tdevdesignerintegration.h')
-rw-r--r-- | lib/interfaces/tdevdesignerintegration.h | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/lib/interfaces/tdevdesignerintegration.h b/lib/interfaces/tdevdesignerintegration.h new file mode 100644 index 00000000..532d8b8b --- /dev/null +++ b/lib/interfaces/tdevdesignerintegration.h @@ -0,0 +1,98 @@ +/* This file is part of the KDE project + Copyright (C) 2004 Alexander Dymo <adymo@kdevelop.org> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public License + along with this library; see the file COPYING.LIB. If not, write to + the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. +*/ +#ifndef TDEVDESIGNERINTEGRATION_H +#define TDEVDESIGNERINTEGRATION_H + +#include <designer.h> +#include <tqobject.h> +#include <tqdom.h> + +/** +@file tdevdesignerintegration.h +TDevelop designer integration interface. +*/ + +/** +TDevelop designer integration interface. +Designer integration object provides functionality which is used by integrated +into KDevelop GUI designers: +- adding/removing/editing functions (class methods); +- opening form implementation files; +- saving and loading designer integration settings. +. + +Designer integration is a layer between visual form (GUI) designer of any type +and the current language support. Usually designers create some kind of forms +and allow developers to define actions which are executed upon some GUI events +(for example, TQt Designer allows to define slots connected to GUI signals). +The actual code with action implementations needs to be written by hand in source +files. Designer integration captures such implementation requests and opens +necessary files at desired line numbers and adds (edits, removes) code for implementations. + +For example, TQt Designer integration should be able to create an subclass for a form +and reimplement slots defined in the form. +*/ +class TDevDesignerIntegration : public TQObject +{ +Q_OBJECT + +public: + /**Constructor. + @param parent Parent object. + @param name Internal name.*/ + TDevDesignerIntegration(TQObject *parent = 0, const char *name = 0); + /**Destructor.*/ + ~TDevDesignerIntegration(); + + /**Saves designer integration settings.*/ + virtual void saveSettings(TQDomDocument dom, TQString path) = 0; + /**Loads designer integration settings.*/ + virtual void loadSettings(TQDomDocument dom, TQString path) = 0; + +public slots: + /**Adds the implementation for a function. + @param formName The name of a GUI form. + @param function The function which needs to be implemented in the source.*/ + virtual void addFunction(const TQString &formName, KInterfaceDesigner::Function function) = 0; + + /**Removes the implementation of a function. + @param formName The name of a GUI form. + @param function The function which needs to be removed from the source.*/ + virtual void removeFunction(const TQString &formName, KInterfaceDesigner::Function function) = 0; + + /**Edites the implementation of a function. + @param formName The name of a GUI form. + @param oldFunction The function which needs to be edited from the source. + @param function The new function declaration.*/ + virtual void editFunction(const TQString &formName, KInterfaceDesigner::Function oldFunction, KInterfaceDesigner::Function function) = 0; + + /**Opens the function and jumps to the line number of its definition (declaration). + @param formName The name of a GUI form. + @param functionName The name of a function to find in the source.*/ + virtual void openFunction(const TQString &formName, const TQString &functionName) = 0; + + /**Opens the form source. + @param formName The name of a GUI form.*/ + virtual void openSource(const TQString &formName) = 0; + private: + class TDevDesignerIntegrationPrivate; + TDevDesignerIntegrationPrivate *dptr; +}; + +#endif |