From 7e09b5c2efae58399621a938de26b9675b8ba621 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sat, 26 Jan 2013 13:16:15 -0600 Subject: Rename a number of libraries and executables to avoid conflicts with KDE4 --- tdescreensaver/kdesavers/gravity.cpp | 419 +++++++++++++++++++++++++++++++++++ 1 file changed, 419 insertions(+) create mode 100644 tdescreensaver/kdesavers/gravity.cpp (limited to 'tdescreensaver/kdesavers/gravity.cpp') diff --git a/tdescreensaver/kdesavers/gravity.cpp b/tdescreensaver/kdesavers/gravity.cpp new file mode 100644 index 00000000..8c0accc1 --- /dev/null +++ b/tdescreensaver/kdesavers/gravity.cpp @@ -0,0 +1,419 @@ +//----------------------------------------------------------------------------- +// +// kgravity - Partical Gravity Screen Saver for KDE 2 +// +// Copyright (c) Ian Reinhart Geiser 2001 +// +// TDEConfig code and KScreenSaver "Setup..." improvements by +// Nick Betcher 2001 +// +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "gravity.h" +#include "gravity.moc" +#ifdef TQ_WS_MACX +#include +#include +#else +#include +#include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +// libtdescreensaver interface +extern "C" +{ + KDE_EXPORT const char *kss_applicationName = "kgravity.kss"; + KDE_EXPORT const char *kss_description = I18N_NOOP( "Particle Gravity Screen Saver" ); + KDE_EXPORT const char *kss_version = "2.2.0"; + + KDE_EXPORT KScreenSaver *kss_create( WId id ) + { + return new KGravitySaver( id ); + } + + KDE_EXPORT TQDialog *kss_setup() + { + return new KGravitySetup(); + } +} + +//----------------------------------------------------------------------------- +// dialog to setup screen saver parameters +// +KGravitySetup::KGravitySetup( TQWidget *parent, const char *name ) + : SetupUi( parent, name, TRUE ) +{ + readSettings(); + + preview->setFixedSize( 220, 170 ); + preview->setBackgroundColor( black ); +#ifdef TQ_WS_X11 + preview->show(); // otherwise saver does not get correct size +#endif + saver = new KGravitySaver( preview->winId() ); +; + connect( PushButton1, TQT_SIGNAL( clicked() ), TQT_SLOT( slotOkPressed() ) ); + connect( PushButton2, TQT_SIGNAL( clicked() ), TQT_SLOT( reject() ) ); + connect( PushButton3, TQT_SIGNAL( clicked() ), TQT_SLOT( aboutPressed() ) ); + connect( SpinBox1, TQT_SIGNAL( valueChanged(int)), saver, TQT_SLOT( updateSize(int))); + connect( RadioButton1, TQT_SIGNAL( toggled(bool)), saver, TQT_SLOT( doStars(bool))); + +} + +KGravitySetup::~KGravitySetup() +{ + delete saver; +} + +// read settings from config file +void KGravitySetup::readSettings() +{ + TDEConfig config("kssgravityrc", false, false); + + config.setGroup( "Settings" ); + TQString boolval = config.readEntry( "Stars", "false" ); + if (boolval == "true") { + RadioButton1->setDown(true); + RadioButton1_2->setDown(false); + } else { + if (boolval == "false") + { + RadioButton1->setDown(false); + RadioButton1_2->setDown(true); + } + } + + TQString starammount = config.readEntry("StarSize", "75"); + SpinBox1->setValue(starammount.toInt()); + +} + +// Ok pressed - save settings and exit +void KGravitySetup::slotOkPressed() +{ + TDEConfig config("kssgravityrc", false, false); + config.setGroup( "Settings" ); + + if (RadioButton1->isOn() == true) + { + config.writeEntry( "Stars", "true" ); + } else { + if (RadioButton1_2->isOn() == true) + { + config.writeEntry( "Stars", "false" ); + } + } + config.writeEntry( "StarSize", TQString::number(SpinBox1->value()) ); + + config.sync(); + + accept(); +} + +void KGravitySetup::aboutPressed() +{ + KMessageBox::about(this, + i18n("

Gravity

\n

Particle Gravity Screen Saver for TDE

\nCopyright (c) Ian Reinhart Geiser 2001
\n\n

TDEConfig code and KScreenSaver \"Setup...\" improvements by Nick Betcher 2001

