aboutsummaryrefslogtreecommitdiffstats
path: root/distrib/sdl-1.2.15/src/main/qtopia/SDL_qtopia_main.cc
diff options
context:
space:
mode:
authorJesse Hall <jessehall@google.com>2012-07-09 11:27:07 -0700
committerJesse Hall <jessehall@google.com>2012-07-22 00:35:08 -0700
commit9682c8870b8ff5e4ac2e4c70b759f791c6f38c1f (patch)
treeded6ee18c4e1f33df235e53615a6d65e2d64f4ef /distrib/sdl-1.2.15/src/main/qtopia/SDL_qtopia_main.cc
parent74b55003f76dbca96e4a26d98fe464081ca5341f (diff)
downloadexternal_qemu-9682c8870b8ff5e4ac2e4c70b759f791c6f38c1f.zip
external_qemu-9682c8870b8ff5e4ac2e4c70b759f791c6f38c1f.tar.gz
external_qemu-9682c8870b8ff5e4ac2e4c70b759f791c6f38c1f.tar.bz2
Import SDL release-1.2.15
Change-Id: I505c4aea24325cad475f217db5589814b4c75dbf
Diffstat (limited to 'distrib/sdl-1.2.15/src/main/qtopia/SDL_qtopia_main.cc')
-rw-r--r--distrib/sdl-1.2.15/src/main/qtopia/SDL_qtopia_main.cc47
1 files changed, 47 insertions, 0 deletions
diff --git a/distrib/sdl-1.2.15/src/main/qtopia/SDL_qtopia_main.cc b/distrib/sdl-1.2.15/src/main/qtopia/SDL_qtopia_main.cc
new file mode 100644
index 0000000..46fd518
--- /dev/null
+++ b/distrib/sdl-1.2.15/src/main/qtopia/SDL_qtopia_main.cc
@@ -0,0 +1,47 @@
+
+/* Include the SDL main definition header */
+#include "SDL_main.h"
+#include <stdlib.h>
+#include <unistd.h>
+#ifdef main
+#undef main
+#endif
+#ifdef QWS
+#include <qpe/qpeapplication.h>
+#include <qapplication.h>
+#include <qpe/qpeapplication.h>
+#include <stdlib.h>
+
+// Workaround for OPIE to remove taskbar icon. Also fixes
+// some issues in Qtopia where there are left-over qcop files in /tmp/.
+// I'm guessing this will also clean up the taskbar in the Sharp version
+// of Qtopia.
+static inline void cleanupQCop() {
+ QString appname(qApp->argv()[0]);
+ int slash = appname.findRev("/");
+ if(slash != -1) { appname = appname.mid(slash+1); }
+ QString cmd = QPEApplication::qpeDir() + "bin/qcop QPE/System 'closing(QString)' '"+appname+"'";
+ system(cmd.latin1());
+ cmd = "/tmp/qcop-msg-"+appname;
+ unlink(cmd.latin1());
+}
+
+static QPEApplication *app;
+#endif
+
+extern int SDL_main(int argc, char *argv[]);
+
+int main(int argc, char *argv[])
+{
+#ifdef QWS
+ // This initializes the Qtopia application. It needs to be done here
+ // because it parses command line options.
+ app = new QPEApplication(argc, argv);
+ QWidget dummy;
+ app->showMainWidget(&dummy);
+ atexit(cleanupQCop);
+#endif
+ // Exit here because if return is used, the application
+ // doesn't seem to quit correctly.
+ exit(SDL_main(argc, argv));
+}