1 //-----------------------------------------------------------------------------
3 // Screen savers for KDE
5 // Copyright (c) Martin R. Jones 1999
18 #include <kstandarddirs.h>
20 #include <kapplication.h>
21 #include <kcmdlineargs.h>
23 #include <QDesktopWidget>
27 static const char appName
[] = "klock";
28 static const char description
[] = I18N_NOOP("KDE Screen Lock/Saver");
29 static const char version
[] = "2.0.0";
31 static const KCmdLineOptions options
[] =
33 { "setup", I18N_NOOP("Setup screen saver"), 0 },
34 { "window-id wid", I18N_NOOP("Run in the specified XWindow"), 0 },
35 { "root", I18N_NOOP("Run in the root XWindow"), 0 },
36 { "demo", I18N_NOOP("Start screen saver in demo mode"), "default"},
40 static void crashHandler( int /*sig*/ )
43 signal ( SIGABRT
, SIG_DFL
);
48 //----------------------------------------------------------------------------
50 int main(int argc
, char *argv
[])
52 KCmdLineArgs::init(argc
, argv
, appName
, I18N_NOOP("KLock"), description
, version
);
54 KCmdLineArgs::addCmdLineOptions(options
);
58 KCrash::setCrashHandler( crashHandler
);
60 DemoWindow
*demoWidget
= 0;
63 KCmdLineArgs
*args
= KCmdLineArgs::parsedArgs();
65 if (args
->isSet("setup"))
71 if (args
->isSet("window-id"))
73 saveWin
= atol(args
->getOption("window-id"));
76 if (args
->isSet("root"))
78 saveWin
= QApplication::desktop()->handle();
81 if (args
->isSet("demo"))
88 demoWidget
= new DemoWindow();
89 demoWidget
->setBackgroundMode(Qt::NoBackground
);
90 // demoWidget->setBackgroundColor(Qt::black);
92 saveWin
= demoWidget
->winId();
93 app
.setMainWidget(demoWidget
);
97 startScreenSaver(saveWin
);