]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/util/qvlcframe.hpp
Qt4 - Open: Capture Tab added. Still almost empty, but well, this is coming after. :D
[vlc] / modules / gui / qt4 / util / qvlcframe.hpp
index 49e9fb4012504a7f2527406a33706906b24c57c0..f0f489291aed773a88d350ff373af72898c411fb 100644 (file)
 #define _QVLCFRAME_H_
 
 #include <QWidget>
+#include <QDialog>
+#include <QSpacerItem>
+#include <QHBoxLayout>
 #include <QApplication>
 #include <QSettings>
 #include <QMainWindow>
 #include <QPlastiqueStyle>
+#include <QPushButton>
+#include "qt4.hpp"
 #include <vlc/vlc.h>
+#include <vlc_charset.h>
 
 class QVLCFrame : public QWidget
 {
 public:
-    static void fixStyle( QWidget *w)
+    static QHBoxLayout* doButtons( QWidget *w, QBoxLayout *l,
+                               QPushButton **defaul, char *psz_default,
+                               QPushButton **alt, char *psz_alt,
+                               QPushButton **other, char *psz_other )
     {
-         QStyle *style = qApp->style();
-#if 0
-        // Plastique is too dark.
-        /// theming ? getting KDE data ? ?
-        if( qobject_cast<QPlastiqueStyle *>(style) )
+#ifdef QT42
+#else
+        QHBoxLayout *buttons_layout = new QHBoxLayout;
+        QSpacerItem *spacerItem = new QSpacerItem( 40, 20,
+                               QSizePolicy::Expanding, QSizePolicy::Minimum);
+        buttons_layout->addItem( spacerItem );
+
+        if( psz_default )
+        {
+            *defaul = new QPushButton(0);
+            (*defaul)->setFocus();
+            buttons_layout->addWidget( *defaul );
+            (*defaul)->setText( qfu( psz_default ) );
+        }
+        if( psz_alt )
         {
-            QPalette plt( w->palette() );
-            plt.setColor( QPalette::Active, QPalette::Highlight, Qt::gray );
-            QColor vlg = (Qt::lightGray);
-            vlg = vlg.toHsv();
-            vlg.setHsv( vlg.hue(), vlg.saturation(), 235  );
-            plt.setColor( QPalette::Active, QPalette::Window, vlg );
-            plt.setColor( QPalette::Inactive, QPalette::Window, vlg );
-            w->setPalette( plt );
+            *alt = new QPushButton(0);
+            buttons_layout->addWidget( *alt );
+            (*alt)->setText( qfu( psz_alt ) );
         }
+        if( psz_other )
+        {
+            *other = new QPushButton( 0 );
+            buttons_layout->addWidget( *other );
+            (*other)->setText( qfu( psz_other ) );
+        }
+        if( l )
+            l->addLayout( buttons_layout );
 #endif
-    }
+        return buttons_layout;
+    };
 
     QVLCFrame( intf_thread_t *_p_intf ) : QWidget( NULL ), p_intf( _p_intf )
-    {
-        fixStyle( this );
-    };
+    {    };
     virtual ~QVLCFrame()   {};
 
     void toggleVisible()
@@ -77,7 +98,6 @@ protected:
     }
     void writeSettings( QString name )
     {
-        fprintf( stderr, "save\n" );
         QSettings settings( "VideoLAN", "VLC" );
         settings.beginGroup( name );
         settings.setValue ("size", size() );
@@ -86,14 +106,34 @@ protected:
     }
 };
 
+class QVLCDialog : public QDialog
+{
+public:
+    QVLCDialog( QWidget* parent, intf_thread_t *_p_intf ) :
+                                    QDialog( parent ), p_intf( _p_intf )
+    {}
+    virtual ~QVLCDialog() {};
+    void toggleVisible()
+    {
+        if( isVisible() ) hide();
+        else show();
+    }
+
+protected:
+    intf_thread_t *p_intf;
+};
+
 class QVLCMW : public QMainWindow
 {
 public:
     QVLCMW( intf_thread_t *_p_intf ) : QMainWindow( NULL ), p_intf( _p_intf )
+    {    }
+    virtual ~QVLCMW() {};
+    void toggleVisible()
     {
-        QVLCFrame::fixStyle( this );
+        if( isVisible() ) hide();
+        else show();
     }
-    virtual ~QVLCMW() {};
 protected:
     intf_thread_t *p_intf;
     QSize mainSize;
@@ -102,10 +142,9 @@ protected:
     {
         QSettings settings( "VideoLAN", "VLC" );
         settings.beginGroup( name );
-        mainSize = settings.value( "size", defSize ).toSize();
-        QPoint npos = settings.value( "pos", QPoint( 0,0 ) ).toPoint();
-        if( npos.x() > 0 )
-            move( npos );
+      QSize s =  settings.value( "size", defSize ).toSize() ;
+      fprintf( stderr, "%i %i ", s.width(), s.height() );
+        move( settings.value( "pos", QPoint( 0,0 ) ).toPoint() );
         settings.endGroup();
     }
     void readSettings( QString name )