summaryrefslogtreecommitdiff
path: root/muse2/muse/midiedit/ecanvas.h
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/midiedit/ecanvas.h')
-rw-r--r--muse2/muse/midiedit/ecanvas.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/muse2/muse/midiedit/ecanvas.h b/muse2/muse/midiedit/ecanvas.h
new file mode 100644
index 00000000..58df80b5
--- /dev/null
+++ b/muse2/muse/midiedit/ecanvas.h
@@ -0,0 +1,87 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: ecanvas.h,v 1.5.2.4 2009/02/02 21:38:00 terminator356 Exp $
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __ECANVAS_H__
+#define __ECANVAS_H__
+
+#include "canvas.h"
+#include "noteinfo.h"
+//Added by qt3to4:
+#include <QEvent>
+#include <QKeyEvent>
+
+class MidiPart;
+class MidiTrack;
+class MidiEditor;
+class Part;
+
+struct PartToChange
+{
+ Part* npart;
+ int xdiff;
+};
+typedef std::map<Part*, PartToChange> PartsToChangeMap;
+typedef std::map<Part*, PartToChange>::iterator iPartToChange;
+
+//---------------------------------------------------------
+// EventCanvas
+//---------------------------------------------------------
+
+class EventCanvas : public Canvas {
+ Q_OBJECT
+ virtual void leaveEvent(QEvent*e);
+ virtual void enterEvent(QEvent*e);
+ // Removed by T356.
+ //virtual QPoint raster(const QPoint&) const;
+
+ virtual void startUndo(DragType);
+
+ virtual void endUndo(DragType, int flags = 0);
+ virtual void mouseMove(const QPoint&);
+
+ protected:
+ bool _playEvents;
+ MidiEditor* editor;
+ unsigned start_tick, end_tick;
+ int curVelo;
+ bool _steprec;
+ bool _midiin;
+
+ void updateSelection();
+ virtual void addItem(Part*, Event&) = 0;
+ // Added by T356.
+ virtual QPoint raster(const QPoint&) const;
+
+ public slots:
+ void redrawGrid() { redraw(); }
+ void setSteprec(bool f) { _steprec = f; }
+ void setMidiin(bool f) { _midiin = f; }
+
+ signals:
+ void pitchChanged(int); // current cursor position
+ void timeChanged(unsigned);
+ void selectionChanged(int, Event&, Part*);
+ void enterCanvas();
+
+ public:
+ EventCanvas(MidiEditor*, QWidget*, int, int, const char* name = 0);
+ MidiTrack* track() const;
+ unsigned start() const { return start_tick; }
+ unsigned end() const { return end_tick; }
+ bool midiin() const { return _midiin; }
+ bool steprec() const { return _steprec; }
+ QString getCaption() const;
+ void songChanged(int);
+ void range(int* s, int* e) const { *s = start_tick; *e = end_tick; }
+ void playEvents(bool flag) { _playEvents = flag; }
+ void selectAtTick(unsigned int tick);
+ virtual void modifySelected(NoteInfo::ValType, int) {}
+ virtual void keyPress(QKeyEvent*);
+ };
+
+#endif
+