summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.cpp22
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.h8
-rw-r--r--noncore/multimedia/opieplayer2/skin.cpp7
-rw-r--r--noncore/multimedia/opieplayer2/skin.h2
4 files changed, 23 insertions, 16 deletions
diff --git a/noncore/multimedia/opieplayer2/mediawidget.cpp b/noncore/multimedia/opieplayer2/mediawidget.cpp
index 2031b4d..4de7ea9 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.cpp
+++ b/noncore/multimedia/opieplayer2/mediawidget.cpp
@@ -44,7 +44,7 @@ MediaWidget::~MediaWidget()
44} 44}
45 45
46void MediaWidget::setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount, 46void MediaWidget::setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount,
47 const QString &imagePrefix, const QSize &buttonAreaSize ) 47 const Skin &skin, const QSize &buttonAreaSize )
48{ 48{
49 buttonMask = QImage( buttonAreaSize, 8, 255 ); 49 buttonMask = QImage( buttonAreaSize, 8, 255 );
50 buttonMask.fill( 0 ); 50 buttonMask.fill( 0 );
@@ -53,40 +53,37 @@ void MediaWidget::setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount
53 buttons.reserve( buttonCount ); 53 buttons.reserve( buttonCount );
54 54
55 for ( uint i = 0; i < buttonCount; ++i ) { 55 for ( uint i = 0; i < buttonCount; ++i ) {
56 Button button = setupButton( skinInfo[ i ], imagePrefix ); 56 Button button = setupButton( skinInfo[ i ], skin );
57 buttons.push_back( button ); 57 buttons.push_back( button );
58 } 58 }
59} 59}
60 60
61MediaWidget::Button MediaWidget::setupButton( const SkinButtonInfo &buttonInfo, const QString &imagePrefix ) 61MediaWidget::Button MediaWidget::setupButton( const SkinButtonInfo &buttonInfo, const Skin &skin )
62{ 62{
63 Button button; 63 Button button;
64 button.command = buttonInfo.command; 64 button.command = buttonInfo.command;
65 button.type = buttonInfo.type; 65 button.type = buttonInfo.type;
66 66
67 QString fileName = imagePrefix + buttonInfo.fileName + ".png"; 67 button.mask = setupButtonMask( button.command, skin.buttonMaskImage( buttonInfo.fileName ) );
68
69 button.mask = setupButtonMask( button.command, fileName );
70 68
71 return button; 69 return button;
72} 70}
73 71
74QBitmap MediaWidget::setupButtonMask( const Command &command, const QString &fileName ) 72QBitmap MediaWidget::setupButtonMask( const Command &command, const QImage &maskImage )
75{ 73{
76 QImage imgMask( Resource::findPixmap( fileName ) ); 74 if ( maskImage.isNull() )
77 if ( imgMask.isNull() )
78 return QBitmap(); 75 return QBitmap();
79 76
80 uchar **dest = buttonMask.jumpTable(); 77 uchar **dest = buttonMask.jumpTable();
81 for ( int y = 0; y < buttonMask.height(); y++ ) { 78 for ( int y = 0; y < buttonMask.height(); y++ ) {
82 uchar *line = dest[y]; 79 uchar *line = dest[y];
83 for ( int x = 0; x < buttonMask.width(); x++ ) 80 for ( int x = 0; x < buttonMask.width(); x++ )
84 if ( !qRed( imgMask.pixel( x, y ) ) ) 81 if ( !qRed( maskImage.pixel( x, y ) ) )
85 line[x] = command + 1; 82 line[x] = command + 1;
86 } 83 }
87 84
88 // ### grmbl qt2. use constructor when switching to qt3. 85 // ### grmbl qt2. use constructor when switching to qt3.
89 QBitmap bm; bm = imgMask; 86 QBitmap bm; bm = maskImage;
90 return bm; 87 return bm;
91} 88}
92 89
@@ -108,8 +105,7 @@ void MediaWidget::loadSkin( const SkinButtonInfo *skinInfo, uint buttonCount, co
108 buttonUpImage = skin.buttonUpImage(); 105 buttonUpImage = skin.buttonUpImage();
109 buttonDownImage = skin.buttonDownImage(); 106 buttonDownImage = skin.buttonDownImage();
110 107
111 setupButtons( skinInfo, buttonCount, 108 setupButtons( skinInfo, buttonCount, skin, buttonUpImage.size() );
112 skinPath + QString::fromLatin1( "/skin%1_mask_" ).arg( fileNameInfix ), buttonUpImage.size() );
113} 109}
114 110
115void MediaWidget::closeEvent( QCloseEvent * ) 111void MediaWidget::closeEvent( QCloseEvent * )
diff --git a/noncore/multimedia/opieplayer2/mediawidget.h b/noncore/multimedia/opieplayer2/mediawidget.h
index 52b9fcb..0d635aa 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.h
+++ b/noncore/multimedia/opieplayer2/mediawidget.h
@@ -43,6 +43,8 @@ namespace
43 }; 43 };
44} 44}
45 45
46class Skin;
47
46class MediaWidget : public QWidget 48class MediaWidget : public QWidget
47{ 49{
48 Q_OBJECT 50 Q_OBJECT
@@ -100,9 +102,9 @@ signals:
100 102
101protected: 103protected:
102 void setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount, 104 void setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount,
103 const QString &imagePrefix, const QSize &buttonAreaSize ); 105 const Skin &skin, const QSize &buttonAreaSize );
104 Button setupButton( const SkinButtonInfo &buttonInfo, const QString &imagePrefix ); 106 Button setupButton( const SkinButtonInfo &buttonInfo, const Skin &skin );
105 QBitmap setupButtonMask( const Command &command, const QString &fileName ); 107 QBitmap setupButtonMask( const Command &command, const QImage &maskImage );
106 108
107 void loadDefaultSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &fileNameInfix = QString::null ); 109 void loadDefaultSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &fileNameInfix = QString::null );
108 void loadSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &name, const QString &fileNameInfix ); 110 void loadSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &name, const QString &fileNameInfix );
diff --git a/noncore/multimedia/opieplayer2/skin.cpp b/noncore/multimedia/opieplayer2/skin.cpp
index 352368f..fb1c9c4 100644
--- a/noncore/multimedia/opieplayer2/skin.cpp
+++ b/noncore/multimedia/opieplayer2/skin.cpp
@@ -24,5 +24,12 @@ QImage Skin::buttonDownImage() const
24 return QImage( Resource::findPixmap( QString( "%1/skin%2_down" ).arg( m_skinPath ).arg( m_fileNameInfix ) ) ); 24 return QImage( Resource::findPixmap( QString( "%1/skin%2_down" ).arg( m_skinPath ).arg( m_fileNameInfix ) ) );
25} 25}
26 26
27QImage Skin::buttonMaskImage( const QString &fileName ) const
28{
29 QString prefix = m_skinPath + QString::fromLatin1( "/skin%1_mask_" ).arg( m_fileNameInfix );
30 QString path = prefix + fileName + ".png";
31 return QImage( Resource::findPixmap( path ) );
32}
33
27/* vim: et sw=4 ts=4 34/* vim: et sw=4 ts=4
28 */ 35 */
diff --git a/noncore/multimedia/opieplayer2/skin.h b/noncore/multimedia/opieplayer2/skin.h
index 85f9e57..f160b3c 100644
--- a/noncore/multimedia/opieplayer2/skin.h
+++ b/noncore/multimedia/opieplayer2/skin.h
@@ -13,6 +13,8 @@ public:
13 QImage buttonUpImage() const; 13 QImage buttonUpImage() const;
14 QImage buttonDownImage() const; 14 QImage buttonDownImage() const;
15 15
16 QImage buttonMaskImage( const QString &fileName ) const;
17
16private: 18private:
17 QString m_name; 19 QString m_name;
18 QString m_fileNameInfix; 20 QString m_fileNameInfix;