summaryrefslogtreecommitdiffstats
path: root/noatun/library/noatun/stdaction.h
diff options
context:
space:
mode:
Diffstat (limited to 'noatun/library/noatun/stdaction.h')
-rw-r--r--noatun/library/noatun/stdaction.h204
1 files changed, 204 insertions, 0 deletions
diff --git a/noatun/library/noatun/stdaction.h b/noatun/library/noatun/stdaction.h
new file mode 100644
index 00000000..7cac67fe
--- /dev/null
+++ b/noatun/library/noatun/stdaction.h
@@ -0,0 +1,204 @@
+#ifndef _NOATUNSTDACTION_H_
+#define _NOATUNSTDACTION_H_
+
+#include <kaction.h>
+#include <kactionclasses.h>
+#include <kdemacros.h>
+class KPopupMenu;
+
+/**
+ * Holds all noatun related actions
+ * @short noatun specific actions
+ * @author Charles Samuels
+ **/
+namespace NoatunStdAction
+{
+
+/**
+ * An action starting noatun playback
+ **/
+class PlayAction : public KAction
+{
+Q_OBJECT
+public:
+ PlayAction(QObject *parent, const char *name);
+private slots:
+ void playing();
+ void notplaying();
+};
+
+/**
+ * An action starting/stopping noatun playback
+ **/
+class PlaylistAction : public KToggleAction
+{
+Q_OBJECT
+public:
+ PlaylistAction(QObject *parent, const char *name);
+private slots:
+ void shown();
+ void hidden();
+};
+
+/**
+ * actionmenu that holds all plugin defined actions
+ * @author Stefan Gehn
+ */
+class PluginActionMenu : public KActionMenu
+{
+Q_OBJECT
+public:
+ PluginActionMenu(QObject *parent, const char *name);
+ /**
+ * inserts the given @p action into the action-menu
+ * @param action the action to insert
+ * @param index defines the place where the action gets displayed in
+ */
+ virtual void insert (KAction *action, int index=-1);
+ /**
+ * removes the given @p action into the action-menu
+ */
+ virtual void remove(KAction *action);
+ /**
+ * Wrapper method for old Noatun API
+ * <b>DON'T USE</b>
+ **/
+ int menuAdd(const QString &text, const QObject *receiver, const char *member);
+ /**
+ * Wrapper method for old Noatun API
+ * <b>DON'T USE</b>
+ **/
+ void menuRemove(int id);
+private:
+ int mCount;
+};
+
+/**
+ * actionmenu that holds all vis-plugins for easier enabling/disabling
+ * @author Stefan Gehn
+ */
+class VisActionMenu : public KActionMenu
+{
+Q_OBJECT
+public:
+ VisActionMenu(QObject *parent, const char *name);
+private slots:
+ void fillPopup();
+ void toggleVisPlugin(int);
+private:
+ QMap<int, QString>mSpecMap;
+};
+
+
+/**
+ * actionmenu that holds all looping modes
+ * @author Stefan Gehn
+ */
+class LoopActionMenu : public KActionMenu
+{
+Q_OBJECT
+public:
+ LoopActionMenu(QObject *parent, const char *name);
+private slots:
+ void updateLooping(int);
+ void loopNoneSelected();
+ void loopSongSelected();
+ void loopPlaylistSelected();
+ void loopRandomSelected();
+private:
+ KRadioAction *mLoopNone;
+ KRadioAction *mLoopSong;
+ KRadioAction *mLoopPlaylist;
+ KRadioAction *mLoopRandom;
+};
+
+
+/**
+ * @return pointer to a KAction which opens the effects dialog on activation
+ */
+KDE_EXPORT KAction *effects(QObject *parent = 0, const char *name = 0);
+
+/**
+ * @return pointer to a KAction which opens the equalizer dialog on activation
+ */
+KDE_EXPORT KAction *equalizer(QObject *parent = 0, const char *name = 0);
+
+/**
+ * @return pointer to a KAction which goes back one track on activation
+ */
+KDE_EXPORT KAction *back(QObject *parent = 0, const char *name = 0);
+/**
+ * @return pointer to a KAction which stops playback on activation
+ */
+KDE_EXPORT KAction *stop(QObject *parent = 0, const char *name = 0);
+/**
+ * @return pointer to a KAction which starts/pauses playback on activation
+ */
+KDE_EXPORT KAction *playpause(QObject *parent = 0, const char *name = 0);
+/**
+ * @return pointer to a KAction which advances one track on activation
+ */
+KDE_EXPORT KAction *forward(QObject *parent = 0, const char *name = 0);
+/**
+ * @return pointer to a KToggleAction which shows/hides the playlist
+ */
+KDE_EXPORT KToggleAction *playlist(QObject *parent = 0, const char *name = 0);
+
+/**
+ * loop action
+ **/
+KDE_EXPORT LoopActionMenu *loop(QObject *parent, const char *name);
+
+/**
+ * play action
+ */
+KDE_EXPORT KAction *play(QObject *parent = 0, const char *name = 0);
+
+/**
+ * pause action
+ */
+KDE_EXPORT KAction *pause(QObject *parent = 0, const char *name = 0);
+
+/**
+ * @return pointer to the global PluginActionMenu object (there is only one instance)
+ */
+KDE_EXPORT PluginActionMenu *actions();
+
+/**
+ * @return pointer to a VisActionMenu object
+ */
+KDE_EXPORT VisActionMenu *visualizations(QObject *parent = 0, const char *name = 0);
+
+/**
+ * The global popupmenu of noatun, there's not two or three but only one of these :)
+ * @author Charles Samuels
+ **/
+class KDE_EXPORT ContextMenu
+{
+public:
+ static KPopupMenu *createContextMenu(QWidget *p);
+
+ /**
+ * One menu to show them all, One menu to find them
+ * One menu to bring them all and in the darkness bind them
+ *
+ * In the land of Noatun where the oceans die
+ */
+ static KPopupMenu *contextMenu();
+
+ /**
+ * Show the context menu at point
+ **/
+ static void showContextMenu(const QPoint &);
+
+ /**
+ * show the context menu at the mouse's current position
+ **/
+ static void showContextMenu();
+private:
+ static KPopupMenu *mContextMenu;
+};
+
+}
+
+#endif