aboutsummaryrefslogtreecommitdiff
path: root/lumina-desktop/AppMenu.h
diff options
context:
space:
mode:
Diffstat (limited to 'lumina-desktop/AppMenu.h')
-rw-r--r--lumina-desktop/AppMenu.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/lumina-desktop/AppMenu.h b/lumina-desktop/AppMenu.h
new file mode 100644
index 00000000..13417dcb
--- /dev/null
+++ b/lumina-desktop/AppMenu.h
@@ -0,0 +1,52 @@
+//===========================================
+// Lumina-DE source code
+// Copyright (c) 2014, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+// This menu auto-updates to keep the list of available applications
+// current at all times - and can launch them as necessary
+//===========================================
+#ifndef _LUMINA_DESKTOP_APP_MENU_H
+#define _LUMINA_DESKTOP_APP_MENU_H
+
+// Qt includes
+#include <QMenu>
+#include <QFileSystemWatcher>
+#include <QString>
+#include <QList>
+#include <QTimer>
+#include <QHash>
+#include <QAction>
+//#include <QProcess>
+
+// libLumina includes
+#include <LuminaXDG.h>
+
+class AppMenu : public QMenu{
+ Q_OBJECT
+public:
+ AppMenu(QWidget *parent = 0);
+ ~AppMenu();
+
+ QHash<QString, QList<XDGDesktop> > *currentAppHash();
+
+private:
+ QFileSystemWatcher *watcher;
+ QString appstorelink, controlpanellink; //default *.desktop file to use as the "store"
+ QList<QMenu> MLIST;
+ QHash<QString, QList<XDGDesktop> > APPS;
+
+ void updateAppList(); //completely update the menu lists
+
+private slots:
+ void start(); //This is called in a new thread after initialization
+ void watcherUpdate();
+ void launchStore();
+ void launchControlPanel();
+ void launchFileManager();
+ void launchApp(QAction *act);
+};
+
+#endif
+
bgstack15