]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/main_interface.hpp
Qt4 - MouseWheel support - patch by Sergey Volk.
[vlc] / modules / gui / qt4 / main_interface.hpp
index cfad5c50e08eb060ed895c2b1fb59018a7dfa78f..81e2e5bf5fbd2ea4ed9817932d8276e3846bf127 100644 (file)
@@ -23,8 +23,8 @@
 #ifndef _MAIN_INTERFACE_H_
 #define _MAIN_INTERFACE_H_
 
-#include <vlc/intf.h>
-#include <vlc/aout.h>
+#include "qt4.hpp"
+#include <vlc_aout.h>
 #include "ui/main_interface.h"
 #include "util/qvlcframe.hpp"
 
@@ -34,7 +34,7 @@ class QSettings;
 class QCloseEvent;
 class QKeyEvent;
 class QLabel;
-
+class QEvent;
 class InputManager;
 class InputSlider;
 class VideoWidget;
@@ -42,6 +42,7 @@ class BackgroundWidget;
 class PlaylistWidget;
 class VolumeClickHandler;
 class VisualSelector;
+class ControlsWidget;
 
 class MainInterface : public QVLCMW
 {
@@ -49,8 +50,6 @@ class MainInterface : public QVLCMW
 public:
     MainInterface( intf_thread_t *);
     virtual ~MainInterface();
-
-
     void *requestVideo( vout_thread_t *p_nvout, int *pi_x,
                         int *pi_y, unsigned int *pi_width,
                         unsigned int *pi_height );
@@ -58,6 +57,10 @@ public:
     int controlVideo( void *p_window, int i_query, va_list args );
 protected:
     void resizeEvent( QResizeEvent * );
+    void dropEvent( QDropEvent *);
+    void dragEnterEvent( QDragEnterEvent * );
+    void dragMoveEvent( QDragMoveEvent * );
+    void dragLeaveEvent( QDragLeaveEvent * );
     void closeEvent( QCloseEvent *);
     Ui::MainInterfaceUI ui;
     friend class VolumeClickHandler;
@@ -73,13 +76,23 @@ private:
     /* Video */
     VideoWidget         *videoWidget;
     virtual void keyPressEvent( QKeyEvent *);
+    virtual void wheelEvent( QWheelEvent * );
+
+    bool embeddedPlaylistWasActive;
+    bool videoIsActive;
+    QSize savedVideoSize;
+
 
     BackgroundWidget    *bgWidget;
     VisualSelector      *visualSelector;
+    ControlsWidget      *advControls;
     PlaylistWidget      *playlistWidget;
 
     bool                 playlistEmbeddedFlag;
     bool                 videoEmbeddedFlag;
+    bool                 alwaysVideoFlag;
+    bool                 advControlsEnabled;
+    bool                 visualSelectorEnabled;
 
     InputManager        *main_input_manager;
     InputSlider         *slider;
@@ -87,7 +100,12 @@ private:
 
     QLabel              *timeLabel;
     QLabel              *nameLabel;
+
+    void customEvent( QEvent *);
+public slots:
+    void undockPlaylist();
 private slots:
+    void setNavigation( int );
     void setStatus( int );
     void setName( QString );
     void setDisplay( float, int, int );
@@ -97,6 +115,8 @@ private slots:
     void prev();
     void next();
     void playlist();
+    void visual();
+    void advanced();
     void updateVolume( int sliderVolume );
 };
 
@@ -104,24 +124,21 @@ private slots:
 class VolumeClickHandler : public QObject
 {
 public:
-    VolumeClickHandler( MainInterface *_m ) :QObject(_m) {m = _m; }
+    VolumeClickHandler( intf_thread_t *_p_intf, MainInterface *_m ) :QObject(_m)
+    {m = _m; p_intf = _p_intf; }
     virtual ~VolumeClickHandler() {};
     bool eventFilter( QObject *obj, QEvent *e )
     {
         if (e->type() == QEvent::MouseButtonPress )
         {
-            if( obj->objectName() == "volLowLabel" )
-            {
-                m->ui.volumeSlider->setValue( 0 );
-            }
-            else
-                m->ui.volumeSlider->setValue( 100 );
+            aout_VolumeMute( p_intf, NULL );
             return true;
         }
         return false;
     }
 private:
     MainInterface *m;
+    intf_thread_t *p_intf;
 };
 
 #endif