author | simon <simon> | 2002-12-11 13:46:15 (UTC) |
---|---|---|
committer | simon <simon> | 2002-12-11 13:46:15 (UTC) |
commit | 2b3c450378c1da0a2175c91d652ce2eae5614ff8 (patch) (side-by-side diff) | |
tree | 4c11c70dbf487725f6e443f5db4c5a0a0c964e61 /noncore/multimedia/opieplayer2/mediawidget.cpp | |
parent | cd5e96b40ceae9158e5cb01e71769e895ea7a3c1 (diff) | |
download | opie-2b3c450378c1da0a2175c91d652ce2eae5614ff8.zip opie-2b3c450378c1da0a2175c91d652ce2eae5614ff8.tar.gz opie-2b3c450378c1da0a2175c91d652ce2eae5614ff8.tar.bz2 |
- less code duplication. code from resizeEvent is now shared as well as
the image composing method and the pixmap mask helper
Diffstat (limited to 'noncore/multimedia/opieplayer2/mediawidget.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer2/mediawidget.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/noncore/multimedia/opieplayer2/mediawidget.cpp b/noncore/multimedia/opieplayer2/mediawidget.cpp index ab23aa8..ab2ec50 100644 --- a/noncore/multimedia/opieplayer2/mediawidget.cpp +++ b/noncore/multimedia/opieplayer2/mediawidget.cpp @@ -109,6 +109,23 @@ void MediaWidget::paintEvent( QPaintEvent *pe ) } } +void MediaWidget::resizeEvent( QResizeEvent *e ) +{ + QPixmap pixUp = combineImageWithBackground( buttonUpImage, backgroundPixmap, upperLeftOfButtonMask ); + QPixmap pixDn = combineImageWithBackground( buttonDownImage, backgroundPixmap, upperLeftOfButtonMask ); + + for ( ButtonVector::iterator it = buttons.begin(); it != buttons.end(); ++it ) { + Button &button = *it; + + if ( button.mask.isNull() ) + continue; + button.pixUp = addMaskToPixmap( pixUp, button.mask ); + button.pixDown = addMaskToPixmap( pixDn, button.mask ); + } + + QWidget::resizeEvent( e ); +} + MediaWidget::Button *MediaWidget::buttonAt( const QPoint &position ) { if ( position.x() <= 0 || position.y() <= 0 || @@ -230,5 +247,21 @@ void MediaWidget::toggleButton( Button &button ) paintButton( button ); } +QPixmap MediaWidget::combineImageWithBackground( const QImage &image, const QPixmap &background, const QPoint &offset ) +{ + QPixmap pix( image.size() ); + QPainter p( &pix ); + p.drawTiledPixmap( pix.rect(), background, offset ); + p.drawImage( 0, 0, image ); + return pix; +} + +QPixmap MediaWidget::addMaskToPixmap( const QPixmap &pix, const QBitmap &mask ) +{ + QPixmap result( pix ); + result.setMask( mask ); + return result; +} + /* vim: et sw=4 ts=4 */ |