summaryrefslogtreecommitdiff
path: root/muse2/muse/widgets/siglabel.cpp
diff options
context:
space:
mode:
authorRobert Jonsson <spamatica@gmail.com>2010-10-13 19:34:22 +0000
committerRobert Jonsson <spamatica@gmail.com>2010-10-13 19:34:22 +0000
commit8a2c2824a59d7644e13bc52c9a0ecbd641f21f95 (patch)
tree064ad3f2bf8daab0ad27b128abd86a9bbdb1e496 /muse2/muse/widgets/siglabel.cpp
parenta27706d9629e8b592cca4659f865b70adef24e6d (diff)
new branch muse2, first checkin
Diffstat (limited to 'muse2/muse/widgets/siglabel.cpp')
-rw-r--r--muse2/muse/widgets/siglabel.cpp157
1 files changed, 157 insertions, 0 deletions
diff --git a/muse2/muse/widgets/siglabel.cpp b/muse2/muse/widgets/siglabel.cpp
new file mode 100644
index 00000000..54338ab6
--- /dev/null
+++ b/muse2/muse/widgets/siglabel.cpp
@@ -0,0 +1,157 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: siglabel.cpp,v 1.1.1.1 2003/10/27 18:54:28 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include "siglabel.h"
+#include <stdio.h>
+
+#define TIMER1 400
+#define TIMER2 200
+#define TIMEC 7
+#define TIMER3 100
+#define TIMEC2 20
+#define TIMER4 50
+
+#include "globals.h"
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <QWheelEvent>
+#include <QLabel>
+
+//---------------------------------------------------------
+// SigLabel
+// edit Signature Values (4/4)
+//---------------------------------------------------------
+
+SigLabel::SigLabel(int a, int b, QWidget* parent) : QLabel(parent)
+ {
+ z = n = 0;
+ setFocusPolicy(Qt::NoFocus);
+ setAlignment(Qt::AlignCenter);
+ setValue(a, b);
+ }
+
+//---------------------------------------------------------
+// mousePressEvent
+//---------------------------------------------------------
+
+void SigLabel::mousePressEvent(QMouseEvent* event)
+ {
+ int button = event->button();
+ bool zaehler = event->x() < width() /2;
+
+ int zz = z, nn = n;
+ switch (button) {
+ case Qt::LeftButton:
+ return;
+ case Qt::MidButton:
+ incValue(zaehler, false, zz, nn);
+ break;
+ case Qt::RightButton:
+ incValue(zaehler, true, zz, nn);
+ break;
+ default:
+ break;
+ }
+ if ((zz != z) || (nn != n)) {
+ setValue(zz, nn);
+ emit valueChanged(zz, nn);
+ }
+ }
+
+//---------------------------------------------------------
+// incValue
+//---------------------------------------------------------
+
+void SigLabel::incValue(bool zaehler, bool up, int& zz, int& nn)
+ {
+ if (!up) {
+ if (zaehler) {
+ --zz;
+ if (zz < 1)
+ zz = 1;
+ }
+ else {
+ switch (nn) {
+ case 1: break;
+ case 2: nn = 1; break;
+ case 4: nn = 2; break;
+ case 8: nn = 4; break;
+ case 16: nn = 8; break;
+ case 32: nn = 16; break;
+ case 64: nn = 32; break;
+ case 128: nn = 64; break;
+ }
+ }
+ }
+ else {
+ if (zaehler) {
+ ++zz;
+ if (zz > 16)
+ zz = 16;
+ }
+ else {
+ switch (nn) {
+ case 1: nn = 2; break;
+ case 2: nn = 4; break;
+ case 4: nn = 8; break;
+ case 8: nn = 16; break;
+ case 16: nn = 32; break;
+ case 32: nn = 64; break;
+ case 64: nn = 128; break;
+ case 128: break;
+ }
+ }
+ }
+ }
+
+//---------------------------------------------------------
+// wheelEvent
+//---------------------------------------------------------
+
+void SigLabel::wheelEvent(QWheelEvent* event)
+ {
+ bool zaehler = event->x() < width() /2;
+ int delta = event->delta();
+ int zz = z, nn = n;
+
+ bool inc = delta >= 0;
+ incValue(zaehler, inc, zz, nn);
+ if ((zz != z) || (nn != n)) {
+ setValue(zz, nn);
+ emit valueChanged(zz, nn);
+ }
+ }
+
+//---------------------------------------------------------
+// setValue
+//---------------------------------------------------------
+
+void SigLabel::setValue(int a, int b)
+ {
+ if (a == z && b == n)
+ return;
+ z = a;
+ n = b;
+ QString sa;
+ sa.setNum(a);
+
+ QString sb;
+ sb.setNum(b);
+
+ QString s = sa + QString("/") + sb;
+ setText(s);
+ }
+
+//---------------------------------------------------------
+// setFrame
+//---------------------------------------------------------
+
+void SigLabel::setFrame(bool flag)
+ {
+ setFrameStyle(flag ? Panel | Sunken : NoFrame);
+ setLineWidth(2);
+ }