-rw-r--r-- | noncore/multimedia/opieplayer2/mediawidget.cpp | 22 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/mediawidget.h | 8 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/skin.cpp | 7 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/skin.h | 2 |
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 @@ -39,59 +39,56 @@ MediaWidget::MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPla this, SLOT( setPlaying( bool ) ) ); } MediaWidget::~MediaWidget() { } void MediaWidget::setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount, - const QString &imagePrefix, const QSize &buttonAreaSize ) + const Skin &skin, const QSize &buttonAreaSize ) { buttonMask = QImage( buttonAreaSize, 8, 255 ); buttonMask.fill( 0 ); buttons.clear(); buttons.reserve( buttonCount ); for ( uint i = 0; i < buttonCount; ++i ) { - Button button = setupButton( skinInfo[ i ], imagePrefix ); + Button button = setupButton( skinInfo[ i ], skin ); buttons.push_back( button ); } } -MediaWidget::Button MediaWidget::setupButton( const SkinButtonInfo &buttonInfo, const QString &imagePrefix ) +MediaWidget::Button MediaWidget::setupButton( const SkinButtonInfo &buttonInfo, const Skin &skin ) { Button button; button.command = buttonInfo.command; button.type = buttonInfo.type; - QString fileName = imagePrefix + buttonInfo.fileName + ".png"; - - button.mask = setupButtonMask( button.command, fileName ); + button.mask = setupButtonMask( button.command, skin.buttonMaskImage( buttonInfo.fileName ) ); return button; } -QBitmap MediaWidget::setupButtonMask( const Command &command, const QString &fileName ) +QBitmap MediaWidget::setupButtonMask( const Command &command, const QImage &maskImage ) { - QImage imgMask( Resource::findPixmap( fileName ) ); - if ( imgMask.isNull() ) + if ( maskImage.isNull() ) return QBitmap(); uchar **dest = buttonMask.jumpTable(); for ( int y = 0; y < buttonMask.height(); y++ ) { uchar *line = dest[y]; for ( int x = 0; x < buttonMask.width(); x++ ) - if ( !qRed( imgMask.pixel( x, y ) ) ) + if ( !qRed( maskImage.pixel( x, y ) ) ) line[x] = command + 1; } // ### grmbl qt2. use constructor when switching to qt3. - QBitmap bm; bm = imgMask; + QBitmap bm; bm = maskImage; return bm; } void MediaWidget::loadDefaultSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &fileNameInfix ) { Config cfg( "OpiePlayer" ); cfg.setGroup( "Options" ); QString skin = cfg.readEntry( "Skin","default" ); @@ -103,18 +100,17 @@ void MediaWidget::loadSkin( const SkinButtonInfo *skinInfo, uint buttonCount, co { Skin skin( name, fileNameInfix ); QString skinPath = "opieplayer2/skins/" + name; backgroundPixmap = skin.backgroundImage(); buttonUpImage = skin.buttonUpImage(); buttonDownImage = skin.buttonDownImage(); - setupButtons( skinInfo, buttonCount, - skinPath + QString::fromLatin1( "/skin%1_mask_" ).arg( fileNameInfix ), buttonUpImage.size() ); + setupButtons( skinInfo, buttonCount, skin, buttonUpImage.size() ); } void MediaWidget::closeEvent( QCloseEvent * ) { mediaPlayerState.setList(); } void MediaWidget::paintEvent( QPaintEvent *pe ) 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 @@ -38,16 +38,18 @@ namespace { static void *allocate( size_t amount ) { return ::operator new( amount ); } static void deallocate( void *p, size_t ) { ::operator delete( p ); } }; } +class Skin; + class MediaWidget : public QWidget { Q_OBJECT public: enum Command { Play = 0, Stop, Next, Previous, VolumeUp, VolumeDown, Loop, PlayList, Forward, Back, FullScreen, Undefined }; enum ButtonType { NormalButton, ToggleButton }; struct Button @@ -95,19 +97,19 @@ signals: void backReleased(); void forwardClicked(); void backClicked(); void moreClicked(); void lessClicked(); protected: void setupButtons( const SkinButtonInfo *skinInfo, uint buttonCount, - const QString &imagePrefix, const QSize &buttonAreaSize ); - Button setupButton( const SkinButtonInfo &buttonInfo, const QString &imagePrefix ); - QBitmap setupButtonMask( const Command &command, const QString &fileName ); + const Skin &skin, const QSize &buttonAreaSize ); + Button setupButton( const SkinButtonInfo &buttonInfo, const Skin &skin ); + QBitmap setupButtonMask( const Command &command, const QImage &maskImage ); void loadDefaultSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &fileNameInfix = QString::null ); void loadSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &name, const QString &fileNameInfix ); virtual void closeEvent( QCloseEvent * ); virtual void paintEvent( QPaintEvent *pe ); 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 @@ -19,10 +19,17 @@ QImage Skin::buttonUpImage() const return QImage( Resource::findPixmap( QString( "%1/skin%2_up" ).arg( m_skinPath ).arg( m_fileNameInfix ) ) ); } QImage Skin::buttonDownImage() const { return QImage( Resource::findPixmap( QString( "%1/skin%2_down" ).arg( m_skinPath ).arg( m_fileNameInfix ) ) ); } +QImage Skin::buttonMaskImage( const QString &fileName ) const +{ + QString prefix = m_skinPath + QString::fromLatin1( "/skin%1_mask_" ).arg( m_fileNameInfix ); + QString path = prefix + fileName + ".png"; + return QImage( Resource::findPixmap( path ) ); +} + /* vim: et sw=4 ts=4 */ 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 @@ -8,16 +8,18 @@ class Skin { public: Skin( const QString &name, const QString &fileNameInfix ); QImage backgroundImage() const; QImage buttonUpImage() const; QImage buttonDownImage() const; + QImage buttonMaskImage( const QString &fileName ) const; + private: QString m_name; QString m_fileNameInfix; QString m_skinPath; Skin( const Skin & ); Skin &operator=( const Skin & ); }; |