| 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 | } |