You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdebase/tdescreensaver/blankscrn.cpp

136 lines
3.2 KiB

//-----------------------------------------------------------------------------
//
// 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"
{
TDE_EXPORT const char *kss_applicationName = "kblankscrn.kss";
TDE_EXPORT const char *kss_description = I18N_NOOP( "KBlankScreen" );
TDE_EXPORT const char *kss_version = "2.2.0";
TDE_EXPORT KScreenSaver* kss_create( WId id )
{
return new KBlankSaver( id );
}
TDE_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();
}