/*                 This file is part of the Opie Project Copyright (c) 2002 L. Potter and Copyright (C) 2000-2002 Trolltech AS. All rights reserved. =. .=l.            .>+-=  _;:,     .>    :=|. This program is free software; you can .> <`_,   >  .   <= redistribute it and/or modify it under :`=1 )Y*s>-.--   : the terms of the GNU General Public .="- .-=="i,     .._ License as published by the Free Software  - .   .-<_>     .<> Foundation; either version 2 of the License,      ._= =}       : or (at your option) any later version.     .%`+i>       _;_.     .i_,=:_.      -`: PARTICULAR PURPOSE. See the GNU ..}^=.=       =       ; Library General Public License for more ++=   -.     .`     .: details.  :     =  ...= . :.=-  -.   .:....=;==+<; You should have received a copy of the GNU   -_. . .   )=.  = 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. */ #include "oticker.h" /* OPIE */ #include #include using namespace Opie::Ui; OTicker::OTicker( QWidget* parent ) : QLabel( parent ) { setTextFormat( Qt::RichText ); Config cfg( "qpe" ); cfg.setGroup( "Appearance" ); backgroundcolor = QColor( cfg.readEntry( "Background", "#E5E1D5" ) ); foregroundcolor = Qt::black; updateTimerTime = 50; scrollLength = 1; } OTicker::~OTicker() {} void OTicker::setBackgroundColor( const QColor& backcolor ) { backgroundcolor = backcolor; update(); } void OTicker::setForegroundColor( const QColor& backcolor ) { foregroundcolor = backcolor; update(); } void OTicker::setFrame( int frameStyle ) { setFrameStyle( frameStyle /*WinPanel | Sunken */ ); update(); } void OTicker::setText( const QString& text ) { pos = 0; // reset it everytime the text is changed scrollText = text; odebug << scrollText << oendl; int pixelLen = 0; bool bigger = false; int contWidth = contentsRect().width(); int contHeight = contentsRect().height(); int pixelTextLen = fontMetrics().width( text ); odebug << "<<<<<< contWidth*/ ) startTimer( updateTimerTime ); update(); } void OTicker::timerEvent( QTimerEvent * ) { pos = ( pos <= 0 ) ? scrollTextPixmap.width() : pos - scrollLength; //1; repaint( FALSE ); } void OTicker::drawContents( QPainter *p ) { int pixelLen = scrollTextPixmap.width(); p->drawPixmap( pos, contentsRect().y(), scrollTextPixmap ); if ( pixelLen > contentsRect().width() ) // Scrolling p->drawPixmap( pos - pixelLen, contentsRect().y(), scrollTextPixmap ); } void OTicker::mouseReleaseEvent( QMouseEvent * ) { // odebug << "<<<<<<<>>>>>>>>>" << oendl; emit mousePressed(); } void OTicker::setUpdateTime( int time ) { updateTimerTime = time; } void OTicker::setScrollLength( int len ) { scrollLength = len; }