1
//=========================================================
4
// $Id: hitscale.cpp,v 1.1 2002/01/30 14:54:03 muse Exp $
5
// (C) Copyright 1999 Werner Schweer (ws@seh.de)
6
//=========================================================
9
#include "midieditor.h"
14
//---------------------------------------------------------
16
//---------------------------------------------------------
18
HitScale::HitScale(int* r, QWidget* parent, int xs)
22
pos[0] = song->cpos();
23
pos[1] = song->lpos();
24
pos[2] = song->rpos();
25
button = QMouseEvent::NoButton;
26
setMouseTracking(true);
27
connect(song, SIGNAL(posChanged(int, int, bool)), this, SLOT(setPos(int, int, bool)));
31
//---------------------------------------------------------
33
//---------------------------------------------------------
35
void HitScale::setPos(int idx, int val, bool)
39
int opos = mapx(pos[idx]);
54
paint(QRect(x, 0, w, height()));
57
void HitScale::viewMousePressEvent(QMouseEvent* event)
59
button = event->button();
60
viewMouseMoveEvent(event);
63
void HitScale::viewMouseReleaseEvent(QMouseEvent*)
65
button = QMouseEvent::NoButton;
68
void HitScale::viewMouseMoveEvent(QMouseEvent* event)
70
int x = sigmap.raster(event->x(), *raster);
74
case QMouseEvent::LeftButton:
77
case QMouseEvent::MidButton:
80
case QMouseEvent::RightButton:
89
//---------------------------------------------------------
91
//---------------------------------------------------------
93
void HitScale::leaveEvent(QEvent*)
98
//---------------------------------------------------------
100
//---------------------------------------------------------
102
void HitScale::pdraw(QPainter& p, const QRect& r)
113
//---------------------------------------------------
114
// draw location marker
115
//---------------------------------------------------
118
int xp = mapx(pos[0]);
119
if (xp >= x && xp < x+w)
120
p.drawLine(xp, 0, xp, height());
123
if (xp >= x && xp < x+w)
124
p.drawLine(xp, 0, xp, height());
126
if (xp >= x && xp < x+w)
127
p.drawLine(xp, 0, xp, height());