e14743d1 |
1 | |
2 | /* Include the SDL main definition header */ |
3 | #include "SDL_main.h" |
4 | #include <stdlib.h> |
5 | #include <unistd.h> |
6 | #ifdef main |
7 | #undef main |
8 | #endif |
9 | #ifdef QWS |
10 | #include <qpe/qpeapplication.h> |
11 | #include <qapplication.h> |
12 | #include <qpe/qpeapplication.h> |
13 | #include <stdlib.h> |
14 | |
15 | // Workaround for OPIE to remove taskbar icon. Also fixes |
16 | // some issues in Qtopia where there are left-over qcop files in /tmp/. |
17 | // I'm guessing this will also clean up the taskbar in the Sharp version |
18 | // of Qtopia. |
19 | static inline void cleanupQCop() { |
20 | QString appname(qApp->argv()[0]); |
21 | int slash = appname.findRev("/"); |
22 | if(slash != -1) { appname = appname.mid(slash+1); } |
23 | QString cmd = QPEApplication::qpeDir() + "bin/qcop QPE/System 'closing(QString)' '"+appname+"'"; |
24 | system(cmd.latin1()); |
25 | cmd = "/tmp/qcop-msg-"+appname; |
26 | unlink(cmd.latin1()); |
27 | } |
28 | |
29 | static QPEApplication *app; |
30 | #endif |
31 | |
32 | extern int SDL_main(int argc, char *argv[]); |
33 | |
34 | int main(int argc, char *argv[]) |
35 | { |
36 | #ifdef QWS |
37 | // This initializes the Qtopia application. It needs to be done here |
38 | // because it parses command line options. |
39 | app = new QPEApplication(argc, argv); |
40 | QWidget dummy; |
41 | app->showMainWidget(&dummy); |
42 | atexit(cleanupQCop); |
43 | #endif |
44 | // Exit here because if return is used, the application |
45 | // doesn't seem to quit correctly. |
46 | exit(SDL_main(argc, argv)); |
47 | } |