author | simon <simon> | 2002-12-11 12:21:55 (UTC) |
---|---|---|
committer | simon <simon> | 2002-12-11 12:21:55 (UTC) |
commit | d24ad11763335834718485f14e90d8dab2611fa2 (patch) (side-by-side diff) | |
tree | c2ad64ecd8f2e217a3816f57c3dec20aaac4e421 | |
parent | 381de1a3cfcc32dd7c0350329413f55dd9de9bb8 (diff) | |
download | opie-d24ad11763335834718485f14e90d8dab2611fa2.zip opie-d24ad11763335834718485f14e90d8dab2611fa2.tar.gz opie-d24ad11763335834718485f14e90d8dab2611fa2.tar.bz2 |
- moved the remaining pieces of image/pixmap loading to the Skin class
-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 @@ -35,90 +35,86 @@ MediaWidget::MediaWidget( PlayListWidget &_playList, MediaPlayerState &_mediaPla this, SLOT( setDisplayType( MediaPlayerState::DisplayType ) ) ); connect( &mediaPlayerState, SIGNAL( lengthChanged( long ) ), this, SLOT( setLength( long ) ) ); connect( &mediaPlayerState, SIGNAL( playingToggled( bool ) ), 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" ); loadSkin( skinInfo, buttonCount, skin, fileNameInfix ); } void MediaWidget::loadSkin( const SkinButtonInfo *skinInfo, uint buttonCount, const QString &name, const QString &fileNameInfix ) { 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 ) { QPainter p( this ); if ( mediaPlayerState.isFullscreen() ) { 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 @@ -34,24 +34,26 @@ namespace { struct simpleAndStupidAllocator { 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 { Button() : command( Undefined ), type( NormalButton ), isDown( false ) {} Command command; @@ -91,27 +93,27 @@ public slots: signals: void moreReleased(); void lessReleased(); void forwardReleased(); 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 ); Button *buttonAt( const QPoint &position ); virtual void mousePressEvent( QMouseEvent *event ); virtual void mouseReleaseEvent( QMouseEvent *event ); 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 @@ -15,14 +15,21 @@ QImage Skin::backgroundImage() const } 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 @@ -4,24 +4,26 @@ #include <qstring.h> #include <qimage.h> 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 & ); }; #endif // SKIN_H /* vim: et sw=4 ts=4 */ |