You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdemultimedia/noatun/library/noatun/stdaction.h

210 lines
4.6 KiB

#ifndef _NOATUNSTDACTION_H_
#define _NOATUNSTDACTION_H_
#include <tdeaction.h>
#include <tdeactionclasses.h>
#include <kdemacros.h>
class TDEPopupMenu;
/**
* Holds all noatun related actions
* @short noatun specific actions
* @author Charles Samuels
**/
namespace NoatunStdAction
{
/**
* An action starting noatun playback
**/
class PlayAction : public TDEAction
{
TQ_OBJECT
public:
PlayAction(TQObject *parent, const char *name);
private slots:
void playing();
void notplaying();
};
/**
* An action starting/stopping noatun playback
**/
class PlaylistAction : public TDEToggleAction
{
TQ_OBJECT
public:
PlaylistAction(TQObject *parent, const char *name);
private slots:
void shown();
void hidden();
};
/**
* actionmenu that holds all plugin defined actions
* @author Stefan Gehn
*/
class PluginActionMenu : public TDEActionMenu
{
TQ_OBJECT
public:
PluginActionMenu(TQObject *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 (TDEAction *action, int index=-1);
/**
* removes the given @p action into the action-menu
*/
virtual void remove(TDEAction *action);
/**
* Wrapper method for old Noatun API
* <b>DON'T USE</b>
**/
int menuAdd(const TQString &text, const TQObject *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 TDEActionMenu
{
TQ_OBJECT
public:
VisActionMenu(TQObject *parent, const char *name);
private slots:
void fillPopup();
void toggleVisPlugin(int);
private:
TQMap<int, TQString>mSpecMap;
};
/**
* actionmenu that holds all looping modes
* @author Stefan Gehn
*/
class LoopActionMenu : public TDEActionMenu
{
TQ_OBJECT
public:
LoopActionMenu(TQObject *parent, const char *name);
private slots:
void updateLooping(int);
void loopNoneSelected();
void loopSongSelected();
void loopPlaylistSelected();
void loopRandomSelected();
private:
TDERadioAction *mLoopNone;
TDERadioAction *mLoopSong;
TDERadioAction *mLoopPlaylist;
TDERadioAction *mLoopRandom;
};
/**
* @return pointer to a TDEAction which opens the effects dialog on activation
*/
KDE_EXPORT TDEAction *effects(TQObject *parent = 0, const char *name = 0);
/**
* @return pointer to a TDEAction which opens the equalizer dialog on activation
*/
KDE_EXPORT TDEAction *equalizer(TQObject *parent = 0, const char *name = 0);
/**
* @return pointer to a TDEAction which goes back one track on activation
*/
KDE_EXPORT TDEAction *back(TQObject *parent = 0, const char *name = 0);
/**
* @return pointer to a TDEAction which stops playback on activation
*/
KDE_EXPORT TDEAction *stop(TQObject *parent = 0, const char *name = 0);
/**
* @return pointer to a TDEAction which starts/pauses playback on activation
*/
KDE_EXPORT TDEAction *playpause(TQObject *parent = 0, const char *name = 0);
/**
* @return pointer to a TDEAction which advances one track on activation
*/
KDE_EXPORT TDEAction *forward(TQObject *parent = 0, const char *name = 0);
/**
* @return pointer to a TDEToggleAction which shows/hides the playlist
*/
KDE_EXPORT TDEToggleAction *playlist(TQObject *parent = 0, const char *name = 0);
/**
* loop action
**/
KDE_EXPORT LoopActionMenu *loop(TQObject *parent, const char *name);
/**
* play action
*/
KDE_EXPORT TDEAction *play(TQObject *parent = 0, const char *name = 0);
/**
* pause action
*/
KDE_EXPORT TDEAction *pause(TQObject *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(TQObject *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 TDEPopupMenu *createContextMenu(TQWidget *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 TDEPopupMenu *contextMenu();
/**
* Show the context menu at point
**/
static void showContextMenu(const TQPoint &);
/**
* show the context menu at the mouse's current position
**/
static void showContextMenu();
private:
static TDEPopupMenu *mContextMenu;
};
}
#endif