summaryrefslogtreecommitdiff
path: root/core/launcher/applauncher.h
authorzecke <zecke>2003-08-25 15:00:50 (UTC)
committer zecke <zecke>2003-08-25 15:00:50 (UTC)
commitbf3c4abb9dff716e098f05852d9a3d8ac8cbcb44 (patch) (side-by-side diff)
treef74d4765868000d27c45771573032515ac8db8be /core/launcher/applauncher.h
parent292b097e7db25dd231381c5b09307a1fbe81a492 (diff)
downloadopie-bf3c4abb9dff716e098f05852d9a3d8ac8cbcb44.zip
opie-bf3c4abb9dff716e098f05852d9a3d8ac8cbcb44.tar.gz
opie-bf3c4abb9dff716e098f05852d9a3d8ac8cbcb44.tar.bz2
Initial revision
Diffstat (limited to 'core/launcher/applauncher.h') (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/applauncher.h82
1 files changed, 82 insertions, 0 deletions
diff --git a/core/launcher/applauncher.h b/core/launcher/applauncher.h
new file mode 100644
index 0000000..6a1e416
--- a/dev/null
+++ b/core/launcher/applauncher.h
@@ -0,0 +1,82 @@
+/**********************************************************************
+** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
+**
+** This file is part of the Qtopia Environment.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
+
+#ifndef APP_LAUNCHER_H
+#define APP_LAUNCHER_H
+
+#include <qtopia/qpeglobal.h>
+#include <qobject.h>
+#include <qmap.h>
+#ifdef Q_OS_WIN32
+#include <qtopia/qprocess.h>
+#include <qlist.h>
+#endif
+
+class QMessageBox;
+
+class AppLauncher : public QObject
+{
+ Q_OBJECT
+public:
+ AppLauncher(QObject *parent = 0, const char *name = 0);
+ ~AppLauncher();
+
+ bool isRunning(const QString &app);
+
+ static const int RAISE_TIMEOUT_MS;
+
+signals:
+ void launched(int pid, const QString &app);
+ void terminated(int pid, const QString &app);
+ void connected(const QString &app);
+
+protected slots:
+ void sigStopped(int sigPid, int sigStatus);
+ void received(const QCString& msg, const QByteArray& data);
+ void newQcopChannel(const QString& channel);
+ void removedQcopChannel(const QString& channel);
+ void createQuickLauncher();
+ void processExited();
+
+protected:
+ bool event(QEvent *);
+ void timerEvent( QTimerEvent * );
+
+private:
+ static void signalHandler(int sig);
+ bool executeBuiltin(const QString &c, const QString &document);
+ bool execute(const QString &c, const QString &document, bool noRaise = FALSE);
+ void kill( int pid );
+ int pidForName( const QString & );
+
+private:
+ QMap<int,QString> runningApps;
+ QMap<QString,int> waitingHeartbeat;
+#ifdef Q_OS_WIN32
+ QList<QProcess> runningAppsProc;
+#endif
+ int qlPid;
+ bool qlReady;
+ QMessageBox *appKillerBox;
+ QString appKillerName;
+};
+
+#endif
+