X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=modules%2Fgui%2Fqt4%2Fqt4.hpp;h=7b0236ceccf5114f6c494d127162e500831722d6;hb=07be8bb586c268720eb4deec0509f473a4d64b51;hp=266d4f4a31bb1dcd6ee34e916bdda5deb6d36d01;hpb=aa48a79230f0548ba0786d961c1d9be4aee8929c;p=vlc diff --git a/modules/gui/qt4/qt4.hpp b/modules/gui/qt4/qt4.hpp index 266d4f4a31..7b0236cecc 100644 --- a/modules/gui/qt4/qt4.hpp +++ b/modules/gui/qt4/qt4.hpp @@ -5,6 +5,7 @@ * $Id$ * * Authors: Clément Stenac + * Jean-Baptiste Kempf * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,41 +25,58 @@ #ifndef _QVLC_H_ #define _QVLC_H_ -#include +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include #include #include + #include +#define HAS_QT43 ( QT_VERSION >= 0x040300 ) + +#define QT_NORMAL_MODE 0 +#define QT_ALWAYS_VIDEO_MODE 1 +#define QT_MINIMAL_MODE 2 + class QApplication; class QMenu; class MainInterface; class DialogsProvider; class VideoWidget; +class QSettings; struct intf_sys_t { QApplication *p_app; MainInterface *p_mi; + + QSettings *mainSettings; + + bool b_isDialogProvider; + playlist_t *p_playlist; msg_subscription_t *p_sub; ///< Subscription to the message bank VideoWidget *p_video; - int i_saved_height, i_saved_width; + const char *psz_filepath; QMenu * p_popup_menu; }; #define THEPL p_intf->p_sys->p_playlist -#define QPL_LOCK vlc_mutex_lock( &THEPL->object_lock ); -#define QPL_UNLOCK vlc_mutex_unlock( &THEPL->object_lock ); +#define QPL_LOCK vlc_object_lock( THEPL ); +#define QPL_UNLOCK vlc_object_unlock( THEPL ); #define THEDP DialogsProvider::getInstance() -#define THEMIM MainInputManager::getInstance( NULL ) +#define THEMIM MainInputManager::getInstance( p_intf ) #define qfu( i ) QString::fromUtf8( i ) #define qtr( i ) QString::fromUtf8( _(i) ) -#define qtu( i ) i.toUtf8().data() -#define qta( i ) i.toAscii().data() +#define qtu( i ) (i).toUtf8().data() +#define qta( i ) (i).toAscii().data() #define CONNECT( a, b, c, d ) connect( a, SIGNAL( b ), c, SLOT(d) ) #define BUTTONACT( b, a ) connect( b, SIGNAL( clicked() ), this, SLOT(a) ) @@ -74,16 +92,35 @@ struct intf_sys_t #define BUTTON_SET_IMG( button, text, image, tooltip ) \ BUTTON_SET( button, text, tooltip ); \ - button->setIcon( QIcon( ":/pixmaps/"#image ) ); + button->setIcon( QIcon( ":/"#image ) ); #define BUTTON_SET_ACT_I( button, text, image, tooltip, thisslot ) \ BUTTON_SET_IMG( button, text, image, tooltip ); \ BUTTONACT( button, thisslot ); -static int DialogEvent_Type = QEvent::User + 1; -static int PLUndockEvent_Type = QEvent::User + 2; -static int PLDockEvent_Type = QEvent::User + 3; -static int SetVideoOnTopEvent_Type = QEvent::User + 4; +#define VISIBLE(i) (i && i->isVisible()) + +#define TOGGLEV( x ) { if( x->isVisible() ) x->hide(); \ + else x->show(); } + +#if QT43 + #define setLayoutMargins( a, b, c, d, e) setContentsMargins( a, b, c, d ) +#else + #define setLayoutMargins( a, b, c, d, e) setMargin( e ) +#endif + +#define getSettings() p_intf->p_sys->mainSettings + +enum { + DialogEventType = 0, + IMEventType = 100, + PLEventType = 200 +}; + +static int DialogEvent_Type = QEvent::User + DialogEventType + 1; +//static int PLUndockEvent_Type = QEvent::User + DialogEventType + 2; +//static int PLDockEvent_Type = QEvent::User + DialogEventType + 3; +static int SetVideoOnTopEvent_Type = QEvent::User + DialogEventType + 4; class DialogEvent : public QEvent { @@ -101,15 +138,4 @@ public: intf_dialog_args_t *p_arg; }; -/* Ugly to put it here, but don't want more files ... */ -#include -class BasePlaylistWidget : public QFrame -{ -public: - BasePlaylistWidget( intf_thread_t *_p_i ) : p_intf( _p_i) {}; - virtual ~BasePlaylistWidget() {}; -protected: - intf_thread_t *p_intf; -}; - #endif