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 | 90825e2392b2d70e43c7a25b8a3752299a933894 (patch) | |
tree | e33aa27f02b74604afbfd0ea4f1cfca8833d882a /qtjava/javalib/tutorial/t10/CannonField.java | |
download | tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.tar.gz tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.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/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'qtjava/javalib/tutorial/t10/CannonField.java')
-rw-r--r-- | qtjava/javalib/tutorial/t10/CannonField.java | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/qtjava/javalib/tutorial/t10/CannonField.java b/qtjava/javalib/tutorial/t10/CannonField.java new file mode 100644 index 00000000..3f6e2727 --- /dev/null +++ b/qtjava/javalib/tutorial/t10/CannonField.java @@ -0,0 +1,72 @@ +import org.kde.qt.*; + +public class CannonField extends QWidget { + private int ang; + private int f; + + public CannonField(QWidget parent, String name) { + super(parent, name); + ang = 45; + setPalette(new QPalette(new QColor(250, 250, 200))); + } + + public int angle() { + return ang; + } + + public void setAngle(int degrees) { + if (degrees < 5) + degrees = 5; + if (degrees > 70) + degrees = 70; + if (ang == degrees) + return; + ang = degrees; + repaint(); + emit("angleChanged", ang); + } + + public int force() { + return f; + } + + public void setForce(int newton) { + if (newton < 0) + newton = 0; + if (f == newton) + return; + f = newton; + emit("forceChanged", f); + } + + private QRect cannonRect() { + QRect r = new QRect(0, 0, 50, 50); + r.moveBottomLeft(rect().bottomLeft()); + return r; + } + + public void paintEvent(QPaintEvent e) { + if (!e.rect().intersects(cannonRect())) + return; + + QRect cr = cannonRect(); + QPixmap pix = new QPixmap(cr.size()); + pix.fill(new QColor(250, 250, 200)); + + QPainter p = new QPainter(pix); + p.setBrush(blue()); + p.setPen(NoPen); + p.translate(0, pix.height() - 1); + p.drawPie(new QRect(-35,-35, 70, 70), 0, 90*16); + p.rotate(-ang); + p.drawRect(new QRect(33, -4, 15, 8)); + p.end(); + + p.begin(this); + p.drawPixmap(cr.topLeft(), pix); + } + + public QSizePolicy sizePolicy() { + return new QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding); + } +} |