int main(int argc, char *argv[]) { KCmdLineArgs::init(argc, argv, appName, I18N_NOOP("KLock"), description, version); KCmdLineArgs::addCmdLineOptions(options); KApplication app; KCrash::setCrashHandler( crashHandler ); DemoWindow *demoWidget = 0; Window saveWin = 0; KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); if (args->isSet("setup")) { setupScreenSaver(); exit(0); } if (args->isSet("window-id")) { saveWin = atol(args->getOption("window-id")); } if (args->isSet("root")) { saveWin = TQApplication::desktop()->handle(); } if (args->isSet("demo")) { saveWin = 0; } if (saveWin == 0) { demoWidget = new DemoWindow(); demoWidget->setBackgroundMode(TQWidget::NoBackground); // demoWidget->setBackgroundColor(TQt::black); demoWidget->show(); saveWin = demoWidget->winId(); app.setMainWidget(demoWidget); app.processEvents(); } startScreenSaver(saveWin); app.exec(); stopScreenSaver(); if (demoWidget) { delete demoWidget; } return 0; }
int kScreenSaverMain( int argc, char** argv, KScreenSaverInterface& screenSaverInterface ) { KLocale::setMainCatalog("libkscreensaver"); KCmdLineArgs::init(argc, argv, screenSaverInterface.aboutData()); KCmdLineOptions options; options.add("setup", ki18n("Setup screen saver")); options.add("window-id wid", ki18n("Run in the specified XWindow")); options.add("root", ki18n("Run in the root XWindow")); options.add("demo", ki18n("Start screen saver in demo mode"), "default"); KCmdLineArgs::addCmdLineOptions(options); KApplication app; // Set a useful default icon. app.setWindowIcon(KIcon("preferences-desktop-screensaver")); if (!pipe(termPipe)) { #ifndef Q_WS_WIN struct sigaction sa; sa.sa_handler = termHandler; sigemptyset(&sa.sa_mask); sa.sa_flags = 0; sigaction(SIGTERM, &sa, 0); #endif QSocketNotifier *sn = new QSocketNotifier(termPipe[0], QSocketNotifier::Read, &app); QObject::connect(sn, SIGNAL(activated(int)), &app, SLOT(quit())); } #ifdef Q_WS_X11 oldXErrorHandler = XSetErrorHandler(xErrorHandler); #endif KCrash::setCrashHandler( crashHandler ); KGlobal::locale()->insertCatalog("klock"); KGlobal::locale()->insertCatalog("kscreensaver"); DemoWindow *demoWidget = 0; Window saveWin = 0; KScreenSaver *target; KCmdLineArgs *args = KCmdLineArgs::parsedArgs(); if (args->isSet("setup")) { QDialog *dlg = screenSaverInterface.setup(); args->clear(); dlg->exec(); delete dlg; return 0; } if (args->isSet("window-id")) { #ifdef Q_WS_WIN saveWin = (HWND)(args->getOption("window-id").toULong()); #else saveWin = args->getOption("window-id").toInt(); #endif } #ifdef Q_WS_X11 //FIXME if (args->isSet("root")) { QX11Info inf; saveWin = RootWindow(QX11Info::display(), inf.screen()); } #endif if (args->isSet("demo")) { saveWin = 0; } if (saveWin == 0) { demoWidget = new DemoWindow(); demoWidget->setAttribute(Qt::WA_NoSystemBackground); demoWidget->setAttribute(Qt::WA_PaintOnScreen); demoWidget->show(); app.processEvents(); saveWin = demoWidget->winId(); } target = screenSaverInterface.create( saveWin ); target->setAttribute(Qt::WA_PaintOnScreen); target->show(); if (demoWidget) { target->installEventFilter( demoWidget ); } args->clear(); app.exec(); delete target; delete demoWidget; return 0; }
KDE_EXPORT int main(int argc, char *argv[]) { TDELocale::setMainCatalogue("libtdescreensaver"); TDECmdLineArgs::init(argc, argv, kss_applicationName, kss_description, kss_version); TDECmdLineArgs::addCmdLineOptions(options); TDEApplication app; TDECrash::setCrashHandler( crashHandler ); TDEGlobal::locale()->insertCatalogue("klock"); TDEGlobal::locale()->insertCatalogue("tdescreensaver"); DemoWindow *demoWidget = 0; Window saveWin = 0; KScreenSaver *target; TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs(); if (args->isSet("setup")) { TQDialog *dlg = kss_setup(); args->clear(); dlg->exec(); delete dlg; exit(0); } if (args->isSet("window-id")) { saveWin = atol(args->getOption("window-id")); } #ifdef Q_WS_X11 //FIXME if (args->isSet("root")) { saveWin = RootWindow(tqt_xdisplay(), tqt_xscreen()); } #endif if (args->isSet("demo")) { saveWin = 0; } if (saveWin == 0) { demoWidget = new DemoWindow(); demoWidget->setBackgroundMode(TQWidget::NoBackground); saveWin = demoWidget->winId(); app.setMainWidget(demoWidget); app.processEvents(); } target = kss_create( saveWin ); if ( demoWidget ) { demoWidget->setFixedSize( 600, 420 ); demoWidget->show(); } args->clear(); app.exec(); delete target; delete demoWidget; return 0; }