")); +} +//----------------------------------------------------------------------------- + + +KGravitySaver::KGravitySaver( WId id ) : KScreenSaver( id ) +{ + + kdDebug() << "Blank" << endl; + + timer = new TQTimer( this ); + timer->start( 25, TRUE ); + setBackgroundColor( black ); + erase(); + gravity = new Gravity(); + embed(gravity); +#ifdef TQ_WS_X11 + gravity->show(); +#endif + connect( timer, TQT_SIGNAL(timeout()), this, TQT_SLOT(blank()) ); +} + +KGravitySaver::~KGravitySaver() +{ + +} + +// read configuration settings from config file +void KGravitySaver::readSettings() +{ +// Please remove me + +} + +void KGravitySaver::blank() +{ + // Play gravity + + gravity->updateGL(); + timer->start( 25, TRUE ); + +} +Gravity::Gravity( TQWidget * parent, const char * name) : TQGLWidget (parent,name) +{ + rainbow=true; + slowdown=2.0f; + zoom=-50.0f; + index=0; + size = 3.95f; +// obj = gluNewQuadric(); + +// This has to be here because you can't update the gravity until 'gravity' is created! + TDEConfig config("kssgravityrc", false, false); + config.setGroup( "Settings" ); + TQString boolval = config.readEntry( "Stars", "false" ); + if (boolval == "true") { + setStars(true); + } else { + if (boolval == "false") + { + setStars(false); + } + } + + TQString starammount = config.readEntry("StarSize", "75"); + float passvalue = (starammount.toInt() / 100.0); + setSize(passvalue); + +} + +Gravity::~Gravity() +{ + glDeleteTextures( 1, &texture[0] ); + gluDeleteQuadric(obj); +} + +/** load the particle file */ +bool Gravity::loadParticle() +{ + /* Status indicator */ + bool Status = TRUE; + TQImage buf; + + kdDebug() << "Loading: " << locate("data", "tdescreensaver/particle.png") << endl; + if (buf.load( locate("data", "tdescreensaver/particle.png") ) ) + + { + tex = convertToGLFormat(buf); // flipped 32bit RGBA + kdDebug() << "Texture loaded: " << tex.numBytes () << endl; + } + else + { + TQImage dummy( 32, 32, 32 ); + dummy.fill( TQt::white.rgb() ); + buf = dummy; + tex = convertToGLFormat( buf ); + } + + /* Set the status to true */ + //Status = TRUE; + glGenTextures(1, &texture[0]); /* create three textures */ + glBindTexture(GL_TEXTURE_2D, texture[0]); + /* use linear filtering */ + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + /* actually generate the texture */ + glTexImage2D(GL_TEXTURE_2D, 0, 4, tex.width(), tex.height(), 0, + GL_RGBA, GL_UNSIGNED_BYTE, tex.bits()); + + + + return Status; +} +/** setup the GL enviroment */ +void Gravity::initializeGL () +{ + + kdDebug() << "InitGL" << endl; + + if (loadParticle()) // Jump To Texture Loading Routine + { + /* Enable smooth shading */ + glShadeModel( GL_SMOOTH ); + + /* Set the background black */ + glClearColor( 0.0f, 0.0f, 0.0f, 0.0f ); + + /* Depth buffer setup */ + glClearDepth( 1.0f ); + + /* Enables Depth Testing */ + glDisable( GL_DEPTH_TEST ); + + /* Enable Blending */ + glEnable( GL_BLEND ); + /* Type Of Blending To Perform */ + glBlendFunc( GL_SRC_ALPHA, GL_ONE ); + + + /* Really Nice Perspective Calculations */ + glHint( GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST ); + /* Really Nice Point Smoothing */ + glHint( GL_POINT_SMOOTH_HINT, GL_NICEST ); + + /* Enable Texture Mapping */ + glEnable( GL_TEXTURE_2D ); + /* Select Our Texture */ + glBindTexture( GL_TEXTURE_2D, texture[0] ); + + for (loop=0;loopsetSize(newSize/100); +} +void KGravitySaver::doStars(bool starState) +{ + gravity->setStars(starState); +} + +void Gravity::buildParticle(int loop) +{ + GLfloat colors[12][3]= + {{1.0f,0.5f,0.5f},{1.0f,0.75f,0.5f},{1.0f,1.0f,0.5f},{0.75f,1.0f,0.5f}, + {0.5f,1.0f,0.5f},{0.5f,1.0f,0.75f},{0.5f,1.0f,1.0f},{0.5f,0.75f,1.0f}, + {0.5f,0.5f,1.0f},{0.75f,0.5f,1.0f},{1.0f,0.5f,1.0f},{1.0f,0.5f,0.75f}}; + col = ( ++col ) % 12; + particle[loop].active=true; + particle[loop].index=TDEApplication::random()%100; + particle[loop].indexo=particle[loop].index; + particle[loop].fade=float(TDEApplication::random()%100)/1000.0f+0.003f; // Random Fade Value + particle[loop].r=colors[col][0]; // Select Red From Color Table + particle[loop].g=colors[col][1]; // Select Green From Color Table + particle[loop].b=colors[col][2]; // Select Blue From Color Table + particle[loop].size=size; + particle[loop].x = float(TDEApplication::random()%100-50)*4.0; + particle[loop].y = float(TDEApplication::random()%20-10)*4.0; + particle[loop].z = float(TDEApplication::random()%100-50)*4.0; + particle[loop].xo = particle[loop].x; + if ((1+(TDEApplication::random() % 10) > 5)) + particle[loop].yo = particle[loop].y; + else + particle[loop].yo = 0.0; + particle[loop].zo = particle[loop].z; + +} + -- cgit v1.2.1