summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/audiowidget.cpp25
-rw-r--r--noncore/multimedia/opieplayer2/mediawidget.h9
2 files changed, 15 insertions, 19 deletions
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp
index 6e9c14a..87e06ee 100644
--- a/noncore/multimedia/opieplayer2/audiowidget.cpp
+++ b/noncore/multimedia/opieplayer2/audiowidget.cpp
@@ -99,46 +99,41 @@ AudioWidget::AudioWidget( PlayListWidget &playList, MediaPlayerState &mediaPlaye
skin = cfg.readEntry("Skin","default");
//skin = "scaleTest";
// color of background, frame, degree of transparency
QString skinPath = "opieplayer2/skins/" + skin;
pixBg = QPixmap( Resource::loadPixmap( QString("%1/background").arg(skinPath) ) );
imgUp = QImage( Resource::loadImage( QString("%1/skin_up").arg(skinPath) ) );
imgDn = QImage( Resource::loadImage( QString("%1/skin_down").arg(skinPath) ) );
buttonMask = QImage( imgUp.width(), imgUp.height(), 8, 255 );
buttonMask.fill( 0 );
- masks.reserve( buttonCount );
-
- for ( uint i = 0; i < masks.capacity(); i++ ) {
+ for ( uint i = 0; i < buttons.size(); i++ ) {
QString filename = QString( QPEApplication::qpeDir() + "/pics/" + skinPath + "/skin_mask_" + skinInfo[i].fileName + ".png" );
- masks.push_back( QBitmap( filename ) );
+ buttons[ i ].mask =QBitmap( filename );
- if ( !masks[i].isNull() ) {
- QImage imgMask = masks[i].convertToImage();
+ if ( !buttons[i].mask.isNull() ) {
+ QImage imgMask = buttons[i].mask.convertToImage();
uchar **dest = buttonMask.jumpTable();
for ( int y = 0; y < imgUp.height(); y++ ) {
uchar *line = dest[y];
for ( int x = 0; x < imgUp.width(); x++ )
if ( !qRed( imgMask.pixel( x, y ) ) )
line[x] = i + 1;
}
}
}
- buttonPixUp.resize( masks.size(), QPixmap() );
- buttonPixDown.resize( masks.size(), QPixmap() );
-
setBackgroundPixmap( pixBg );
songInfo.setFocusPolicy( QWidget::NoFocus );
// changeTextColor( &songInfo );
// songInfo.setBackgroundColor( QColor( 167, 212, 167 ));
// songInfo.setFrameStyle( QFrame::NoFrame);
songInfo.setFrameStyle( QFrame::WinPanel | QFrame::Sunken );
// songInfo.setForegroundColor(Qt::white);
slider.setFixedHeight( 20 );
slider.setMinValue( 0 );
slider.setMaxValue( 1 );
@@ -206,28 +201,28 @@ void AudioWidget::resizeEvent( QResizeEvent * ) {
slider.setFixedWidth( w - 110 );
slider.setGeometry( QRect( 15, h - 22, w - 90, 20 ) );
slider.setBackgroundOrigin( QWidget::ParentOrigin );
time.setGeometry( QRect( w - 85, h - 30, 70, 20 ) );
upperLeftOfButtonMask.rx() = ( w - imgUp.width() ) / 2;
upperLeftOfButtonMask.ry() = (( h - imgUp.height() ) / 2) - 10;
QPoint p = upperLeftOfButtonMask;
QPixmap pixUp = combineImageWithBackground( imgUp, pixBg, p );
QPixmap pixDn = combineImageWithBackground( imgDn, pixBg, p );
- for ( uint i = 0; i < masks.size(); i++ ) {
- if ( !masks[i].isNull() ) {
- buttonPixUp[i] = maskPixToMask( pixUp, masks[i] );
- buttonPixDown[i] = maskPixToMask( pixDn, masks[i] );
+ for ( uint i = 0; i < buttons.size(); i++ ) {
+ if ( !buttons[i].mask.isNull() ) {
+ buttons[i].pixUp = maskPixToMask( pixUp, buttons[i].mask );
+ buttons[i].pixDown = maskPixToMask( pixDn, buttons[i].mask );
}
}
}
void AudioWidget::sliderPressed() {
audioSliderBeingMoved = TRUE;
}
void AudioWidget::sliderReleased() {
audioSliderBeingMoved = FALSE;
if ( slider.width() == 0 )
@@ -313,27 +308,27 @@ void AudioWidget::updateSlider( long i, long max ) {
}
void AudioWidget::setToggleButton( int i, bool down ) {
qDebug("setToggleButton %d", i);
if ( down != buttons[i].isDown ) {
toggleButton( i );
}
}
void AudioWidget::paintButton( QPainter &p, int i ) {
if ( buttons[i].isDown ) {
- p.drawPixmap( upperLeftOfButtonMask, buttonPixDown[i] );
+ p.drawPixmap( upperLeftOfButtonMask, buttons[i].pixDown );
} else {
- p.drawPixmap( upperLeftOfButtonMask, buttonPixUp[i] );
+ p.drawPixmap( upperLeftOfButtonMask, buttons[i].pixUp );
}
}
void AudioWidget::skipFor() {
skipDirection = +1;
startTimer( 50 );
mediaPlayerState.setPosition( mediaPlayerState.position() + 2 );
}
void AudioWidget::skipBack() {
skipDirection = -1;
diff --git a/noncore/multimedia/opieplayer2/mediawidget.h b/noncore/multimedia/opieplayer2/mediawidget.h
index 2641df6..504b705 100644
--- a/noncore/multimedia/opieplayer2/mediawidget.h
+++ b/noncore/multimedia/opieplayer2/mediawidget.h
@@ -15,44 +15,49 @@
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#ifndef MEDIAWIDGET_H
#define MEDIAWIDGET_H
#include <qwidget.h>
+#include <qmap.h>
#include "mediaplayerstate.h"
#include "playlistwidget.h"
#include <vector>
class MediaWidget : public QWidget
{
Q_OBJECT
public:
enum Command { Play = 0, Stop, Next, Previous, VolumeUp, VolumeDown, Loop, PlayList, Forward, Back };
enum ButtonType { NormalButton, ToggleButton };
struct Button
{
Button() : type( NormalButton ), isHeld( false ), isDown( false ) {}
ButtonType type : 1;
bool isHeld : 1;
bool isDown : 1;
+
+ QBitmap mask;
+ QPixmap pixUp;
+ QPixmap pixDown;
};
typedef std::vector<Button> ButtonVector;
struct SkinButtonInfo
{
Command command;
const char *fileName;
ButtonType type;
};
typedef std::vector<QBitmap> MaskVector;
typedef std::vector<QPixmap> PixmapVector;
@@ -81,22 +86,18 @@ protected:
void paintButton( int buttonId );
virtual void paintButton( QPainter &p, int i ) = 0;
void toggleButton( int buttonId );
MediaPlayerState &mediaPlayerState;
PlayListWidget &playList;
ButtonVector buttons;
QImage buttonMask;
- MaskVector masks;
- PixmapVector buttonPixUp;
- PixmapVector buttonPixDown;
-
QPoint upperLeftOfButtonMask;
};
#endif // MEDIAWIDGET_H
/* vim: et sw=4 ts=4
*/