summaryrefslogtreecommitdiffstats
path: root/kate/cppsymbolviewer/plugin_katesymbolviewer.h
diff options
context:
space:
mode:
Diffstat (limited to 'kate/cppsymbolviewer/plugin_katesymbolviewer.h')
-rw-r--r--kate/cppsymbolviewer/plugin_katesymbolviewer.h300
1 files changed, 300 insertions, 0 deletions
diff --git a/kate/cppsymbolviewer/plugin_katesymbolviewer.h b/kate/cppsymbolviewer/plugin_katesymbolviewer.h
new file mode 100644
index 0000000..f20f097
--- /dev/null
+++ b/kate/cppsymbolviewer/plugin_katesymbolviewer.h
@@ -0,0 +1,300 @@
+/***************************************************************************
+ plugin_katesymbolviewer.h - description
+ -------------------
+ begin : Apr 2 2003
+ author : 2003 Massimo Callegari
+ email : massimocallegari@yahoo.it
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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 _PLUGIN_KATE_SYMBOLVIEWER_H_
+#define _PLUGIN_KATE_SYMBOLVIEWER_H_
+
+#include <kate/application.h>
+#include <kate/documentmanager.h>
+#include <kate/document.h>
+#include <kate/mainwindow.h>
+#include <kate/plugin.h>
+#include <kate/view.h>
+#include <kate/viewmanager.h>
+#include <kate/toolviewmanager.h>
+#include <kate/pluginconfiginterface.h>
+#include <kate/pluginconfiginterfaceextension.h>
+
+#include <kdebug.h>
+#include <qmemarray.h>
+#include <qpopupmenu.h>
+#include <qevent.h>
+#include <qcheckbox.h>
+//#include <qprocess.h>
+#include <qregexp.h>
+#include <klibloader.h>
+#include <klocale.h>
+#include <klistview.h>
+#include <kiconloader.h>
+#include <kconfig.h>
+
+
+class KatePluginSymbolViewerView : public QObject, public KXMLGUIClient
+{
+ Q_OBJECT
+
+ public:
+ KatePluginSymbolViewerView (Kate::MainWindow *w);
+ virtual ~KatePluginSymbolViewerView ();
+
+ void parseSymbols(void);
+
+ public slots:
+ void slotInsertSymbol();
+ void slotRefreshSymbol();
+ void slotChangeMode();
+ void slotEnableSorting();
+ void slotDocChanged();
+ void goToSymbol(QListViewItem *);
+ void slotShowContextMenu(QListViewItem *, const QPoint&, int);
+ void toggleShowMacros(void);
+ void toggleShowStructures(void);
+ void toggleShowFunctions(void);
+ protected:
+ void slotViewChanged(QResizeEvent *e);
+ private:
+ QPopupMenu *popup;
+ KListView *symbols;
+ QWidget *dock;
+ bool m_Active;
+ int m_macro, m_struct, m_func, m_sort;
+ bool macro_on, struct_on, func_on;
+ bool treeMode, lsorting;
+ void parseCppSymbols(void);
+ void parseTclSymbols(void);
+ public:
+ Kate::MainWindow *win;
+ bool types_on;
+ bool expanded_on;
+};
+
+/**
+ * Plugin's config page
+ */
+class KatePluginSymbolViewerConfigPage : public Kate::PluginConfigPage
+{
+ Q_OBJECT
+
+ friend class KatePluginSymbolViewer;
+
+ public:
+ KatePluginSymbolViewerConfigPage (QObject* parent = 0L, QWidget *parentWidget = 0L);
+ ~KatePluginSymbolViewerConfigPage ();
+
+ /**
+ * Reimplemented from Kate::PluginConfigPage
+ * just emits configPageApplyRequest( this ).
+ */
+ virtual void apply();
+
+ virtual void reset () { ; }
+ virtual void defaults () { ; }
+
+ signals:
+ /**
+ * Ask the plugin to set initial values
+ */
+ void configPageApplyRequest( KatePluginSymbolViewerConfigPage* );
+
+ /**
+ * Ask the plugin to apply changes
+ */
+ void configPageInitRequest( KatePluginSymbolViewerConfigPage* );
+
+ private:
+ QCheckBox* viewReturns;
+ QCheckBox* expandTree;
+};
+
+class KatePluginSymbolViewer : public Kate::Plugin, Kate::PluginViewInterface, Kate::PluginConfigInterfaceExtension
+{
+ Q_OBJECT
+
+ public:
+ KatePluginSymbolViewer( QObject* parent = 0, const char* name = 0, const QStringList& = QStringList() );
+ virtual ~KatePluginSymbolViewer();
+
+ void addView (Kate::MainWindow *win);
+ void removeView (Kate::MainWindow *win);
+
+ uint configPages () const { return 1; }
+ Kate::PluginConfigPage *configPage (uint , QWidget *w, const char *name=0);
+ QString configPageName(uint) const { return i18n("Symbol Viewer"); }
+ QString configPageFullName(uint) const { return i18n("Symbol Viewer Configuration Page"); }
+ QPixmap configPagePixmap (uint , int ) const { return 0L; }
+
+ public slots:
+ void applyConfig( KatePluginSymbolViewerConfigPage* );
+
+ private:
+ void initConfigPage( KatePluginSymbolViewerConfigPage* );
+
+ private:
+ QPtrList<KatePluginSymbolViewerView> m_views;
+ KConfig pConfig;
+};
+
+/* XPM */
+static const char* const class_xpm[] = {
+"16 16 10 1",
+" c None",
+". c #000000",
+"+ c #A4E8FC",
+"@ c #24D0FC",
+"# c #001CD0",
+"$ c #0080E8",
+"% c #C0FFFF",
+"& c #00FFFF",
+"* c #008080",
+"= c #00C0C0",
+" .. ",
+" .++.. ",
+" .+++@@. ",
+" .@@@@@#... ",
+" .$$@@##.%%.. ",
+" .$$$##.%%%&&. ",
+" .$$$#.&&&&&*. ",
+" ...#.==&&**. ",
+" .++..===***. ",
+" .+++@@.==**. ",
+" .@@@@@#..=*. ",
+" .$$@@##. .. ",
+" .$$$###. ",
+" .$$$##. ",
+" ..$#. ",
+" .. "};
+static const char * const class_int_xpm[] = {
+"16 16 10 1",
+" c None",
+". c #000000",
+"+ c #B8B8B8",
+"@ c #8A8A8A",
+"# c #212121",
+"$ c #575757",
+"% c #CCCCCC",
+"& c #9A9A9A",
+"* c #4D4D4D",
+"= c #747474",
+" .. ",
+" .++.. ",
+" .+++@@. ",
+" .@@@@@#... ",
+" .$$@@##.%%.. ",
+" .$$$##.%%%&&. ",
+" .$$$#.&&&&&*. ",
+" ...#.==&&**. ",
+" .++..===***. ",
+" .+++@@.==**. ",
+" .@@@@@#..=*. ",
+" .$$@@##. .. ",
+" .$$$###. ",
+" .$$$##. ",
+" ..$#. ",
+" .. "};
+
+static const char* const struct_xpm[] = {
+"16 16 14 1",
+" c None",
+". c #000000",
+"+ c #C0FFC0",
+"@ c #00FF00",
+"# c #008000",
+"$ c #00C000",
+"% c #C0FFFF",
+"& c #00FFFF",
+"* c #008080",
+"= c #00C0C0",
+"- c #FFFFC0",
+"; c #FFFF00",
+"> c #808000",
+", c #C0C000",
+" .. ",
+" .++.. ",
+" .+++@@. ",
+" .@@@@@#... ",
+" .$$@@##.%%.. ",
+" .$$$##.%%%&&. ",
+" .$$$#.&&&&&*. ",
+" ...#.==&&**. ",
+" .--..===***. ",
+" .---;;.==**. ",
+" .;;;;;>..=*. ",
+" .,,;;>>. .. ",
+" .,,,>>>. ",
+" .,,,>>. ",
+" ..,>. ",
+" .. "};
+
+static const char* const macro_xpm[] = {
+"16 16 14 1",
+" c None",
+". c #000000",
+"+ c #FF7FE5",
+"@ c #FF00C7",
+"# c #7F0066",
+"$ c #BC0096",
+"% c #C0FFFF",
+"& c #00FFFF",
+"* c #008080",
+"= c #00C0C0",
+"- c #D493FF",
+"; c #A100FF",
+"> c #470082",
+", c #6B00B7",
+" .. ",
+" .++.. ",
+" .+++@@. ",
+" .@@@@@#... ",
+" .$$@@##.%%.. ",
+" .$$$##.%%%&&. ",
+" .$$$#.&&&&&*. ",
+" ...#.==&&**. ",
+" .--..===***. ",
+" .---;;.==**. ",
+" .;;;;;>..=*. ",
+" .,,;;>>. .. ",
+" .,,,>>>. ",
+" .,,,>>. ",
+" ..,>. ",
+" .. "};
+
+static const char* const method_xpm[] = {
+ "16 16 5 1",
+ " c None",
+ ". c #000000",
+ "+ c #FCFC80",
+ "@ c #E0BC38",
+ "# c #F0DC5C",
+ " ",
+ " ",
+ " ",
+ " .. ",
+ " .++.. ",
+ " .+++++. ",
+ " .+++++@. ",
+ " .. .##++@@. ",
+ " .++..###@@@. ",
+ " .+++++.##@@. ",
+ " .+++++@..#@. ",
+ " .##++@@. .. ",
+ " .###@@@. ",
+ " .###@@. ",
+ " ..#@. ",
+ " .. "
+};
+
+#endif