]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/components/interface_widgets.hpp
Simplified/fixed qt4 fullscreen implementation.
[vlc] / modules / gui / qt4 / components / interface_widgets.hpp
index f37b0e37377084af06045ddf55cc8f378e055c18..16af5fe99effbdadfcfe28ea6e0f7d74c31be6b3 100644 (file)
@@ -45,24 +45,20 @@ class ResizeEvent;
 class QPixmap;
 class QHBoxLayout;
 class QMenu;
-class ReparentableWidget;
+class QSlider;
 
 /******************** Video Widget ****************/
 class VideoWidget : public QFrame
 {
     Q_OBJECT
-friend class ReparentableWidget;
-
 public:
     VideoWidget( intf_thread_t * );
     virtual ~VideoWidget();
 
-    WId request( int *, int *,
-                 unsigned int *, unsigned int *, bool );
+    WId request( int *, int *, unsigned int *, unsigned int *, bool );
     void  release( void );
     int   control( void *, int, va_list );
-
-    virtual QSize sizeHint() const;
+    void  sync( void );
 
 protected:
     virtual QPaintEngine *paintEngine() const
@@ -73,16 +69,13 @@ protected:
 private:
     intf_thread_t *p_intf;
 
-    QSize videoSize;
-    QWidget *reparentable;
+    QWidget *stable;
     QLayout *layout;
-
 signals:
-    void keyPressed( QKeyEvent * );
+    void sizeChanged( int, int );
 
 public slots:
     void SetSizing( unsigned int, unsigned int );
-    void SetFullScreen( bool );
 };
 
 /******************** Background Widget ****************/
@@ -91,14 +84,15 @@ class BackgroundWidget : public QWidget
     Q_OBJECT
 public:
     BackgroundWidget( intf_thread_t * );
-    virtual ~BackgroundWidget();
-
+    void setExpandstoHeight( bool b_expand ) { b_expandPixmap = b_expand; }
 private:
-    QLabel *label;
+    QString pixmapUrl;
+    bool b_expandPixmap;
     virtual void contextMenuEvent( QContextMenuEvent *event );
     intf_thread_t *p_intf;
-    virtual void resizeEvent( QResizeEvent * event );
-
+protected:
+    void paintEvent( QPaintEvent *e );
+    static const int MARGIN = 5;
 public slots:
     void toggle(){ TOGGLEV( this ); }
     void updateArt( const QString& );
@@ -140,19 +134,29 @@ protected:
 private:
     intf_thread_t *p_intf;
     bool b_remainingTime;
+    int cachedLength;
+    QTimer *bufTimer;
+    float bufVal;
+    bool buffering;
+    bool showBuffering;
+    char psz_length[MSTRTIME_MAX_SIZE];
+    char psz_time[MSTRTIME_MAX_SIZE];
     void toggleTimeDisplay();
+    void paintEvent( QPaintEvent* );
 signals:
     void timeLabelDoubleClicked();
 private slots:
     void setDisplayPosition( float pos, int64_t time, int length );
-    void setCaching( float );
+    void setDisplayPosition( float pos );
+    void updateBuffering( float );
+    void updateBuffering();
 };
 
 class SpeedLabel : public QLabel
 {
     Q_OBJECT
 public:
-    SpeedLabel( intf_thread_t *, const QString&, QWidget * );
+    SpeedLabel( intf_thread_t *, QWidget * );
     virtual ~SpeedLabel();
 
 protected:
@@ -162,10 +166,11 @@ protected:
     }
 private slots:
     void showSpeedMenu( QPoint );
-    void setRate( int );
+    void setRate( float );
 private:
     intf_thread_t *p_intf;
     QMenu *speedControlMenu;
+    QString tooltipStringPattern;
     SpeedControlWidget *speedControl;
 };
 
@@ -175,10 +180,11 @@ class SpeedControlWidget : public QFrame
     Q_OBJECT
 public:
     SpeedControlWidget( intf_thread_t *, QWidget * );
-    void updateControls( int );
+    void updateControls( float );
 private:
     intf_thread_t *p_intf;
     QSlider *speedSlider;
+    int lastValue;
 
 public slots:
     void activateOnState();
@@ -199,7 +205,7 @@ private:
     intf_thread_t *p_intf;
 
 public slots:
-    void requestUpdate() { emit updateRequested(); };
+    void requestUpdate() { emit updateRequested(); }
     void update( )
     {
         requestUpdate();