summaryrefslogtreecommitdiff
path: root/muse2/muse/master/lmaster.h
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/master/lmaster.h')
-rw-r--r--muse2/muse/master/lmaster.h145
1 files changed, 145 insertions, 0 deletions
diff --git a/muse2/muse/master/lmaster.h b/muse2/muse/master/lmaster.h
new file mode 100644
index 00000000..b67f64bf
--- /dev/null
+++ b/muse2/muse/master/lmaster.h
@@ -0,0 +1,145 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: lmaster.h,v 1.1.1.1.2.5 2005/12/11 21:29:23 spamatica Exp $
+// (C) Copyright 2000 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __LMASTER_EDIT_H__
+#define __LMASTER_EDIT_H__
+
+#include <qwidget.h>
+#include <qlineedit.h>
+//Added by qt3to4:
+#include <QMouseEvent>
+#include <Q3PopupMenu>
+#include <QCloseEvent>
+#include "midieditor.h"
+#include "noteinfo.h"
+#include "cobject.h"
+#include <q3mainwindow.h>
+#include <q3listview.h>
+#include "tempo.h"
+#include "sig.h"
+
+class QToolButton;
+class Q3ListView;
+class SigEvent;
+class QLineEdit;
+class QMouseEvent;
+class PosEdit;
+class SigEdit;
+
+enum LMASTER_LVTYPE
+ {
+ LMASTER_TEMPO = 0,
+ LMASTER_SIGEVENT
+ };
+
+//---------------------------------------------------------
+// LMasterLViewItem
+//! QListViewItem base class for LMasterTempoItem and LMasterSigEventItem
+//---------------------------------------------------------
+class LMasterLViewItem : public Q3ListViewItem {
+ protected:
+ QString c1, c2, c3, c4;
+
+ public:
+ LMasterLViewItem(Q3ListView* parent)
+ : Q3ListViewItem(parent) { }
+ LMasterLViewItem(Q3ListView* parent, Q3ListViewItem* after)
+ : Q3ListViewItem(parent, after) { }
+ virtual QString text(int column) const;
+ virtual LMASTER_LVTYPE getType() = 0;
+ virtual unsigned tick() = 0;
+ };
+
+//---------------------------------------------------------
+// LMasterTempoItem
+//! QListViewItem which holds data for a TEvent
+//---------------------------------------------------------
+class LMasterTempoItem : public LMasterLViewItem {
+
+ private:
+ const TEvent* tempoEvent;
+
+ public:
+ LMasterTempoItem(Q3ListView* parent, const TEvent* t);
+ virtual LMASTER_LVTYPE getType() { return LMASTER_TEMPO; }
+ const TEvent* getEvent() { return tempoEvent; }
+ virtual unsigned tick() { return tempoEvent->tick; }
+ int tempo() { return tempoEvent->tempo; }
+ };
+
+//---------------------------------------------------------
+// LMasterTempoItem
+//! QListViewItem which holds data for a SigEvent
+//---------------------------------------------------------
+class LMasterSigEventItem : public LMasterLViewItem {
+
+ private:
+ const SigEvent* sigEvent;
+
+ public:
+ LMasterSigEventItem(Q3ListView* parent, const SigEvent* s);
+ virtual LMASTER_LVTYPE getType() { return LMASTER_SIGEVENT; }
+ const SigEvent* getEvent() { return sigEvent; }
+ virtual unsigned tick() { return sigEvent->tick; }
+ int z() { return sigEvent->z; }
+ int n() { return sigEvent->n; }
+ };
+
+
+//---------------------------------------------------------
+// LMaster
+//---------------------------------------------------------
+
+class LMaster : public MidiEditor {
+ Q3ListView* view;
+ Q3ToolBar* tools;
+ Q3PopupMenu* menuEdit;
+
+ enum { CMD_DELETE, CMD_INSERT_SIG, CMD_INSERT_TEMPO, CMD_EDIT_BEAT, CMD_EDIT_VALUE };
+
+ Q_OBJECT
+ virtual void closeEvent(QCloseEvent*);
+ void updateList();
+ void insertTempo(const TEvent*);
+ void insertSig(const SigEvent*);
+ LMasterLViewItem* getItemAtPos(unsigned tick, LMASTER_LVTYPE t);
+ void initShortcuts();
+ QLineEdit* editor;
+ PosEdit* pos_editor;
+ // State-like members:
+ LMasterLViewItem* editedItem;
+ SigEdit* sig_editor;
+ int editorColumn;
+ bool editingNewItem;
+
+ private slots:
+ void select(Q3ListViewItem*);
+ void itemDoubleClicked(Q3ListViewItem* item);
+ void returnPressed();
+ void itemPressed(Q3ListViewItem* i, const QPoint& p, int column);
+ void tempoButtonClicked();
+ void timeSigButtonClicked();
+ void cmd(int cmd);
+
+ public slots:
+ void songChanged(int);
+ void configChanged();
+
+ signals:
+ void deleted(unsigned long);
+
+ public:
+ LMaster();
+ ~LMaster();
+ virtual void readStatus(Xml&);
+ virtual void writeStatus(int, Xml&) const;
+ LMasterLViewItem* getLastOfType(LMASTER_LVTYPE t);
+ };
+
+
+#endif
+