diff options
Diffstat (limited to 'kscreensaver/kdesavers/polygon.cpp')
-rw-r--r-- | kscreensaver/kdesavers/polygon.cpp | 366 |
1 files changed, 0 insertions, 366 deletions
diff --git a/kscreensaver/kdesavers/polygon.cpp b/kscreensaver/kdesavers/polygon.cpp deleted file mode 100644 index 2358f90a..00000000 --- a/kscreensaver/kdesavers/polygon.cpp +++ /dev/null @@ -1,366 +0,0 @@ -//----------------------------------------------------------------------------- -// -// kpolygon - Basic screen saver for KDE -// -// Copyright (c) Martin R. Jones 1996 -// -// layout management added 1998/04/19 by Mario Weilguni <[email protected]> -// 2001/03/04 Converted to libkscreensaver by Martin R. Jones - -#include <config.h> -#include <stdlib.h> -#include <time.h> -#include <tqcolor.h> -#include <tqlabel.h> -#include <tqslider.h> -#include <tqlayout.h> -#include <klocale.h> -#include <kconfig.h> -#include <kglobal.h> -#include <kmessagebox.h> - -#include "polygon.h" -#include <tqpainter.h> - -#include "polygon.moc" - - -#define MAXLENGTH 65 -#define MAXVERTICES 19 - -// libkscreensaver interface -extern "C" -{ - KDE_EXPORT const char *kss_applicationName = "kpolygon.kss"; - KDE_EXPORT const char *kss_description = I18N_NOOP( "KPolygon" ); - KDE_EXPORT const char *kss_version = "2.2.0"; - - KDE_EXPORT KScreenSaver *kss_create( WId id ) - { - return new kPolygonSaver( id ); - } - - KDE_EXPORT TQDialog *kss_setup() - { - return new kPolygonSetup(); - } -} - -//----------------------------------------------------------------------------- -// dialog to setup screen saver parameters -// -kPolygonSetup::kPolygonSetup( TQWidget *parent, const char *name ) - : KDialogBase( parent, name, true, i18n( "Setup Polygon Screen Saver" ), - Ok|Cancel|Help, Ok, true ), saver( 0 ), length( 10 ), vertices( 3 ), - speed( 50 ) -{ - readSettings(); - - TQWidget *main = makeMainWidget(); - setButtonText( Help, i18n( "A&bout" ) ); - - TQHBoxLayout *tl = new TQHBoxLayout(main, 0, spacingHint()); - TQVBoxLayout *tl1 = new TQVBoxLayout; - tl->addLayout(tl1); - - TQLabel *label = new TQLabel( i18n("Length:"), main ); - tl1->addWidget(label); - - TQSlider *sb = new TQSlider(1, MAXLENGTH, 10, length, Qt::Horizontal, - main ); - sb->setMinimumSize( 90, 20 ); - sb->setTickmarks(TQSlider::Below); - sb->setTickInterval(10); - connect( sb, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotLength( int ) ) ); - tl1->addWidget(sb); - - label = new TQLabel( i18n("Vertices:"), main ); - tl1->addWidget(label); - - sb = new TQSlider(3, MAXVERTICES, 2, vertices, Qt::Horizontal, main); - sb->setMinimumSize( 90, 20 ); - sb->setTickmarks(TQSlider::Below); - sb->setTickInterval(2); - connect( sb, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotVertices( int ) ) ); - tl1->addWidget(sb); - - label = new TQLabel( i18n("Speed:"), main ); - tl1->addWidget(label); - - sb = new TQSlider(0, 100, 10, speed, Qt::Horizontal, main); - sb->setMinimumSize( 90, 20 ); - sb->setTickmarks(TQSlider::Below); - sb->setTickInterval(10); - connect( sb, TQT_SIGNAL( valueChanged( int ) ), TQT_SLOT( slotSpeed( int ) ) ); - tl1->addWidget(sb); - tl1->addStretch(); - - preview = new TQWidget( main ); - preview->setFixedSize( 220, 170 ); - preview->setBackgroundColor( black ); - preview->show(); // otherwise saver does not get correct size - saver = new kPolygonSaver( preview->winId() ); - tl->addWidget(preview); - - setMinimumSize( sizeHint() ); -} - -kPolygonSetup::~kPolygonSetup() -{ - delete saver; -} - -// read settings from config file -void kPolygonSetup::readSettings() -{ - TDEConfig *config = TDEGlobal::config(); - config->setGroup( "Settings" ); - - length = config->readNumEntry( "Length", length ); - if ( length > MAXLENGTH ) - length = MAXLENGTH; - else if ( length < 1 ) - length = 1; - - vertices = config->readNumEntry( "Vertices", vertices ); - if ( vertices > MAXVERTICES ) - vertices = MAXVERTICES; - else if ( vertices < 3 ) - vertices = 3; - - speed = config->readNumEntry( "Speed", speed ); - if ( speed > 100 ) - speed = 100; - else if ( speed < 50 ) - speed = 50; -} - -void kPolygonSetup::slotLength( int len ) -{ - length = len; - if ( saver ) - saver->setPolygon( length, vertices ); -} - -void kPolygonSetup::slotVertices( int num ) -{ - vertices = num; - if ( saver ) - saver->setPolygon( length, vertices ); -} - -void kPolygonSetup::slotSpeed( int num ) -{ - speed = num; - if ( saver ) - saver->setSpeed( speed ); -} - -// Ok pressed - save settings and exit -void kPolygonSetup::slotOk() -{ - TDEConfig *config = TDEGlobal::config(); - config->setGroup( "Settings" ); - - TQString slength; - slength.setNum( length ); - config->writeEntry( "Length", slength ); - - TQString svertices; - svertices.setNum( vertices ); - config->writeEntry( "Vertices", svertices ); - - TQString sspeed; - sspeed.setNum( speed ); - config->writeEntry( "Speed", sspeed ); - - config->sync(); - - accept(); -} - -void kPolygonSetup::slotHelp() -{ - KMessageBox::information(this, - i18n("Polygon Version 2.2.0\n\n"\ - "Written by Martin R. Jones 1996\n"\ - "[email protected]")); -} - -//----------------------------------------------------------------------------- - - -kPolygonSaver::kPolygonSaver( WId id ) : KScreenSaver( id ) -{ - polygons.setAutoDelete( TRUE ); - - readSettings(); - - directions.resize( numVertices ); - colorContext = TQColor::enterAllocContext(); - - blank(); - - initialiseColor(); - initialisePolygons(); - - timer.start( speed ); - connect( &timer, TQT_SIGNAL( timeout() ), TQT_SLOT( slotTimeout() ) ); -} - -kPolygonSaver::~kPolygonSaver() -{ - timer.stop(); - TQColor::leaveAllocContext(); - TQColor::destroyAllocContext( colorContext ); -} - -// set polygon properties -void kPolygonSaver::setPolygon( int len, int ver ) -{ - timer.stop(); - numLines = len; - numVertices = ver; - - directions.resize( numVertices ); - polygons.clear(); - initialisePolygons(); - blank(); - - timer.start( speed ); -} - -// set the speed -void kPolygonSaver::setSpeed( int spd ) -{ - timer.stop(); - speed = 100-spd; - timer.start( speed ); -} - -// read configuration settings from config file -void kPolygonSaver::readSettings() -{ - TDEConfig *config = TDEGlobal::config(); - config->setGroup( "Settings" ); - - numLines = config->readNumEntry( "Length", 10 ); - if ( numLines > 50 ) - numLines = 50; - else if ( numLines < 1 ) - numLines = 1; - - numVertices = config->readNumEntry( "Vertices", 3 ); - if ( numVertices > 20 ) - numVertices = 20; - else if ( numVertices < 3 ) - numVertices = 3; - - speed = 100 - config->readNumEntry( "Speed", 50 ); -} - -// draw next polygon and erase tail -void kPolygonSaver::slotTimeout() -{ - TQPainter p( this ); - if ( polygons.count() > numLines ) - { - p.setPen( black ); - p.drawPolyline( *polygons.first() ); - } - - nextColor(); - p.setPen( colors[currentColor] ); - p.drawPolyline( *polygons.last() ); - - if ( polygons.count() > numLines ) - polygons.removeFirst(); - - polygons.append( new TQPointArray( polygons.last()->copy() ) ); - moveVertices(); -} - -void kPolygonSaver::blank() -{ - setBackgroundColor( black ); - erase(); -} - -// initialise the polygon -void kPolygonSaver::initialisePolygons() -{ - int i; - - polygons.append( new TQPointArray( numVertices + 1 ) ); - - TQPointArray &poly = *polygons.last(); - - for ( i = 0; i < numVertices; i++ ) - { - poly.setPoint( i, rnd.getLong(width()), rnd.getLong(height()) ); - directions[i].setX( 16 - rnd.getLong(8) * 4 ); - if ( directions[i].x() == 0 ) - directions[i].setX( 1 ); - directions[i].setY( 16 - rnd.getLong(8) * 4 ); - if ( directions[i].y() == 0 ) - directions[i].setY( 1 ); - } - - poly.setPoint( i, poly.point(0) ); -} - -// move polygon in current direction and change direction if a border is hit -void kPolygonSaver::moveVertices() -{ - int i; - TQPointArray &poly = *polygons.last(); - - for ( i = 0; i < numVertices; i++ ) - { - poly.setPoint( i, poly.point(i) + directions[i] ); - if ( poly[i].x() >= (int)width() ) - { - directions[i].setX( -(rnd.getLong(4) + 1) * 4 ); - poly[i].setX( (int)width() ); - } - else if ( poly[i].x() < 0 ) - { - directions[i].setX( (rnd.getLong(4) + 1) * 4 ); - poly[i].setX( 0 ); - } - - if ( poly[i].y() >= (int)height() ) - { - directions[i].setY( -(rnd.getLong(4) + 1) * 4 ); - poly[i].setY( height() ); - } - else if ( poly[i].y() < 0 ) - { - directions[i].setY( (rnd.getLong(4) + 1) * 4 ); - poly[i].setY( 0 ); - } - } - - poly.setPoint( i, poly.point(0) ); -} - -// create a color table of 64 colors -void kPolygonSaver::initialiseColor() -{ - for ( int i = 0; i < 64; i++ ) - { - colors[i].setHsv( i * 360 / 64, 255, 255 ); - } - - currentColor = 0; -} - -// set foreground color to next in the table -void kPolygonSaver::nextColor() -{ - currentColor++; - - if ( currentColor > 63 ) - currentColor = 0; -} - |