summaryrefslogtreecommitdiff
path: root/attic/muse2-oom/muse2/muse/midiedit/ecanvas.h
diff options
context:
space:
mode:
Diffstat (limited to 'attic/muse2-oom/muse2/muse/midiedit/ecanvas.h')
-rw-r--r--attic/muse2-oom/muse2/muse/midiedit/ecanvas.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/attic/muse2-oom/muse2/muse/midiedit/ecanvas.h b/attic/muse2-oom/muse2/muse/midiedit/ecanvas.h
new file mode 100644
index 00000000..461a717a
--- /dev/null
+++ b/attic/muse2-oom/muse2/muse/midiedit/ecanvas.h
@@ -0,0 +1,94 @@
+//=========================================================
+// 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"
+#include <QEvent>
+#include <QKeyEvent>
+
+class MidiPart;
+class MidiTrack;
+class MidiEditor;
+class Part;
+class QMimeData;
+class QDrag;
+class QString;
+class QDropEvent;
+
+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);
+ //QDrag* getTextDrag(QWidget* parent);
+ QMimeData* getTextDrag();
+ void pasteAt(const QString& pt, int pos);
+ void viewDropEvent(QDropEvent* event);
+ virtual void modifySelected(NoteInfo::ValType, int) {}
+ virtual void keyPress(QKeyEvent*);
+ };
+
+#endif
+