SVN_SILENT made messages (.desktop file)
[kdeartwork.git] / kscreensaver / xsavers / main.cpp
blob6e56e1005b6df19762b31bd50629b069f2bbcac4
1 //-----------------------------------------------------------------------------
2 //
3 // Screen savers for KDE
4 //
5 // Copyright (c) Martin R. Jones 1999
6 //
8 #include <stdio.h>
9 #include <stdlib.h>
10 #include <signal.h>
12 #include <qcolor.h>
14 #include <klocale.h>
15 #include <kconfig.h>
16 #include <kstandarddirs.h>
17 #include <kdebug.h>
18 #include <kapplication.h>
19 #include <kcmdlineargs.h>
20 #include <kcrash.h>
21 #include <QDesktopWidget>
22 #include "demowin.h"
23 #include "saver.h"
25 static const char appName[] = "klock";
26 static const char description[] = I18N_NOOP("KDE Screen Lock/Saver");
27 static const char version[] = "2.0.0";
29 static void crashHandler( int /*sig*/ )
31 #ifdef SIGABRT
32 signal ( SIGABRT, SIG_DFL );
33 #endif
34 abort();
37 //----------------------------------------------------------------------------
39 int main(int argc, char *argv[])
41 KCmdLineArgs::init(argc, argv, appName, 0, ki18n("KLock"), version, ki18n(description));
44 KCmdLineOptions options;
46 options.add("setup", ki18n("Setup screen saver"));
48 options.add("window-id wid", ki18n("Run in the specified XWindow"));
50 options.add("root", ki18n("Run in the root XWindow"));
52 options.add("demo", ki18n("Start screen saver in demo mode"), "default");
54 KCmdLineArgs::addCmdLineOptions(options);
56 KApplication app;
58 KCrash::setCrashHandler( crashHandler );
60 DemoWindow *demoWidget = 0;
61 Window saveWin = 0;
63 KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
65 if (args->isSet("setup"))
67 setupScreenSaver();
68 exit(0);
71 if (args->isSet("window-id"))
73 saveWin = args->getOption("window-id").toInt();
76 if (args->isSet("root"))
78 saveWin = QApplication::desktop()->handle();
81 if (args->isSet("demo"))
83 saveWin = 0;
86 if (saveWin == 0)
88 demoWidget = new DemoWindow();
89 demoWidget->setAttribute(Qt::WA_NoSystemBackground, true);
90 demoWidget->show();
91 saveWin = demoWidget->winId();
92 app.processEvents();
95 startScreenSaver(saveWin);
96 app.exec();
97 stopScreenSaver();
99 if (demoWidget)
101 delete demoWidget;
104 return 0;