30 #include <kcmdlineargs.h>
31 #include <kapplication.h>
34 #include "kscreensaver.h"
35 #include "kscreensaver_vroot.h"
39 extern const char *kss_applicationName;
40 extern const char *kss_description;
41 extern const char *kss_version;
43 TQDialog *kss_setup();
46 static const KCmdLineOptions options[] =
48 {
"setup", I18N_NOOP(
"Setup screen saver"), 0 },
49 {
"window-id wid", I18N_NOOP(
"Run in the specified XWindow"), 0 },
50 {
"root", I18N_NOOP(
"Run in the root XWindow"), 0 },
51 {
"demo", I18N_NOOP(
"Start screen saver in demo mode"),
"default"},
55 static void crashHandler(
int )
58 signal (SIGABRT, SIG_DFL);
65 class DemoWindow :
public TQWidget
68 DemoWindow() : TQWidget()
70 setFixedSize(600, 420);
74 virtual void keyPressEvent(TQKeyEvent *e)
76 if (e->ascii() ==
'q')
82 virtual void closeEvent( TQCloseEvent * )
90 #if defined(Q_WS_QWS) || defined(Q_WS_MACX)
94 KDE_EXPORT
int main(
int argc,
char *argv[])
96 KLocale::setMainCatalogue(
"libkscreensaver");
97 KCmdLineArgs::init(argc, argv, kss_applicationName, kss_description, kss_version);
99 KCmdLineArgs::addCmdLineOptions(options);
103 KCrash::setCrashHandler( crashHandler );
104 KGlobal::locale()->insertCatalogue(
"klock");
105 KGlobal::locale()->insertCatalogue(
"kscreensaver");
107 DemoWindow *demoWidget = 0;
111 KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
113 if (args->isSet(
"setup"))
115 TQDialog *dlg = kss_setup();
122 if (args->isSet(
"window-id"))
124 saveWin = atol(args->getOption(
"window-id"));
127 #ifdef Q_WS_X11 //FIXME
128 if (args->isSet(
"root"))
130 saveWin = RootWindow(qt_xdisplay(), qt_xscreen());
134 if (args->isSet(
"demo"))
141 demoWidget =
new DemoWindow();
142 demoWidget->setBackgroundMode(TQWidget::NoBackground);
143 saveWin = demoWidget->winId();
144 app.setMainWidget(demoWidget);
148 target = kss_create( saveWin );
152 demoWidget->setFixedSize( 600, 420 );