summaryrefslogtreecommitdiff
path: root/muse2/muse/widgets/routepopup.h
diff options
context:
space:
mode:
authorTim E. Real <termtech@rogers.com>2011-05-26 00:18:47 +0000
committerTim E. Real <termtech@rogers.com>2011-05-26 00:18:47 +0000
commite8612708161b71b43d56ef47eede6cc58b035967 (patch)
tree18580394352c090068325ded37a8f53d6807c4a0 /muse2/muse/widgets/routepopup.h
parenta1db21404d203bec7353099a9947778735271bfd (diff)
Moved all routing popup menu stuff from app, astrip, mstrip, mtrackinfo into new class RoutePopupMenu,
*massively* cleaning up those 4 files. Used new Route QVariant type as action data instead of integers. Moved MenuTitleItem definitions from astrip.cpp into it's own menutitleitem.cpp Added to settings: "Make popup menus stay open. Otherwise hold Ctrl."
Diffstat (limited to 'muse2/muse/widgets/routepopup.h')
-rw-r--r--muse2/muse/widgets/routepopup.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/muse2/muse/widgets/routepopup.h b/muse2/muse/widgets/routepopup.h
new file mode 100644
index 00000000..6772e8ca
--- /dev/null
+++ b/muse2/muse/widgets/routepopup.h
@@ -0,0 +1,73 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+//
+// RoutePopupMenu.h
+// (C) Copyright 2011 Tim E. Real (terminator356 A T sourceforge D O T net)
+//
+// 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 __ROUTEPOPUPMENU_H__
+#define __ROUTEPOPUPMENU_H__
+
+#include <QObject>
+
+class Track;
+class AudioTrack;
+class PopupMenu;
+class QWidget;
+class QString;
+class QAction;
+class QPoint;
+
+class RoutePopupMenu : public QObject
+{
+ Q_OBJECT
+
+ PopupMenu* _pup;
+ Track* _track;
+ // Whether the route popup was shown by clicking the output routes button, or input routes button.
+ bool _isOutMenu;
+
+ void init();
+ void prepare();
+
+ int addMenuItem(AudioTrack* track, Track* route_track, PopupMenu* lb, int id, int channel,
+ int channels, bool isOutput);
+ int addAuxPorts(AudioTrack* t, PopupMenu* lb, int id, int channel, int channels, bool isOutput);
+ int addInPorts(AudioTrack* t, PopupMenu* lb, int id, int channel, int channels, bool isOutput);
+ int addOutPorts(AudioTrack* t, PopupMenu* lb, int id, int channel, int channels, bool isOutput);
+ int addGroupPorts(AudioTrack* t, PopupMenu* lb, int id, int channel, int channels, bool isOutput);
+ int addWavePorts(AudioTrack* t, PopupMenu* lb, int id, int channel, int channels, bool isOutput);
+ int addSyntiPorts(AudioTrack* t, PopupMenu* lb, int id, int channel, int channels, bool isOutput);
+ int addMultiChannelPorts(AudioTrack* t, PopupMenu* pup, int id, bool isOutput);
+ int nonSyntiTrackAddSyntis(AudioTrack* t, PopupMenu* lb, int id, bool isOutput);
+ int addMidiPorts(AudioTrack* t, PopupMenu* pup, int id, bool isOutput);
+
+ private slots:
+ void popupActivated(QAction*);
+ void songChanged(int);
+
+ public:
+ RoutePopupMenu(QWidget* parent = 0, Track* track = 0, bool isOutput = false);
+ RoutePopupMenu(const QString& title, QWidget* parent = 0, Track* track = 0, bool isOutput = false);
+ ~RoutePopupMenu();
+
+ void updateRouteMenus();
+ void exec(Track* track = 0, bool isOutput = false);
+ void exec(const QPoint& p, Track* track = 0, bool isOutput = false);
+ void popup(const QPoint& p, Track* track = 0, bool isOutput = false);
+};
+
+#endif