summaryrefslogtreecommitdiffstats
path: root/lib/interfaces/tdevdesignerintegration.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/interfaces/tdevdesignerintegration.h')
-rw-r--r--lib/interfaces/tdevdesignerintegration.h98
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