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.
136 lines
3.2 KiB
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();
|
|
}
|
|
|