X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fqt4%2Fqt4.hpp;h=7b0236ceccf5114f6c494d127162e500831722d6;hb=473924674c85c5f5c11a5c2e0564ad6cc8f7d566;hp=aa8047068206382f2e2fc31369a1363ee57728c3;hpb=6523dc216580a0886adcd5f95e596a41a9d87107;p=vlc diff --git a/modules/gui/qt4/qt4.hpp b/modules/gui/qt4/qt4.hpp index aa80470682..7b0236cecc 100644 --- a/modules/gui/qt4/qt4.hpp +++ b/modules/gui/qt4/qt4.hpp @@ -1,10 +1,11 @@ /***************************************************************************** * qt4.hpp : QT4 interface **************************************************************************** - * Copyright (C) 2006 the VideoLAN team + * Copyright (C) 2006-2007 the VideoLAN team * $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 @@ -18,48 +19,108 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ #ifndef _QVLC_H_ #define _QVLC_H_ -#include -#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_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) ) -#define ON_TIMEOUT( act ) CONNECT( THEDP->fixed_timer, timeout, this, act ) +#define ON_TIMEOUT( act ) CONNECT( THEDP->fixed_timer, timeout(), this, act ) + +#define BUTTON_SET( button, text, tooltip ) \ + button->setText( text ); \ + button->setToolTip( tooltip ); + +#define BUTTON_SET_ACT( button, text, tooltip, thisslot ) \ + BUTTON_SET( button, text, tooltip ); \ + BUTTONACT( button, thisslot ); + +#define BUTTON_SET_IMG( button, text, image, tooltip ) \ + BUTTON_SET( button, text, tooltip ); \ + button->setIcon( QIcon( ":/"#image ) ); + +#define BUTTON_SET_ACT_I( button, text, image, tooltip, thisslot ) \ + BUTTON_SET_IMG( button, text, image, tooltip ); \ + BUTTONACT( button, thisslot ); + +#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 + 1; +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 {