From c90c389a8a8d9d8661e9772ec4144c5cf2039f23 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdegames@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kolf/objects/poolball/poolball.cpp | 86 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 kolf/objects/poolball/poolball.cpp (limited to 'kolf/objects/poolball/poolball.cpp') diff --git a/kolf/objects/poolball/poolball.cpp b/kolf/objects/poolball/poolball.cpp new file mode 100644 index 00000000..a5ca80ec --- /dev/null +++ b/kolf/objects/poolball/poolball.cpp @@ -0,0 +1,86 @@ +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include "poolball.h" + +K_EXPORT_COMPONENT_FACTORY(libkolfpoolball, PoolBallFactory) +QObject *PoolBallFactory::createObject (QObject *, const char *, const char *, const QStringList &) { return new PoolBallObj; } + +PoolBall::PoolBall(QCanvas *canvas) + : Ball(canvas) +{ + setBrush(black); + m_number = 1; +} + +void PoolBall::save(KConfig *cfg) +{ + cfg->writeEntry("number", number()); +} + +void PoolBall::saveState(StateDB *db) +{ + db->setPoint(QPoint(x(), y())); +} + +void PoolBall::load(KConfig *cfg) +{ + setNumber(cfg->readNumEntry("number", 1)); +} + +void PoolBall::loadState(StateDB *db) +{ + move(db->point().x(), db->point().y()); + setVelocity(0, 0); + setState(Stopped); +} + +void PoolBall::draw(QPainter &p) +{ + // we should draw the number here + Ball::draw(p); +} + +PoolBallConfig::PoolBallConfig(PoolBall *poolBall, QWidget *parent) + : Config(parent), m_poolBall(poolBall) +{ + QVBoxLayout *layout = new QVBoxLayout(this, marginHint(), spacingHint()); + + layout->addStretch(); + + QLabel *num = new QLabel(i18n("Number:"), this); + layout->addWidget(num); + KIntNumInput *slider = new KIntNumInput(m_poolBall->number(), this); + slider->setRange(1, 15); + layout->addWidget(slider); + + layout->addStretch(); + + connect(slider, SIGNAL(valueChanged(int)), this, SLOT(numberChanged(int))); +} + +void PoolBallConfig::numberChanged(int newNumber) +{ + m_poolBall->setNumber(newNumber); + changed(); +} + +Config *PoolBall::config(QWidget *parent) +{ + return new PoolBallConfig(this, parent); +} + +#include "poolball.moc" -- cgit v1.2.1