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.
kmplayer/src/kmplayer.h

214 lines
6.3 KiB

/***************************************************************************
kmplayer.h - description
-------------------
begin : Sat Dec 7 16:14:51 CET 2002
copyright : (C) 2002 by Koos Vriezen
email :
***************************************************************************/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
#ifndef KMPLAYER_H
#define KMPLAYER_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <kapp.h>
#include <tdemainwindow.h>
#include <tdeaccel.h>
#include <tdeaction.h>
#include <kurl.h>
#include "kmplayerplaylist.h"
static const int id_status_msg = 1;
static const int id_status_timer = 2;
class TQPopupMenu;
class TQMenuItem;
class TQListViewItem;
class TDEProcess;
class KMPlayerBroadcastConfig;
class KMPlayerFFServerConfig;
class KSystemTray;
namespace KMPlayer {
class View;
class PartBase;
class Source;
class KMPlayerDVDSource;
class KMPlayerDVDNavSource;
class KMPlayerVCDSource;
class KMPlayerPipeSource;
class KMPlayerTVSource;
class FFMpeg;
class PlayListItem;
} // namespace
class KMPlayerApp : public TDEMainWindow
{
Q_OBJECT
public:
KMPlayerApp (TQWidget* parent=0, const char* name=0);
~KMPlayerApp ();
void openDocumentFile (const KURL& url=KURL());
void addURL (const KURL& url);
KMPlayer::PartBase * player () const { return m_player; }
void resizePlayer (int percentage);
KDE_NO_EXPORT TDERecentFilesAction * recentFiles () const { return fileOpenRecent; }
KDE_NO_EXPORT KMPlayer::View *view () const { return m_view; }
bool broadcasting () const;
void showBroadcastConfig ();
void hideBroadcastConfig ();
KDE_NO_EXPORT KMPlayerBroadcastConfig * broadcastConfig () const { return m_broadcastconfig; }
/* After createGUI() some menu's have to readded again */
void initMenu ();
void restoreFromConfig ();
protected:
void saveOptions ();
void readOptions ();
void saveProperties (TDEConfig * config);
void readProperties (TDEConfig * config);
void initActions ();
void initStatusBar ();
void initView ();
virtual bool queryClose ();
virtual bool queryExit ();
public slots:
void slotFileNewWindow ();
void slotFileOpen ();
void slotFileOpenRecent (const KURL& url);
void slotSaveAs ();
void slotFileClose ();
void slotFileQuit ();
void slotPreferences ();
void slotViewToolBar ();
void slotViewStatusBar ();
void slotViewMenuBar ();
void slotStatusMsg (const TQString &text);
void slotSourceChanged (KMPlayer::Source *, KMPlayer::Source *);
private slots:
void dvdNav ();
void openDVD ();
void openVCD ();
void openAudioCD ();
void openPipe ();
void openVDR ();
void fullScreen ();
void configChanged ();
void keepSizeRatio ();
void startArtsControl();
void loadingProgress (int percentage);
void positioned (int pos, int length);
void zoom50 ();
void zoom100 ();
void zoom150 ();
void zoom200 ();
void zoom300 ();
void editMode ();
void syncEditMode ();
void broadcastClicked ();
void broadcastStarted ();
void broadcastStopped ();
void playerStarted ();
void slotMinimalMode ();
void slotConfigureKeys();
void slotConfigureToolbars ();
void slotClearHistory ();
void windowVideoConsoleToggled (int wt);
void playListItemSelected (TQListViewItem *);
void playListItemDropped (TQDropEvent * e, TQListViewItem * after);
void playListItemMoved ();
void menuDropInList ();
void menuDropInGroup ();
void menuCopyDrop ();
void menuDeleteNode ();
void menuMoveUpNode ();
void menuMoveDownNode ();
void preparePlaylistMenu (KMPlayer::PlayListItem *, TQPopupMenu *);
void slotFakeKeyEvent();
private:
void menuItemClicked (TQPopupMenu * menu, int id);
void minimalMode (bool deco=true);
TDEConfig * config;
KSystemTray * m_systray;
KMPlayer::PartBase * m_player;
KMPlayer::View * m_view;
KMPlayer::NodePtr recents;
KMPlayer::NodePtr playlist;
KMPlayer::NodePtrW manip_node;
TDEAction * fileNewWindow;
TDEAction * fileOpen;
TDERecentFilesAction * fileOpenRecent;
TDEAction * fileClose;
TDEAction * fileQuit;
TDEAction * editVolumeInc;
TDEAction * editVolumeDec;
TDEAction * toggleView;
TDEAction * viewSyncEditMode;
#if KDE_IS_VERSION(3,1,90)
TDEToggleAction * viewFullscreen;
#else
TDEAction * viewFullscreen;
#endif
TDEToggleAction * viewEditMode;
TDEToggleAction * viewToolBar;
TDEToggleAction * viewStatusBar;
TDEToggleAction * viewMenuBar;
TDEToggleAction * viewKeepRatio;
TQMenuItem * m_sourcemenu;
TQPopupMenu * m_dvdmenu;
TQPopupMenu * m_dvdnavmenu;
TQPopupMenu * m_vcdmenu;
TQPopupMenu * m_audiocdmenu;
TQPopupMenu * m_tvmenu;
TQPopupMenu * m_dropmenu;
KMPlayerFFServerConfig * m_ffserverconfig;
KMPlayerBroadcastConfig * m_broadcastconfig;
TQCString m_dcopName;
KURL::List m_drop_list;
TQListViewItem * m_drop_after;
int edit_tree_id;
int manip_tree_id;
int last_time_left;
int recents_id;
int playlist_id;
bool m_showToolbar;
bool m_showStatusbar;
bool m_showMenubar;
bool m_played_intro;
bool m_played_exit;
bool m_minimal_mode;
bool m_auto_resize;
TQTimer m_screensaverTimer;
bool m_haveKWin;
bool haveXTest;
int fakeKeycode;
};
class KMPLAYER_NO_EXPORT FileDocument : public KMPlayer::Document {
public:
FileDocument (short id, const TQString &, KMPlayer::PlayListNotify * notify = 0L);
KMPlayer::NodePtr childFromTag (const TQString & tag);
void readFromFile (const TQString & file);
void writeToFile (const TQString & file);
};
#endif // KMPLAYER_H