Diffstat (limited to 'noncore/multimedia/opieplayer2/audiowidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/multimedia/opieplayer2/audiowidget.cpp | 43 |
1 files changed, 40 insertions, 3 deletions
diff --git a/noncore/multimedia/opieplayer2/audiowidget.cpp b/noncore/multimedia/opieplayer2/audiowidget.cpp index 8d3963a..1b0de5d 100644 --- a/noncore/multimedia/opieplayer2/audiowidget.cpp +++ b/noncore/multimedia/opieplayer2/audiowidget.cpp @@ -17,3 +17,2 @@ extern MediaPlayerState *mediaPlayerState; - static const int xo = -2; // movable x offset @@ -22,2 +21,40 @@ static const int yo = 22; // movable y offset +Ticker::Ticker( QWidget* parent=0 ) : QFrame( parent ) { + setFrameStyle( WinPanel | Sunken ); + setText( "No Song" ); +} + +Ticker::~Ticker() { +} + +void Ticker::setText( const QString& text ) { + pos = 0; // reset it everytime the text is changed + scrollText = text; + pixelLen = fontMetrics().width( scrollText ); + killTimers(); + if ( pixelLen > width() ) { + startTimer( 50 ); + } + update(); +} + + +void Ticker::timerEvent( QTimerEvent * ) { + pos = ( pos + 1 > pixelLen ) ? 0 : pos + 1; + repaint( FALSE ); +} + +void Ticker::drawContents( QPainter *p ) { + QPixmap pm( width(), height() ); + pm.fill( colorGroup().base() ); + QPainter pmp( &pm ); + for ( int i = 0; i - pos < width() && (i < 1 || pixelLen > width()); i += pixelLen ) { + pmp.drawText( i - pos, 0, INT_MAX, height(), AlignVCenter, scrollText ); + } + p->drawPixmap( 0, 0, pm ); +} + + + + struct MediaButton { @@ -29,2 +66,4 @@ struct MediaButton { + + // Layout information for the audioButtons (and if it is a toggle button or not) @@ -42,3 +81,2 @@ MediaButton audioButtons[] = { - static const int numButtons = (sizeof(audioButtons)/sizeof(MediaButton)); @@ -147,3 +185,2 @@ void AudioWidget::setView( char view ) { startTimer( 150 ); - // show(); showMaximized(); |