diff options
author | Tim E. Real <termtech@rogers.com> | 2011-05-26 00:18:47 +0000 |
---|---|---|
committer | Tim E. Real <termtech@rogers.com> | 2011-05-26 00:18:47 +0000 |
commit | e8612708161b71b43d56ef47eede6cc58b035967 (patch) | |
tree | 18580394352c090068325ded37a8f53d6807c4a0 /muse2/muse/widgets/routepopup.h | |
parent | a1db21404d203bec7353099a9947778735271bfd (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.h | 73 |
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 |