X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Fmain_interface.hpp;h=4ea7ba3092fd2547c44017566f03e7e784bdfa70;hb=76099331dae4ca5b7da6fc3f615c183fd4470b66;hp=a04666816010c985c4f2474f8d701a0646b28115;hpb=c6a01bb041e0e1071863b3f298eef99f72403722;p=vlc diff --git a/modules/gui/qt4/main_interface.hpp b/modules/gui/qt4/main_interface.hpp index a046668160..4ea7ba3092 100644 --- a/modules/gui/qt4/main_interface.hpp +++ b/modules/gui/qt4/main_interface.hpp @@ -1,7 +1,7 @@ /***************************************************************************** * main_interface.hpp : Main Interface **************************************************************************** - * Copyright (C) 2006-2007 the VideoLAN team + * Copyright (C) 2006-2008 the VideoLAN team * $Id$ * * Authors: Clément Stenac @@ -22,14 +22,13 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ -#ifndef _MAIN_INTERFACE_H_ -#define _MAIN_INTERFACE_H_ +#ifndef QVLC_MAIN_INTERFACE_H_ +#define QVLC_MAIN_INTERFACE_H_ #include "qt4.hpp" -#include "util/qvlcframe.hpp" -#include "components/preferences_widgets.hpp" -#include +#include "util/qvlcframe.hpp" +#include "components/preferences_widgets.hpp" /* First Start */ #include @@ -45,52 +44,61 @@ class PlaylistWidget; class VisualSelector; class AdvControlsWidget; class ControlsWidget; +class InputControlsWidget; +class FullscreenControllerWidget; class SpeedControlWidget; class QMenu; class QSize; -class QDockWidet; -class QProgressBar; -enum{ - CONTROLS_HIDDEN = 0x0, +enum { CONTROLS_VISIBLE = 0x1, - CONTROLS_ADVANCED = 0x2 + CONTROLS_HIDDEN = 0x2, + CONTROLS_ADVANCED = 0x4, }; +typedef enum pl_dock_e { + PL_UNDOCKED, + PL_BOTTOM, + PL_RIGHT, + PL_LEFT +} pl_dock_e; + class MainInterface : public QVLCMW { Q_OBJECT; - friend class VolumeClickHandler; - friend class InteractionDialog; + friend class PlaylistWidget; public: MainInterface( intf_thread_t *); virtual ~MainInterface(); /* Video requests from core */ - void *requestVideo( vout_thread_t *p_nvout, int *pi_x, - int *pi_y, unsigned int *pi_width, - unsigned int *pi_height ); - void releaseVideo( void * ); - int controlVideo( void *p_window, int i_query, va_list args ); - void requestLayoutUpdate(); + WId requestVideo( vout_thread_t *p_nvout, int *pi_x, + int *pi_y, unsigned int *pi_width, + unsigned int *pi_height ); + void releaseVideo( void ); + int controlVideo( int i_query, va_list args ); /* Getters */ QSystemTrayIcon *getSysTray() { return sysTray; }; QMenu *getSysTrayMenu() { return systrayMenu; }; int getControlsVisibilityStatus(); -#if 0 /* Sizehint() */ - QSize sizeHint() const; -#endif + /* Sizehint() */ + virtual QSize sizeHint() const; + protected: -// void resizeEvent( QResizeEvent * ); - void dropEvent( QDropEvent *); - void dragEnterEvent( QDragEnterEvent * ); - void dragMoveEvent( QDragMoveEvent * ); - void dragLeaveEvent( QDragLeaveEvent * ); - void closeEvent( QCloseEvent *); + void dropEventPlay( QDropEvent *, bool); + virtual void dropEvent( QDropEvent *); + virtual void dragEnterEvent( QDragEnterEvent * ); + virtual void dragMoveEvent( QDragMoveEvent * ); + virtual void dragLeaveEvent( QDragLeaveEvent * ); + virtual void closeEvent( QCloseEvent *); + virtual void customEvent( QEvent *); + virtual void keyPressEvent( QKeyEvent *); + virtual void wheelEvent( QWheelEvent * ); + virtual void resizeEvent( QResizeEvent * event ); private: QSettings *settings; @@ -99,83 +107,84 @@ private: QString input_name; QVBoxLayout *mainLayout; ControlsWidget *controls; - QMenu *speedControlMenu; - SpeedControlWidget *speedControl; - QProgressBar *pgBar; + InputControlsWidget *inputC; + FullscreenControllerWidget *fullscreenControls; + + void createMainWidget( QSettings* ); + void createStatusBar(); - void handleMainUi( QSettings* ); void askForPrivacy(); - int privacyDialog( QList controls ); + int privacyDialog( QList *controls ); /* Systray */ void handleSystray(); void createSystray(); - - void createStatusBar(); void initSystray(); + /* Video */ VideoWidget *videoWidget; - // QSize savedVideoSize; BackgroundWidget *bgWidget; VisualSelector *visualSelector; PlaylistWidget *playlistWidget; - QDockWidget *dockPL; - bool videoIsActive; ///< Having a video now / THEMIM->hasV - bool videoEmbeddedFlag; ///< Want an external Video Window - bool playlistVisible; ///< Is the playlist visible ? + bool videoIsActive; ///< Having a video now / THEMIM->hasV + bool videoEmbeddedFlag; ///< Want an external Video Window + bool playlistVisible; ///< Is the playlist visible ? bool visualSelectorEnabled; bool notificationEnabled; /// Systray Notifications - bool b_remainingTime; /* showing elapsed or remaining time */ - int i_visualmode; ///< Visual Mode - - input_thread_t *p_input; ///< Main input associated to the playlist + bool bgWasVisible; + bool b_keep_size; ///< persistent resizeable window + QSize mainBasedSize; ///< based Wnd (normal mode only) + QSize mainVideoSize; ///< Wnd with video (all modes) + int i_visualmode; ///< Visual Mode + pl_dock_e i_pl_dock; + bool isDocked() { return ( i_pl_dock != PL_UNDOCKED ); } + int i_bg_height; ///< Save height of bgWidget + bool b_shouldHide; /* Status Bar */ - QLabel *timeLabel; - QLabel *speedLabel; QLabel *nameLabel; - - virtual void customEvent( QEvent *); - virtual void keyPressEvent( QKeyEvent *); - virtual void wheelEvent( QWheelEvent * ); + QLabel *cryptedLabel; public slots: void undockPlaylist(); - void toggleMinimalView(); + void dockPlaylist( pl_dock_e i_pos = PL_BOTTOM ); + void toggleMinimalView( bool ); void togglePlaylist(); void toggleUpdateSystrayMenu(); void toggleAdvanced(); void toggleFullScreen(); + void toggleFSC(); + void popupMenu( const QPoint& ); /* Manage the Video Functions from the vout threads */ - void releaseVideoSlot( void * ); + void releaseVideoSlot( void ); private slots: void debug(); - void updateOnTimer(); + void destroyPopupMenu(); + void recreateToolbars(); void doComponentsUpdate(); - void setStatus( int ); - void setRate( int ); void setName( QString ); void setVLCWindowsTitle( QString title = "" ); - void setDisplayPosition( float, int, int ); - void toggleTimeDisplay(); #if 0 void visual(); #endif void handleSystrayClick( QSystemTrayIcon::ActivationReason ); void updateSystrayTooltipName( QString ); void updateSystrayTooltipStatus( int ); - void showSpeedMenu( QPoint ); + + void showCryptedLabel( bool ); signals: - void askReleaseVideo( void * ); + void askReleaseVideo( ); void askVideoToResize( unsigned int, unsigned int ); - void askVideoToToggle(); + void askVideoToShow( unsigned int, unsigned int ); void askBgWidgetToToggle(); void askUpdate(); + void minimalViewToggled( bool ); + void fullscreenInterfaceToggled( bool ); }; #endif