]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/components/interface_widgets.hpp
Add video filters panel
[vlc] / modules / gui / qt4 / components / interface_widgets.hpp
index 9400397028d0ef9d3977a028ed849eaa12b75706..3f0946c4eb62a77efe3411050d386b42f6e1c998 100644 (file)
 #define _INTFWIDGETS_H_
 
 #include <vlc/vlc.h>
-#include <vlc/intf.h>
+#include <vlc_interface.h>
+
+#include "qt4.hpp"
+
 #include <QWidget>
 #include <QFrame>
 #include <QPalette>
@@ -34,8 +37,8 @@
 
 class QLabel;
 class QHBoxLayout;
-class QColor;
 
+/******************** Video Widget ****************/
 class VideoWidget : public QFrame
 {
     Q_OBJECT
@@ -43,28 +46,31 @@ public:
     VideoWidget( intf_thread_t * );
     virtual ~VideoWidget();
 
-    virtual QSize sizeHint() const;
-
-    void *Request( vout_thread_t *, int *, int *,
+    void *request( vout_thread_t *, int *, int *,
                    unsigned int *, unsigned int * );
-    void Release( void * );
-    int Control( void *, int, va_list );
+    void release( void * );
+    int control( void *, int, va_list );
+
     int i_video_height, i_video_width;
     vout_thread_t *p_vout;
+
+    QSize widgetSize;
+    virtual QSize sizeHint() const;
 private:
     QWidget *frame;
     intf_thread_t *p_intf;
     vlc_mutex_t lock;
-private slots:
-    void update();
 };
 
+/******************** Background Widget ****************/
 class BackgroundWidget : public QFrame
 {
     Q_OBJECT
 public:
     BackgroundWidget( intf_thread_t * );
     virtual ~BackgroundWidget();
+    QSize widgetSize;
+    virtual QSize sizeHint() const;
 private:
     QPalette plt;
     QLabel *label;
@@ -73,13 +79,69 @@ private:
     int DrawBackground();
     int CleanBackground();
     intf_thread_t *p_intf;
+};
+
+class VisualSelector : public QFrame
+{
+    Q_OBJECT
+public:
+    VisualSelector( intf_thread_t *);
+    virtual ~VisualSelector();
+private:
+    intf_thread_t *p_intf;
+    QLabel *current;
 private slots:
-    void hasAudio();
-    void hasVideo();
+    void prev();
+    void next();
 };
 
+class QPushButton;
+class ControlsWidget : public QFrame
+{
+    Q_OBJECT
+public:
+    ControlsWidget( intf_thread_t *);
+    virtual ~ControlsWidget();
+    void enableInput( bool );
+    void enableVideo( bool );
+private:
+    intf_thread_t *p_intf;
+    QPushButton *slowerButton, *normalButton, *fasterButton;
+    QPushButton *fullscreenButton, *snapshotButton;
+private slots:
+    void faster();
+    void slower();
+    void normal();
+    void snapshot();
+    void fullscreen();
+};
 
 
+/******************** Playlist Widgets ****************/
+#include <QModelIndex>
+class QSignalMapper;
+class PLSelector;
+class PLPanel;
+class QPushButton;
 
+class PlaylistWidget : public BasePlaylistWidget
+{
+    Q_OBJECT;
+public:
+    PlaylistWidget( intf_thread_t * );
+    virtual ~PlaylistWidget();
+    QSize widgetSize;
+    virtual QSize sizeHint() const;
+private:
+    PLSelector *selector;
+    PLPanel *rightPanel;
+    QPushButton *addButton;
+    QLabel *art;
+    QString prevArt;
+private slots:
+    void setArt( QString );
+signals:
+    void rootChanged( int );
+};
 
 #endif