summaryrefslogtreecommitdiff
path: root/attic/muse2-oom/muse2/muse/master/lmaster.h
diff options
context:
space:
mode:
Diffstat (limited to 'attic/muse2-oom/muse2/muse/master/lmaster.h')
-rw-r--r--attic/muse2-oom/muse2/muse/master/lmaster.h146
1 files changed, 146 insertions, 0 deletions
diff --git a/attic/muse2-oom/muse2/muse/master/lmaster.h b/attic/muse2-oom/muse2/muse/master/lmaster.h
new file mode 100644
index 00000000..cd687e45
--- /dev/null
+++ b/attic/muse2-oom/muse2/muse/master/lmaster.h
@@ -0,0 +1,146 @@
+//=========================================================
+// 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 "midieditor.h"
+#include "noteinfo.h"
+#include "cobject.h"
+#include "tempo.h"
+///#include "sig.h"
+//#include "al/sig.h"
+
+#include <QTreeWidgetItem>
+
+namespace AL {
+ class SigEvent;
+ };
+using AL::SigEvent;
+
+namespace Awl {
+ class PosEdit;
+ class SigEdit;
+ };
+using Awl::PosEdit;
+using Awl::SigEdit;
+
+class QLineEdit;
+
+enum LMASTER_LVTYPE
+ {
+ LMASTER_TEMPO = 0,
+ LMASTER_SIGEVENT
+ };
+
+//---------------------------------------------------------
+// LMasterLViewItem
+//! QListViewItem base class for LMasterTempoItem and LMasterSigEventItem
+//---------------------------------------------------------
+class LMasterLViewItem : public QTreeWidgetItem {
+ protected:
+ QString c1, c2, c3, c4;
+
+ public:
+ LMasterLViewItem(QTreeWidget* parent)
+ : QTreeWidgetItem(QTreeWidgetItem::UserType) {parent->insertTopLevelItem(0, this);}
+ 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(QTreeWidget* 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(QTreeWidget* 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->sig.z; }
+ int n() { return sigEvent->sig.n; }
+ };
+
+
+//---------------------------------------------------------
+// LMaster
+//---------------------------------------------------------
+
+class LMaster : public MidiEditor {
+ QTreeWidget* view;
+ QToolBar* tools;
+ QMenu* 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;
+
+ QAction *tempoAction, *signAction, *posAction, *valAction, *delAction;
+
+ private slots:
+ void select(QTreeWidgetItem*, QTreeWidgetItem*);
+ void itemDoubleClicked(QTreeWidgetItem* item);
+ void returnPressed();
+ void itemPressed(QTreeWidgetItem* i, 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
+