summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/audiowidget.cpp7
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.cpp3
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.h10
-rw-r--r--noncore/multimedia/opieplayer2/videowidget.cpp16
4 files changed, 19 insertions, 17 deletions
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp
index 714509e..c3e206c 100644
--- a/noncore/multimedia/opieplayer2/audiowidget.cpp
+++ b/noncore/multimedia/opieplayer2/audiowidget.cpp
@@ -83,65 +83,66 @@ void changeTextColor( QWidget * w) {
83 83
84AudioWidget::AudioWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name) : 84AudioWidget::AudioWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name) :
85 85
86 MediaWidget( playList, mediaPlayerState, parent, name ), songInfo( this ), slider( Qt::Horizontal, this ), time( this ), 86 MediaWidget( playList, mediaPlayerState, parent, name ), songInfo( this ), slider( Qt::Horizontal, this ), time( this ),
87 audioSliderBeingMoved( false ) 87 audioSliderBeingMoved( false )
88{ 88{
89 setCaption( tr("OpiePlayer") ); 89 setCaption( tr("OpiePlayer") );
90 90
91 Config cfg("OpiePlayer"); 91 Config cfg("OpiePlayer");
92 cfg.setGroup("Options"); 92 cfg.setGroup("Options");
93 skin = cfg.readEntry("Skin","default"); 93 skin = cfg.readEntry("Skin","default");
94 //skin = "scaleTest"; 94 //skin = "scaleTest";
95 // color of background, frame, degree of transparency 95 // color of background, frame, degree of transparency
96 96
97 QString skinPath = "opieplayer2/skins/" + skin; 97 QString skinPath = "opieplayer2/skins/" + skin;
98 backgroundPixmap = QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) ); 98 backgroundPixmap = QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) );
99 imgUp = QImage( Resource::loadImage( QString("%1/skin_up").arg(skinPath) ) ); 99 imgUp = QImage( Resource::loadImage( QString("%1/skin_up").arg(skinPath) ) );
100 imgDn = QImage( Resource::loadImage( QString("%1/skin_down").arg(skinPath) ) ); 100 imgDn = QImage( Resource::loadImage( QString("%1/skin_down").arg(skinPath) ) );
101 101
102 buttonMask = QImage( imgUp.width(), imgUp.height(), 8, 255 ); 102 buttonMask = QImage( imgUp.width(), imgUp.height(), 8, 255 );
103 buttonMask.fill( 0 ); 103 buttonMask.fill( 0 );
104 104
105 for ( uint i = 0; i < buttonCount; i++ ) { 105 for ( uint i = 0; i < buttonCount; i++ ) {
106 Button button; 106 Button button;
107 button.command = skinInfo[ i ].command;
107 button.type = skinInfo[ i ].type; 108 button.type = skinInfo[ i ].type;
108 109
109 QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skin_mask_" + skinInfo[i].fileName + ".png" ); 110 QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skin_mask_" + skinInfo[i].fileName + ".png" );
110 button.mask =QBitmap( filename ); 111 button.mask =QBitmap( filename );
111 112
112 if ( !button.mask.isNull() ) { 113 if ( !button.mask.isNull() ) {
113 QImage imgMask = button.mask.convertToImage(); 114 QImage imgMask = button.mask.convertToImage();
114 uchar **dest = buttonMask.jumpTable(); 115 uchar **dest = buttonMask.jumpTable();
115 for ( int y = 0; y < imgUp.height(); y++ ) { 116 for ( int y = 0; y < imgUp.height(); y++ ) {
116 uchar *line = dest[y]; 117 uchar *line = dest[y];
117 for ( int x = 0; x < imgUp.width(); x++ ) 118 for ( int x = 0; x < imgUp.width(); x++ )
118 if ( !qRed( imgMask.pixel( x, y ) ) ) 119 if ( !qRed( imgMask.pixel( x, y ) ) )
119 line[x] = i + 1; 120 line[x] = i + 1;
120 } 121 }
121 } 122 }
122 123
123 buttons.insert( i, button ); 124 buttons.push_back( button );
124 } 125 }
125 126
126 setBackgroundPixmap( backgroundPixmap ); 127 setBackgroundPixmap( backgroundPixmap );
127 128
128 songInfo.setFocusPolicy( QWidget::NoFocus ); 129 songInfo.setFocusPolicy( QWidget::NoFocus );
129// changeTextColor( &songInfo ); 130// changeTextColor( &songInfo );
130// songInfo.setBackgroundColor( QColor( 167, 212, 167 )); 131// songInfo.setBackgroundColor( QColor( 167, 212, 167 ));
131// songInfo.setFrameStyle( QFrame::NoFrame); 132// songInfo.setFrameStyle( QFrame::NoFrame);
132 songInfo.setFrameStyle( QFrame::WinPanel | QFrame::Sunken ); 133 songInfo.setFrameStyle( QFrame::WinPanel | QFrame::Sunken );
133// songInfo.setForegroundColor(Qt::white); 134// songInfo.setForegroundColor(Qt::white);
134 135
135 slider.setFixedHeight( 20 ); 136 slider.setFixedHeight( 20 );
136 slider.setMinValue( 0 ); 137 slider.setMinValue( 0 );
137 slider.setMaxValue( 1 ); 138 slider.setMaxValue( 1 );
138 slider.setFocusPolicy( QWidget::NoFocus ); 139 slider.setFocusPolicy( QWidget::NoFocus );
139 slider.setBackgroundPixmap( backgroundPixmap ); 140 slider.setBackgroundPixmap( backgroundPixmap );
140 141
141// Config cofg("qpe"); 142// Config cofg("qpe");
142// cofg.setGroup("Appearance"); 143// cofg.setGroup("Appearance");
143// QColor backgroundcolor = QColor( cofg.readEntry( "Background", "#E5E1D5" ) ); 144// QColor backgroundcolor = QColor( cofg.readEntry( "Background", "#E5E1D5" ) );
144 145
145 time.setFocusPolicy( QWidget::NoFocus ); 146 time.setFocusPolicy( QWidget::NoFocus );
146 time.setAlignment( Qt::AlignCenter ); 147 time.setAlignment( Qt::AlignCenter );
147 148
@@ -187,49 +188,49 @@ QPixmap maskPixToMask( QPixmap pix, QBitmap mask ) {
187 QPixmap pixmap( pix ); 188 QPixmap pixmap( pix );
188 pixmap.setMask( mask ); 189 pixmap.setMask( mask );
189 return pixmap; 190 return pixmap;
190} 191}
191 192
192}; 193};
193 194
194void AudioWidget::resizeEvent( QResizeEvent * ) { 195void AudioWidget::resizeEvent( QResizeEvent * ) {
195 int h = height(); 196 int h = height();
196 int w = width(); 197 int w = width();
197 198
198 songInfo.setGeometry( QRect( 2, 2, w - 4, 20 ) ); 199 songInfo.setGeometry( QRect( 2, 2, w - 4, 20 ) );
199 slider.setFixedWidth( w - 110 ); 200 slider.setFixedWidth( w - 110 );
200 slider.setGeometry( QRect( 15, h - 22, w - 90, 20 ) ); 201 slider.setGeometry( QRect( 15, h - 22, w - 90, 20 ) );
201 slider.setBackgroundOrigin( QWidget::ParentOrigin ); 202 slider.setBackgroundOrigin( QWidget::ParentOrigin );
202 time.setGeometry( QRect( w - 85, h - 30, 70, 20 ) ); 203 time.setGeometry( QRect( w - 85, h - 30, 70, 20 ) );
203 204
204 upperLeftOfButtonMask.rx() = ( w - imgUp.width() ) / 2; 205 upperLeftOfButtonMask.rx() = ( w - imgUp.width() ) / 2;
205 upperLeftOfButtonMask.ry() = (( h - imgUp.height() ) / 2) - 10; 206 upperLeftOfButtonMask.ry() = (( h - imgUp.height() ) / 2) - 10;
206 QPoint p = upperLeftOfButtonMask; 207 QPoint p = upperLeftOfButtonMask;
207 208
208 QPixmap pixUp = combineImageWithBackground( imgUp, backgroundPixmap, p ); 209 QPixmap pixUp = combineImageWithBackground( imgUp, backgroundPixmap, p );
209 QPixmap pixDn = combineImageWithBackground( imgDn, backgroundPixmap, p ); 210 QPixmap pixDn = combineImageWithBackground( imgDn, backgroundPixmap, p );
210 211
211 for ( uint i = 0; i < buttons.count(); i++ ) { 212 for ( uint i = 0; i < buttons.size(); i++ ) {
212 if ( !buttons[i].mask.isNull() ) { 213 if ( !buttons[i].mask.isNull() ) {
213 buttons[i].pixUp = maskPixToMask( pixUp, buttons[i].mask ); 214 buttons[i].pixUp = maskPixToMask( pixUp, buttons[i].mask );
214 buttons[i].pixDown = maskPixToMask( pixDn, buttons[i].mask ); 215 buttons[i].pixDown = maskPixToMask( pixDn, buttons[i].mask );
215 } 216 }
216 } 217 }
217} 218}
218 219
219void AudioWidget::sliderPressed() { 220void AudioWidget::sliderPressed() {
220 audioSliderBeingMoved = TRUE; 221 audioSliderBeingMoved = TRUE;
221} 222}
222 223
223 224
224void AudioWidget::sliderReleased() { 225void AudioWidget::sliderReleased() {
225 audioSliderBeingMoved = FALSE; 226 audioSliderBeingMoved = FALSE;
226 if ( slider.width() == 0 ) 227 if ( slider.width() == 0 )
227 return; 228 return;
228 long val = long((double)slider.value() * mediaPlayerState.length() / slider.width()); 229 long val = long((double)slider.value() * mediaPlayerState.length() / slider.width());
229 mediaPlayerState.setPosition( val ); 230 mediaPlayerState.setPosition( val );
230} 231}
231 232
232void AudioWidget::setPosition( long i ) { 233void AudioWidget::setPosition( long i ) {
233 // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<set position %d",i); 234 // qDebug("<<<<<<<<<<<<<<<<<<<<<<<<set position %d",i);
234 updateSlider( i, mediaPlayerState.length() ); 235 updateSlider( i, mediaPlayerState.length() );
235} 236}
@@ -313,49 +314,49 @@ void AudioWidget::skipFor() {
313 314
314void AudioWidget::skipBack() { 315void AudioWidget::skipBack() {
315 skipDirection = -1; 316 skipDirection = -1;
316 startTimer( 50 ); 317 startTimer( 50 );
317 mediaPlayerState.setPosition( mediaPlayerState.position() - 2 ); 318 mediaPlayerState.setPosition( mediaPlayerState.position() - 2 );
318} 319}
319 320
320 321
321 322
322void AudioWidget::stopSkip() { 323void AudioWidget::stopSkip() {
323 killTimers(); 324 killTimers();
324} 325}
325 326
326 327
327void AudioWidget::timerEvent( QTimerEvent * ) { 328void AudioWidget::timerEvent( QTimerEvent * ) {
328 if ( skipDirection == +1 ) { 329 if ( skipDirection == +1 ) {
329 mediaPlayerState.setPosition( mediaPlayerState.position() + 2 ); 330 mediaPlayerState.setPosition( mediaPlayerState.position() + 2 );
330 } else if ( skipDirection == -1 ) { 331 } else if ( skipDirection == -1 ) {
331 mediaPlayerState.setPosition( mediaPlayerState.position() - 2 ); 332 mediaPlayerState.setPosition( mediaPlayerState.position() - 2 );
332 } 333 }
333} 334}
334 335
335 336
336void AudioWidget::mouseMoveEvent( QMouseEvent *event ) { 337void AudioWidget::mouseMoveEvent( QMouseEvent *event ) {
337 for ( unsigned int i = 0; i < buttons.count(); i++ ) { 338 for ( unsigned int i = 0; i < buttons.size(); i++ ) {
338 339
339 Button &button = buttons[ i ]; 340 Button &button = buttons[ i ];
340 341
341 if ( event->state() == QMouseEvent::LeftButton ) { 342 if ( event->state() == QMouseEvent::LeftButton ) {
342 // The test to see if the mouse click is inside the button or not 343 // The test to see if the mouse click is inside the button or not
343 bool isOnButton = isOverButton( event->pos() - upperLeftOfButtonMask, i ); 344 bool isOnButton = isOverButton( event->pos() - upperLeftOfButtonMask, i );
344 345
345 if ( isOnButton && !button.isHeld ) { 346 if ( isOnButton && !button.isHeld ) {
346 button.isHeld = TRUE; 347 button.isHeld = TRUE;
347 toggleButton( button ); 348 toggleButton( button );
348 switch (i) { 349 switch (i) {
349 case VolumeUp: 350 case VolumeUp:
350 emit moreClicked(); 351 emit moreClicked();
351 return; 352 return;
352 case VolumeDown: 353 case VolumeDown:
353 emit lessClicked(); 354 emit lessClicked();
354 return; 355 return;
355 case Forward: 356 case Forward:
356 emit forwardClicked(); 357 emit forwardClicked();
357 return; 358 return;
358 case Back: 359 case Back:
359 emit backClicked(); 360 emit backClicked();
360 return; 361 return;
361 } 362 }
diff --git a/noncore/multimedia/opieplayer2/mediawidget.cpp b/noncore/multimedia/opieplayer2/mediawidget.cpp
index 66129c9..7891a7e 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.cpp
+++ b/noncore/multimedia/opieplayer2/mediawidget.cpp
@@ -61,62 +61,63 @@ void MediaWidget::paintEvent( QPaintEvent *pe )
61 p.translate( -pe->rect().topLeft().x(), -pe->rect().topLeft().y() ); 61 p.translate( -pe->rect().topLeft().x(), -pe->rect().topLeft().y() );
62 p.drawTiledPixmap( pe->rect(), backgroundPixmap, pe->rect().topLeft() ); 62 p.drawTiledPixmap( pe->rect(), backgroundPixmap, pe->rect().topLeft() );
63 paintAllButtons( p ); 63 paintAllButtons( p );
64 QPainter p2( this ); 64 QPainter p2( this );
65 p2.drawPixmap( pe->rect().topLeft(), pix ); 65 p2.drawPixmap( pe->rect().topLeft(), pix );
66 } else { 66 } else {
67 QPainter p( this ); 67 QPainter p( this );
68 paintAllButtons( p ); 68 paintAllButtons( p );
69 } 69 }
70} 70}
71 71
72void MediaWidget::handleCommand( Command command, bool buttonDown ) 72void MediaWidget::handleCommand( Command command, bool buttonDown )
73{ 73{
74 switch ( command ) { 74 switch ( command ) {
75 case Play: mediaPlayerState.togglePaused(); 75 case Play: mediaPlayerState.togglePaused();
76 case Stop: mediaPlayerState.setPlaying(FALSE); return; 76 case Stop: mediaPlayerState.setPlaying(FALSE); return;
77 case Next: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setNext(); return; 77 case Next: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setNext(); return;
78 case Previous: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setPrev(); return; 78 case Previous: if( playList.currentTab() == PlayListWidget::CurrentPlayList ) mediaPlayerState.setPrev(); return;
79 case Loop: mediaPlayerState.setLooping( buttonDown ); return; 79 case Loop: mediaPlayerState.setLooping( buttonDown ); return;
80 case VolumeUp: emit moreReleased(); return; 80 case VolumeUp: emit moreReleased(); return;
81 case VolumeDown: emit lessReleased(); return; 81 case VolumeDown: emit lessReleased(); return;
82 case PlayList: mediaPlayerState.setList(); return; 82 case PlayList: mediaPlayerState.setList(); return;
83 case Forward: emit forwardReleased(); return; 83 case Forward: emit forwardReleased(); return;
84 case Back: emit backReleased(); return; 84 case Back: emit backReleased(); return;
85 default: assert( false );
85 } 86 }
86} 87}
87 88
88bool MediaWidget::isOverButton( const QPoint &position, int buttonId ) const 89bool MediaWidget::isOverButton( const QPoint &position, int buttonId ) const
89{ 90{
90 return ( position.x() > 0 && position.y() > 0 && 91 return ( position.x() > 0 && position.y() > 0 &&
91 position.x() < buttonMask.width() && 92 position.x() < buttonMask.width() &&
92 position.y() < buttonMask.height() && 93 position.y() < buttonMask.height() &&
93 buttonMask.pixelIndex( position.x(), position.y() ) == buttonId + 1 ); 94 buttonMask.pixelIndex( position.x(), position.y() ) == buttonId + 1 );
94} 95}
95 96
96void MediaWidget::paintAllButtons( QPainter &p ) 97void MediaWidget::paintAllButtons( QPainter &p )
97{ 98{
98 for ( ButtonMap::ConstIterator it = buttons.begin(); 99 for ( ButtonVector::const_iterator it = buttons.begin();
99 it != buttons.end(); ++it ) 100 it != buttons.end(); ++it )
100 paintButton( p, *it ); 101 paintButton( p, *it );
101} 102}
102 103
103void MediaWidget::paintButton( const Button &button ) 104void MediaWidget::paintButton( const Button &button )
104{ 105{
105 QPainter p( this ); 106 QPainter p( this );
106 paintButton( p, button ); 107 paintButton( p, button );
107} 108}
108 109
109void MediaWidget::paintButton( QPainter &p, const Button &button ) 110void MediaWidget::paintButton( QPainter &p, const Button &button )
110{ 111{
111 if ( button.isDown ) 112 if ( button.isDown )
112 p.drawPixmap( upperLeftOfButtonMask, button.pixDown ); 113 p.drawPixmap( upperLeftOfButtonMask, button.pixDown );
113 else 114 else
114 p.drawPixmap( upperLeftOfButtonMask, button.pixUp ); 115 p.drawPixmap( upperLeftOfButtonMask, button.pixUp );
115} 116}
116 117
117void MediaWidget::setToggleButton( Button &button, bool down ) 118void MediaWidget::setToggleButton( Button &button, bool down )
118{ 119{
119 if ( down != button.isDown ) 120 if ( down != button.isDown )
120 toggleButton( button ); 121 toggleButton( button );
121} 122}
122 123
diff --git a/noncore/multimedia/opieplayer2/mediawidget.h b/noncore/multimedia/opieplayer2/mediawidget.h
index 05b7b71..efba6f3 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.h
+++ b/noncore/multimedia/opieplayer2/mediawidget.h
@@ -14,98 +14,98 @@
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Library General Public License for more details. 15 Library General Public License for more details.
16 16
17 You should have received a copy of the GNU Library General Public License 17 You should have received a copy of the GNU Library General Public License
18 along with this library; see the file COPYING.LIB. If not, write to 18 along with this library; see the file COPYING.LIB. If not, write to
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 Boston, MA 02111-1307, USA. 20 Boston, MA 02111-1307, USA.
21*/ 21*/
22 22
23#ifndef MEDIAWIDGET_H 23#ifndef MEDIAWIDGET_H
24#define MEDIAWIDGET_H 24#define MEDIAWIDGET_H
25 25
26#include <qwidget.h> 26#include <qwidget.h>
27#include <qmap.h> 27#include <qmap.h>
28 28
29#include "mediaplayerstate.h" 29#include "mediaplayerstate.h"
30#include "playlistwidget.h" 30#include "playlistwidget.h"
31 31
32#include <vector> 32#include <vector>
33 33
34class MediaWidget : public QWidget 34class MediaWidget : public QWidget
35{ 35{
36 Q_OBJECT 36 Q_OBJECT
37public: 37public:
38 enum Command { Play = 0, Stop, Next, Previous, VolumeUp, VolumeDown, Loop, PlayList, Forward, Back }; 38 enum Command { Play = 0, Stop, Next, Previous, VolumeUp, VolumeDown, Loop, PlayList, Forward, Back, Undefined };
39 enum ButtonType { NormalButton, ToggleButton }; 39 enum ButtonType { NormalButton, ToggleButton };
40 40
41 struct Button 41 struct Button
42 { 42 {
43 Button() : type( NormalButton ), isHeld( false ), isDown( false ) {} 43 Button() : command( Undefined ), type( NormalButton ), isHeld( false ), isDown( false ) {}
44
45 Command command;
44 46
45 ButtonType type : 1; 47 ButtonType type : 1;
46 bool isHeld : 1; 48 bool isHeld : 1;
47 bool isDown : 1; 49 bool isDown : 1;
48 50
49 QBitmap mask; 51 QBitmap mask;
50 QPixmap pixUp; 52 QPixmap pixUp;
51 QPixmap pixDown; 53 QPixmap pixDown;
52 }; 54 };
53 typedef std::vector<Button> ButtonVector; 55 typedef std::vector<Button> ButtonVector;
54 // when the transition is done this should be Command -> Button
55 typedef QMap<int, Button> ButtonMap;
56 56
57 struct SkinButtonInfo 57 struct SkinButtonInfo
58 { 58 {
59 Command command; 59 Command command;
60 const char *fileName; 60 const char *fileName;
61 ButtonType type; 61 ButtonType type;
62 }; 62 };
63 63
64 typedef std::vector<QBitmap> MaskVector; 64 typedef std::vector<QBitmap> MaskVector;
65 typedef std::vector<QPixmap> PixmapVector; 65 typedef std::vector<QPixmap> PixmapVector;
66 66
67 MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent = 0, const char *name = 0 ); 67 MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPlayerState, QWidget *parent = 0, const char *name = 0 );
68 virtual ~MediaWidget(); 68 virtual ~MediaWidget();
69 69
70public slots: 70public slots:
71 virtual void setDisplayType( MediaPlayerState::DisplayType displayType ) = 0; 71 virtual void setDisplayType( MediaPlayerState::DisplayType displayType ) = 0;
72 virtual void setLength( long length ) = 0; 72 virtual void setLength( long length ) = 0;
73 virtual void setPlaying( bool playing ) = 0; 73 virtual void setPlaying( bool playing ) = 0;
74 74
75signals: 75signals:
76 void moreReleased(); 76 void moreReleased();
77 void lessReleased(); 77 void lessReleased();
78 void forwardReleased(); 78 void forwardReleased();
79 void backReleased(); 79 void backReleased();
80 80
81protected: 81protected:
82 virtual void closeEvent( QCloseEvent * ); 82 virtual void closeEvent( QCloseEvent * );
83 83
84 virtual void paintEvent( QPaintEvent *pe ); 84 virtual void paintEvent( QPaintEvent *pe );
85 85
86 void handleCommand( Command command, bool buttonDown ); 86 void handleCommand( Command command, bool buttonDown );
87 87
88 bool isOverButton( const QPoint &position, int buttonId ) const; 88 bool isOverButton( const QPoint &position, int buttonId ) const;
89 89
90 void paintAllButtons( QPainter &p ); 90 void paintAllButtons( QPainter &p );
91 void paintButton( const Button &button ); 91 void paintButton( const Button &button );
92 void paintButton( QPainter &p, const Button &button ); 92 void paintButton( QPainter &p, const Button &button );
93 93
94 void setToggleButton( Button &button, bool down ); 94 void setToggleButton( Button &button, bool down );
95 void toggleButton( Button &button ); 95 void toggleButton( Button &button );
96 96
97 MediaPlayerState &mediaPlayerState; 97 MediaPlayerState &mediaPlayerState;
98 PlayListWidget &playList; 98 PlayListWidget &playList;
99 99
100 ButtonMap buttons; 100 ButtonVector buttons;
101 101
102 QImage buttonMask; 102 QImage buttonMask;
103 103
104 QPoint upperLeftOfButtonMask; 104 QPoint upperLeftOfButtonMask;
105 105
106 QPixmap backgroundPixmap; 106 QPixmap backgroundPixmap;
107}; 107};
108 108
109#endif // MEDIAWIDGET_H 109#endif // MEDIAWIDGET_H
110/* vim: et sw=4 ts=4 110/* vim: et sw=4 ts=4
111 */ 111 */
diff --git a/noncore/multimedia/opieplayer2/videowidget.cpp b/noncore/multimedia/opieplayer2/videowidget.cpp
index 9782b68..f59772e 100644
--- a/noncore/multimedia/opieplayer2/videowidget.cpp
+++ b/noncore/multimedia/opieplayer2/videowidget.cpp
@@ -53,55 +53,55 @@
53#endif 53#endif
54 54
55 55
56namespace 56namespace
57{ 57{
58 58
59const int xo = 2; // movable x offset 59const int xo = 2; // movable x offset
60const int yo = 0; // movable y offset 60const int yo = 0; // movable y offset
61 61
62const char * const skinV_mask_file_names[7] = { 62const char * const skinV_mask_file_names[7] = {
63"play","stop","fwd","back","up","down","full" 63"play","stop","fwd","back","up","down","full"
64}; 64};
65 65
66} 66}
67 67
68VideoWidget::VideoWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name ) 68VideoWidget::VideoWidget( PlayListWidget &playList, MediaPlayerState &mediaPlayerState, QWidget* parent, const char* name )
69 : MediaWidget( playList, mediaPlayerState, parent, name ), scaledWidth( 0 ), scaledHeight( 0 ) 69 : MediaWidget( playList, mediaPlayerState, parent, name ), scaledWidth( 0 ), scaledHeight( 0 )
70{ 70{
71 setCaption( tr("OpiePlayer - Video") ); 71 setCaption( tr("OpiePlayer - Video") );
72 72
73 Button defaultButton; 73 Button defaultButton;
74 Button toggleButton = defaultButton; 74 Button toggleButton = defaultButton;
75 toggleButton.type = ToggleButton; 75 toggleButton.type = ToggleButton;
76 76
77 buttons.insert( 0, toggleButton ); // play 77 buttons.push_back( toggleButton ); // play
78 buttons.insert( 1, toggleButton ); // stop 78 buttons.push_back( toggleButton ); // stop
79 buttons.insert( 2, toggleButton ); // next 79 buttons.push_back( toggleButton ); // next
80 buttons.insert( 3, toggleButton ); // previous 80 buttons.push_back( toggleButton ); // previous
81 buttons.insert( 4, toggleButton ); // volUp 81 buttons.push_back( toggleButton ); // volUp
82 buttons.insert( 5, toggleButton ); // volDown 82 buttons.push_back( toggleButton ); // volDown
83 buttons.insert( 6, toggleButton ); // fullscreen 83 buttons.push_back( toggleButton ); // fullscreen
84 84
85 videoFrame = new XineVideoWidget ( this, "Video frame" ); 85 videoFrame = new XineVideoWidget ( this, "Video frame" );
86 86
87 connect ( videoFrame, SIGNAL( videoResized ( const QSize & )), this, SIGNAL( videoResized ( const QSize & ))); 87 connect ( videoFrame, SIGNAL( videoResized ( const QSize & )), this, SIGNAL( videoResized ( const QSize & )));
88 connect ( videoFrame, SIGNAL( clicked () ), this, SLOT ( backToNormal() ) ); 88 connect ( videoFrame, SIGNAL( clicked () ), this, SLOT ( backToNormal() ) );
89 89
90 Config cfg("OpiePlayer"); 90 Config cfg("OpiePlayer");
91 cfg.setGroup("Options"); 91 cfg.setGroup("Options");
92 skin = cfg.readEntry("Skin","default"); 92 skin = cfg.readEntry("Skin","default");
93 93
94 QString skinPath = "opieplayer2/skins/" + skin; 94 QString skinPath = "opieplayer2/skins/" + skin;
95 backgroundPixmap = QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) ); 95 backgroundPixmap = QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) );
96 imgUp = QImage( Resource::loadImage( QString("%1/skinV_up").arg(skinPath) ) ); 96 imgUp = QImage( Resource::loadImage( QString("%1/skinV_up").arg(skinPath) ) );
97 imgDn = QImage( Resource::loadImage( QString("%1/skinV_down").arg(skinPath) ) ); 97 imgDn = QImage( Resource::loadImage( QString("%1/skinV_down").arg(skinPath) ) );
98 98
99 buttonMask = QImage( imgUp.width(), imgUp.height(), 8, 255 ); 99 buttonMask = QImage( imgUp.width(), imgUp.height(), 8, 255 );
100 buttonMask.fill( 0 ); 100 buttonMask.fill( 0 );
101 101
102 for ( int i = 0; i < 7; i++ ) { 102 for ( int i = 0; i < 7; i++ ) {
103 Button &button = buttons[ i ]; 103 Button &button = buttons[ i ];
104 104
105 QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skinV_mask_" + skinV_mask_file_names[i] + ".png" ); 105 QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skinV_mask_" + skinV_mask_file_names[i] + ".png" );
106 button.mask = QBitmap( filename ); 106 button.mask = QBitmap( filename );
107 107
@@ -222,49 +222,49 @@ void VideoWidget::setDisplayType( MediaPlayerState::DisplayType displayType )
222 // Effectively blank the view next time we show it so it looks nicer 222 // Effectively blank the view next time we show it so it looks nicer
223 scaledWidth = 0; 223 scaledWidth = 0;
224 scaledHeight = 0; 224 scaledHeight = 0;
225 hide(); 225 hide();
226} 226}
227 227
228void VideoWidget::updateSlider( long i, long max ) { 228void VideoWidget::updateSlider( long i, long max ) {
229 // Will flicker too much if we don't do this 229 // Will flicker too much if we don't do this
230 if ( max == 0 ) { 230 if ( max == 0 ) {
231 return; 231 return;
232 } 232 }
233 int width = slider->width(); 233 int width = slider->width();
234 int val = int((double)i * width / max); 234 int val = int((double)i * width / max);
235 if ( !mediaPlayerState.isFullscreen() && !videoSliderBeingMoved ) { 235 if ( !mediaPlayerState.isFullscreen() && !videoSliderBeingMoved ) {
236 if ( slider->value() != val ) { 236 if ( slider->value() != val ) {
237 slider->setValue( val ); 237 slider->setValue( val );
238 } 238 }
239 if ( slider->maxValue() != width ) { 239 if ( slider->maxValue() != width ) {
240 slider->setMaxValue( width ); 240 slider->setMaxValue( width );
241 } 241 }
242 } 242 }
243} 243}
244 244
245void VideoWidget::mouseMoveEvent( QMouseEvent *event ) { 245void VideoWidget::mouseMoveEvent( QMouseEvent *event ) {
246 for ( unsigned int i = 0; i < buttons.count(); i++ ) { 246 for ( unsigned int i = 0; i < buttons.size(); i++ ) {
247 247
248 Button &button = buttons[ i ]; 248 Button &button = buttons[ i ];
249 249
250 if ( event->state() == QMouseEvent::LeftButton ) { 250 if ( event->state() == QMouseEvent::LeftButton ) {
251 // The test to see if the mouse click is inside the button or not 251 // The test to see if the mouse click is inside the button or not
252 bool isOnButton = isOverButton( event->pos() - upperLeftOfButtonMask, i ); 252 bool isOnButton = isOverButton( event->pos() - upperLeftOfButtonMask, i );
253 253
254 if ( isOnButton && !button.isHeld ) { 254 if ( isOnButton && !button.isHeld ) {
255 button.isHeld = TRUE; 255 button.isHeld = TRUE;
256 toggleButton( button ); 256 toggleButton( button );
257 257
258 switch (i) { 258 switch (i) {
259 case VideoVolUp: 259 case VideoVolUp:
260 emit moreClicked(); 260 emit moreClicked();
261 return; 261 return;
262 case VideoVolDown: 262 case VideoVolDown:
263 emit lessClicked(); 263 emit lessClicked();
264 return; 264 return;
265 } 265 }
266 } else if ( !isOnButton && button.isHeld ) { 266 } else if ( !isOnButton && button.isHeld ) {
267 button.isHeld = FALSE; 267 button.isHeld = FALSE;
268 toggleButton( button ); 268 toggleButton( button );
269 } 269 }
270 } else { 270 } else {