diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | c90c389a8a8d9d8661e9772ec4144c5cf2039f23 (patch) | |
tree | 6d8391395bce9eaea4ad78958617edb20c6a7573 /klickety/piece.cpp | |
download | tdegames-c90c389a8a8d9d8661e9772ec4144c5cf2039f23.tar.gz tdegames-c90c389a8a8d9d8661e9772ec4144c5cf2039f23.zip |
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
Diffstat (limited to 'klickety/piece.cpp')
-rw-r--r-- | klickety/piece.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/klickety/piece.cpp b/klickety/piece.cpp new file mode 100644 index 00000000..4a33910b --- /dev/null +++ b/klickety/piece.cpp @@ -0,0 +1,52 @@ +#include "piece.h" + +#include <qpainter.h> +#include <klocale.h> +#include "base/board.h" + + +const char *KLPieceInfo::DEFAULT_COLORS[NB_BLOCK_TYPES] = { + "#C86464", "#64C864", "#6464C8", "#C8C864", "#C864C8" +}; + +QColor KLPieceInfo::defaultColor(uint i) const +{ + if ( i>=nbColors() ) return QColor(); + return QColor(DEFAULT_COLORS[i]); +} + +QString KLPieceInfo::colorLabel(uint i) const +{ + return i18n("Color #%1:").arg(i+1); +} + +void KLPieceInfo::draw(QPixmap *pixmap, uint blockType, uint bMode, + bool lighted) const +{ + QColor col = color(blockType); + if (lighted) col = col.light(); + pixmap->fill(col); + + QPainter p(pixmap); + QRect r = pixmap->rect(); + + p.setPen(col.dark()); + if ( !(bMode & BaseBoard::Up) ) + p.drawLine(r.topLeft(), r.topRight()); + if ( !(bMode & BaseBoard::Down) ) + p.drawLine(r.bottomLeft(), r.bottomRight()); + if ( !(bMode & BaseBoard::Left) ) + p.drawLine(r.topLeft(), r.bottomLeft()); + if ( !(bMode & BaseBoard::Right) ) + p.drawLine(r.topRight(),r.bottomRight()); + + p.setPen(col.dark(110)); + if (bMode & BaseBoard::Up) + p.drawLine(r.topLeft()+QPoint(1,0), r.topRight()+QPoint(-1,0)); + if (bMode & BaseBoard::Down) + p.drawLine(r.bottomLeft()+QPoint(1,0), r.bottomRight()+QPoint(-1,0)); + if (bMode & BaseBoard::Left) + p.drawLine(r.topLeft()+QPoint(0,1), r.bottomLeft()+QPoint(0,-1)); + if (bMode & BaseBoard::Right) + p.drawLine(r.topRight()+QPoint(0,1), r.bottomRight()+QPoint(0,-1)); +} |