//-----------------------------------------------------------------------------
//
// kblankscrn - Basic screen saver for KDE
//
// Copyright (c) Martin R. Jones 1996
//
// 1998/04/19 Layout management added by Mario Weilguni <mweilguni@kde.org>
// 2001/03/04 Converted to use libtdescreensaver by Martin R. Jones
# include <stdlib.h>
# include <tqlabel.h>
# include <tqlayout.h>
# include <tdeapplication.h>
# include <tdelocale.h>
# include <tdeconfig.h>
# include <kcolordialog.h>
# include <kbuttonbox.h>
# include <kcolorbutton.h>
# include <tdeglobal.h>
# include "blankscrn.h"
# include "blankscrn.moc"
// libtdescreensaver interface
extern " C "
{
KDE_EXPORT const char * kss_applicationName = " kblankscrn.kss " ;
KDE_EXPORT const char * kss_description = I18N_NOOP ( " KBlankScreen " ) ;
KDE_EXPORT const char * kss_version = " 2.2.0 " ;
KDE_EXPORT KScreenSaver * kss_create ( WId id )
{
return new KBlankSaver ( id ) ;
}
KDE_EXPORT TQDialog * kss_setup ( )
{
return new KBlankSetup ( ) ;
}
}
//-----------------------------------------------------------------------------
// dialog to setup screen saver parameters
//
KBlankSetup : : KBlankSetup ( TQWidget * parent , const char * name )
: KDialogBase ( parent , name , true , i18n ( " Setup Blank Screen Saver " ) ,
Ok | Cancel , Ok , true )
{
readSettings ( ) ;
TQFrame * main = makeMainWidget ( ) ;
TQGridLayout * grid = new TQGridLayout ( main , 4 , 2 , 0 , spacingHint ( ) ) ;
TQLabel * label = new TQLabel ( i18n ( " Color: " ) , main ) ;
grid - > addWidget ( label , 0 , 0 ) ;
KColorButton * colorPush = new KColorButton ( color , main ) ;
colorPush - > setMinimumWidth ( 80 ) ;
connect ( colorPush , TQ_SIGNAL ( changed ( const TQColor & ) ) ,
TQ_SLOT ( slotColor ( const TQColor & ) ) ) ;
grid - > addWidget ( colorPush , 1 , 0 ) ;
preview = new TQWidget ( main ) ;
preview - > setFixedSize ( 220 , 165 ) ;
preview - > setBackgroundColor ( black ) ;
preview - > show ( ) ; // otherwise saver does not get correct size
saver = new KBlankSaver ( preview - > winId ( ) ) ;
grid - > addMultiCellWidget ( preview , 0 , 2 , 1 , 1 ) ;
grid - > setRowStretch ( 2 , 10 ) ;
grid - > setRowStretch ( 3 , 20 ) ;
setMinimumSize ( sizeHint ( ) ) ;
}
// read settings from config file
void KBlankSetup : : readSettings ( )
{
TDEConfig * config = TDEGlobal : : config ( ) ;
config - > setGroup ( " Settings " ) ;
color = config - > readColorEntry ( " Color " , & black ) ;
}
void KBlankSetup : : slotColor ( const TQColor & col )
{
color = col ;
saver - > setColor ( color ) ;
}
// Ok pressed - save settings and exit
void KBlankSetup : : slotOk ( )
{
TDEConfig * config = TDEGlobal : : config ( ) ;
config - > setGroup ( " Settings " ) ;
config - > writeEntry ( " Color " , color ) ;
config - > sync ( ) ;
accept ( ) ;
}
//-----------------------------------------------------------------------------
KBlankSaver : : KBlankSaver ( WId id ) : KScreenSaver ( id )
{
readSettings ( ) ;
blank ( ) ;
}
KBlankSaver : : ~ KBlankSaver ( )
{
}
// set the color
void KBlankSaver : : setColor ( const TQColor & col )
{
color = col ;
blank ( ) ;
}
// read configuration settings from config file
void KBlankSaver : : readSettings ( )
{
TDEConfig * config = TDEGlobal : : config ( ) ;
config - > setGroup ( " Settings " ) ;
color = config - > readColorEntry ( " Color " , & black ) ;
}
void KBlankSaver : : blank ( )
{
setBackgroundColor ( color ) ;
erase ( ) ;
}