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