diff options
Diffstat (limited to 'muse_qt4_evolution/muse/liste/listedit.h')
-rw-r--r-- | muse_qt4_evolution/muse/liste/listedit.h | 98 |
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 + |