summaryrefslogtreecommitdiffstats
path: root/parts/doxygen/doxygenpart.h
diff options
context:
space:
mode:
Diffstat (limited to 'parts/doxygen/doxygenpart.h')
-rw-r--r--parts/doxygen/doxygenpart.h113
1 files changed, 113 insertions, 0 deletions
diff --git a/parts/doxygen/doxygenpart.h b/parts/doxygen/doxygenpart.h
new file mode 100644
index 00000000..49fb87e8
--- /dev/null
+++ b/parts/doxygen/doxygenpart.h
@@ -0,0 +1,113 @@
+/***************************************************************************
+ * Copyright (C) 2001 by Bernd Gehrmann *
+ * Copyright (C) 2004 by Jonas Jacobi *
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#ifndef _DOXYGENPART_H_
+#define _DOXYGENPART_H_
+
+#include <qguardedptr.h>
+#include <kdialogbase.h>
+#include <kprocess.h>
+#include <ktempdir.h>
+#include <qstring.h>
+
+#include "kdevplugin.h"
+
+class DoxygenDialog;
+class QPopupMenu;
+class Context;
+class KAction;
+class KDialogBase;
+class ConfigWidgetProxy;
+
+namespace KParts{
+ class Part;
+}
+namespace KTextEditor{
+ class ViewCursorInterface;
+ class EditInterface;
+}
+
+class DoxygenPart : public KDevPlugin
+{
+ Q_OBJECT
+
+public:
+ DoxygenPart( QObject *parent, const char *name, const QStringList & );
+ ~DoxygenPart();
+
+private slots:
+ /**
+ * Configuration dialog under "Project Options..." that alows
+ * to specify doxygen configuration options and store them to
+ * a configuration file. The file name is "Doxyfile" and it's stored
+ * in the project root.
+ */
+// void projectConfigWidget(KDialogBase *dlg);
+ void insertConfigWidget( const KDialogBase* dlg, QWidget * page, unsigned int );
+
+ /** run doxygen to generate API documentation */
+ void slotDoxygen();
+
+ /** clean the html API docs (delete the generated html files) */
+ void slotDoxClean();
+
+ /**
+ * Gets called, when the Doxygen process for previewing is finished
+ * and shows its output then.
+ */
+ void slotPreviewProcessExited();
+
+ /**
+ * If the current part is KTextEditor::Document, run Doxygen over it.
+ * When the process exited slotPreviewProcessExited gets called.
+ */
+ void slotRunPreview();
+
+ /**
+ * Gets called when the currently active part changed.
+ * When the new part is a KTextEditor::Document the filepath gets
+ * internally stored and gets processed if slotRunPreview() is called.
+ * @see KTextEditor::Document
+ */
+ void slotActivePartChanged(KParts::Part*);
+
+ /**
+ * Inserts a documentation template above a function declaration/definition.
+ */
+ void slotDocumentFunction();
+
+
+private:
+
+ /**
+ * If a Doxygen configuration file doesn't exist, create one.
+ * And copy some of the project settings to it.
+ */
+ void adjustDoxyfile();
+
+ DoxygenDialog *m_dialog;
+ ConfigWidgetProxy * _configProxy;
+
+ //needed for doxygen preview
+ QString m_file;
+ KTempDir m_tmpDir;
+ KAction* m_action;
+
+ //needed for documentFunction
+ KAction* m_actionDocumentFunction;
+ KAction* m_actionPreview;
+ KTextEditor::EditInterface* m_activeEditor;
+ KTextEditor::ViewCursorInterface* m_cursor;
+};
+
+#endif