summaryrefslogtreecommitdiff
path: root/muse_qt4_evolution/muse/liste/listedit.h
diff options
context:
space:
mode:
Diffstat (limited to 'muse_qt4_evolution/muse/liste/listedit.h')
-rw-r--r--muse_qt4_evolution/muse/liste/listedit.h98
1 files changed, 98 insertions, 0 deletions
diff --git a/muse_qt4_evolution/muse/liste/listedit.h b/muse_qt4_evolution/muse/liste/listedit.h
new file mode 100644
index 00000000..b49e61c3
--- /dev/null
+++ b/muse_qt4_evolution/muse/liste/listedit.h
@@ -0,0 +1,98 @@
+//=============================================================================
+// MusE
+// Linux Music Editor
+// $Id:$
+//
+// Copyright (C) 2002-2006 by Werner Schweer and others
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+//=============================================================================
+
+#ifndef __LISTEDIT_H__
+#define __LISTEDIT_H__
+
+#include "al/pos.h"
+#include "cobject.h"
+
+class Track;
+class Part;
+class Ctrl;
+class CtrlListEditor;
+class PartListEditor;
+class TrackListEditor;
+
+//---------------------------------------------------------
+// ListType
+//---------------------------------------------------------
+
+enum { LIST_NONE, LIST_TRACK, LIST_PART, LIST_CTRL };
+
+struct ListType {
+ int id;
+ Track* track;
+ Part* part;
+ Ctrl* ctrl;
+
+ bool operator==(const ListType& t) const;
+ };
+
+Q_DECLARE_METATYPE(struct ListType);
+
+//---------------------------------------------------------
+// ListWidget
+// interface class
+//---------------------------------------------------------
+
+class ListWidget : public QWidget {
+ Q_OBJECT;
+
+ public:
+ ListWidget(QWidget* = 0) {}
+ virtual void setup(const ListType&) = 0;
+ };
+
+//---------------------------------------------------------
+// ListEdit
+//---------------------------------------------------------
+
+class ListEdit : public TopWin {
+ Q_OBJECT;
+
+ ListType lt;
+ AL::Pos _pos;
+
+ QStackedWidget* stack;
+ QTreeWidget* list;
+ CtrlListEditor* ctrlPanel;
+ PartListEditor* partPanel;
+ TrackListEditor* trackPanel;
+
+ void buildList();
+ QTreeWidgetItem* findItem(const ListType& lt, QTreeWidgetItem* item);
+ void selectItem();
+
+ private slots:
+ void itemChanged(QTreeWidgetItem*, QTreeWidgetItem*);
+ void itemExpanded(QTreeWidgetItem*);
+ void songChanged(int);
+
+ public:
+ ListEdit(QWidget* parent = 0);
+ void selectItem(const AL::Pos&, Track*, Part*, Ctrl*);
+ virtual void read(QDomNode);
+ virtual void write(Xml& xml) const;
+ AL::Pos& pos() { return _pos; }
+ };
+
+#endif
+