30 #include <kcmdlineargs.h>
31 #include <kapplication.h>
34 #include "kscreensaver.h"
35 #include "kscreensaver_vroot.h"
37 bool argb_visual = FALSE;
41 extern const char *kss_applicationName;
42 extern const char *kss_description;
43 extern const char *kss_version;
45 TQDialog *kss_setup();
48 static const KCmdLineOptions options[] =
50 {
"setup", I18N_NOOP(
"Setup screen saver"), 0 },
51 {
"window-id wid", I18N_NOOP(
"Run in the specified XWindow"), 0 },
52 {
"root", I18N_NOOP(
"Run in the root XWindow"), 0 },
53 {
"demo", I18N_NOOP(
"Start screen saver in demo mode"),
"default"},
57 static void crashHandler(
int )
60 signal (SIGABRT, SIG_DFL);
67 class DemoWindow :
public TQWidget
70 DemoWindow() : TQWidget()
72 setFixedSize(600, 420);
76 virtual void keyPressEvent(TQKeyEvent *e)
78 if (e->ascii() ==
'q')
84 virtual void closeEvent( TQCloseEvent * )
92 #if defined(Q_WS_QWS) || defined(Q_WS_MACX)
96 KDE_EXPORT
int main(
int argc,
char *argv[])
98 KLocale::setMainCatalogue(
"libkscreensaver");
99 KCmdLineArgs::init(argc, argv, kss_applicationName, kss_description, kss_version);
101 KCmdLineArgs::addCmdLineOptions(options);
103 #ifdef HAVE_XCOMPOSITE
104 KApplication app(KApplication::openX11RGBADisplay());
105 argb_visual = app.isX11CompositionAvailable();
110 KCrash::setCrashHandler( crashHandler );
111 KGlobal::locale()->insertCatalogue(
"klock");
112 KGlobal::locale()->insertCatalogue(
"kscreensaver");
114 DemoWindow *demoWidget = 0;
118 KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
120 if (args->isSet(
"setup"))
122 TQDialog *dlg = kss_setup();
129 if (args->isSet(
"window-id"))
131 saveWin = atol(args->getOption(
"window-id"));
134 #ifdef Q_WS_X11 //FIXME
135 if (args->isSet(
"root"))
137 saveWin = RootWindow(qt_xdisplay(), qt_xscreen());
141 if (args->isSet(
"demo"))
148 demoWidget =
new DemoWindow();
149 demoWidget->setBackgroundMode(TQWidget::NoBackground);
150 saveWin = demoWidget->winId();
151 app.setMainWidget(demoWidget);
155 target = kss_create( saveWin );
159 demoWidget->setFixedSize( 600, 420 );
Provides a TQWidget for a screensaver to draw into.