summaryrefslogtreecommitdiffstats
path: root/kicker/kicker/interfaces
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-09-03 20:49:48 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-09-03 20:49:48 +0000
commitfd7a608ffe99df747f0496300276b95f766c18b9 (patch)
treec54dfe97fb682af9705d2cb09c424c60db861228 /kicker/kicker/interfaces
parent27856879bf962f178d88e79144e37a47e731b122 (diff)
downloadtdebase-fd7a608ffe99df747f0496300276b95f766c18b9.tar.gz
tdebase-fd7a608ffe99df747f0496300276b95f766c18b9.zip
* Added Kickoff menu
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1171422 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'kicker/kicker/interfaces')
-rw-r--r--kicker/kicker/interfaces/Makefile.am12
-rw-r--r--kicker/kicker/interfaces/kickoff-search-plugin.cpp37
-rw-r--r--kicker/kicker/interfaces/kickoff-search-plugin.h106
-rw-r--r--kicker/kicker/interfaces/kickoffsearchinterface.cpp27
-rw-r--r--kicker/kicker/interfaces/kickoffsearchinterface.h46
-rw-r--r--kicker/kicker/interfaces/kickoffsearchplugin.desktop4
6 files changed, 232 insertions, 0 deletions
diff --git a/kicker/kicker/interfaces/Makefile.am b/kicker/kicker/interfaces/Makefile.am
new file mode 100644
index 000000000..11f3f94b9
--- /dev/null
+++ b/kicker/kicker/interfaces/Makefile.am
@@ -0,0 +1,12 @@
+METASOURCES = AUTO
+INCLUDES= -I$(top_srcdir)/src $(all_includes)
+
+# The library containing the plugin base class
+lib_LTLIBRARIES = libkickoffsearch_interfaces.la
+libkickoffsearch_interfaces_la_SOURCES = kickoff-search-plugin.cpp kickoffsearchinterface.cpp
+libkickoffsearch_interfaces_la_LDFLAGS = $(all_libraries) -version-info 0:0:0
+
+kickoffsearchincludedir = $(includedir)
+kickoffsearchinclude_HEADERS = kickoff-search-plugin.h kickoffsearchinterface.h
+
+kde_servicetypes_DATA = kickoffsearchplugin.desktop
diff --git a/kicker/kicker/interfaces/kickoff-search-plugin.cpp b/kicker/kicker/interfaces/kickoff-search-plugin.cpp
new file mode 100644
index 000000000..c229c85b0
--- /dev/null
+++ b/kicker/kicker/interfaces/kickoff-search-plugin.cpp
@@ -0,0 +1,37 @@
+/***************************************************************************
+ * Copyright (C) 2006 by Stephan Binner <binner@kde.org> *
+ * *
+ * 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. *
+ * *
+ * This program 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 General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#include "kickoff-search-plugin.h"
+#include <tqobjectlist.h>
+
+KickoffSearch::Plugin::Plugin(TQObject *parent, const char* name )
+ :TQObject( parent, name )
+{
+}
+
+KickoffSearch::Plugin::~Plugin()
+{
+}
+
+KickoffSearch::KickoffSearchInterface* KickoffSearch::Plugin::kickoffSearchInterface()
+{
+ return static_cast<KickoffSearchInterface*>( parent()->child( 0, "KickoffSearch::KickoffSearchInterface" ) );
+}
+
+#include "kickoff-search-plugin.moc"
diff --git a/kicker/kicker/interfaces/kickoff-search-plugin.h b/kicker/kicker/interfaces/kickoff-search-plugin.h
new file mode 100644
index 000000000..e91d079e7
--- /dev/null
+++ b/kicker/kicker/interfaces/kickoff-search-plugin.h
@@ -0,0 +1,106 @@
+/***************************************************************************
+ * Copyright (C) 2006 by Stephan Binner <binner@kde.org> *
+ * Copyright (c) 2006 Debajyoti Bera <dbera.web@gmail.com> *
+ * *
+ * 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. *
+ * *
+ * This program 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 General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#ifndef KICKOFF_SEARCH_PLUGIN_H
+#define KICKOFF_SEARCH_PLUGIN_H
+
+#include "kickoffsearchinterface.h"
+
+#include <tqobject.h>
+#include <kurl.h>
+#include <kservice.h>
+
+typedef enum {
+ ACTIONS = 0,
+ APPS,
+ BOOKMARKS,
+ NOTES,
+ MAILS,
+ FILES,
+ MUSIC,
+ WEBHIST,
+ CHATS,
+ FEEDS,
+ PICS,
+ VIDEOS,
+ DOCS,
+ OTHER,
+ num_categories
+} CATEGORY;
+
+class HitMenuItem
+{
+public:
+ HitMenuItem (int id, int category)
+ : id (id), category (category),score(0) { } /* dummy */
+ HitMenuItem (TQString name, TQString info, KURL uri, TQString mimetype, int id, int category, TQString icon=TQString::null, int score = 0)
+ : display_name (name)
+ , display_info (info)
+ , uri (uri)
+ , mimetype (mimetype)
+ , id (id)
+ , category (category)
+ , icon (icon)
+ , score (score)
+ , service (NULL) { }
+
+ ~HitMenuItem () { }
+
+ bool operator< (HitMenuItem item)
+ {
+ return ((category == item.category && score > item.score) || (category == item.category && id < item.id) ||
+ (category < item.category));
+ }
+
+ // FIXME: We dont really need to store display_name and display_info
+ TQString display_name; // name to display
+ TQString display_info; // other information to display
+ KURL uri; // uri to open when clicked
+ TQString mimetype;
+ int id; // id of the item in the menu
+ int category;
+ TQString icon;
+ int score;
+ KService::Ptr service;
+
+ TQString quotedPath () const
+ {
+ return uri.path ().replace ('"', "\\\"");
+ }
+};
+
+namespace KickoffSearch {
+
+ class Plugin : public TQObject
+ {
+ Q_OBJECT
+
+ public:
+ Plugin(TQObject *parent, const char* name=0);
+ virtual ~Plugin();
+
+ virtual bool daemonRunning()=0;
+ virtual void query(TQString,bool)=0;
+
+ KickoffSearchInterface * kickoffSearchInterface();
+ };
+};
+
+#endif /* KICKOFF_SEARCH_PLUGIN_H */
diff --git a/kicker/kicker/interfaces/kickoffsearchinterface.cpp b/kicker/kicker/interfaces/kickoffsearchinterface.cpp
new file mode 100644
index 000000000..6df9d0630
--- /dev/null
+++ b/kicker/kicker/interfaces/kickoffsearchinterface.cpp
@@ -0,0 +1,27 @@
+/***************************************************************************
+ * Copyright (C) 2006 by Stephan Binner <binner@kde.org> *
+ * *
+ * 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. *
+ * *
+ * This program 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 General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#include "kickoffsearchinterface.h"
+
+KickoffSearch::KickoffSearchInterface::KickoffSearchInterface( TQObject* parent, const char* name )
+ :TQObject( parent, name )
+{
+}
+
+#include "kickoffsearchinterface.moc"
diff --git a/kicker/kicker/interfaces/kickoffsearchinterface.h b/kicker/kicker/interfaces/kickoffsearchinterface.h
new file mode 100644
index 000000000..91d28e7e6
--- /dev/null
+++ b/kicker/kicker/interfaces/kickoffsearchinterface.h
@@ -0,0 +1,46 @@
+/***************************************************************************
+ * Copyright (C) 2006 by Stephan Binner <binner@kde.org> *
+ * *
+ * 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. *
+ * *
+ * This program 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 General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU General Public License *
+ * along with this program; if not, write to the *
+ * Free Software Foundation, Inc., *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
+ ***************************************************************************/
+
+#ifndef KICKOFFSEARCHINTERFACE_H
+#define KICKOFFSEARCHINTERFACE_H
+
+#include <tqobject.h>
+
+class HitMenuItem;
+
+namespace KickoffSearch
+{
+ class KickoffSearchInterface :public TQObject
+ {
+ Q_OBJECT
+
+ public:
+ KickoffSearchInterface( TQObject* parent, const char* name = 0);
+
+ public:
+ virtual bool anotherHitMenuItemAllowed(int cat) = 0;
+ virtual void addHitMenuItem(HitMenuItem* item) = 0;
+ virtual void searchOver() = 0;
+ virtual void initCategoryTitlesUpdate() = 0;
+ virtual void updateCategoryTitles() = 0;
+ };
+}
+
+#endif /* SELECTIONINTERFACE_H */
+
diff --git a/kicker/kicker/interfaces/kickoffsearchplugin.desktop b/kicker/kicker/interfaces/kickoffsearchplugin.desktop
new file mode 100644
index 000000000..137d10a1d
--- /dev/null
+++ b/kicker/kicker/interfaces/kickoffsearchplugin.desktop
@@ -0,0 +1,4 @@
+[Desktop Entry]
+Type=ServiceType
+X-KDE-ServiceType=KickoffSearch/Plugin
+Comment=A search plugin for Kickoff