author | kergoth <kergoth> | 2003-04-24 21:04:40 (UTC) |
---|---|---|
committer | kergoth <kergoth> | 2003-04-24 21:04:40 (UTC) |
commit | f7ed0f1e02fa05b330d94b2a4928f3e249edb98f (patch) (side-by-side diff) | |
tree | 300a828ddf7f4d8c7441f394c0cd828cd5200be2 | |
parent | b59b200a00486bc68810317eb7f14c565604a475 (diff) | |
download | opie-f7ed0f1e02fa05b330d94b2a4928f3e249edb98f.zip opie-f7ed0f1e02fa05b330d94b2a4928f3e249edb98f.tar.gz opie-f7ed0f1e02fa05b330d94b2a4928f3e249edb98f.tar.bz2 |
Add background to the clock.
-rw-r--r-- | noncore/tools/clock/clock.cpp | 6 | ||||
-rw-r--r-- | noncore/tools/clock/clock.h | 5 | ||||
-rw-r--r-- | pics/clock/bg.png | bin | 0 -> 14019 bytes |
3 files changed, 9 insertions, 2 deletions
diff --git a/noncore/tools/clock/clock.cpp b/noncore/tools/clock/clock.cpp index 74b7147..41c99a8 100644 --- a/noncore/tools/clock/clock.cpp +++ b/noncore/tools/clock/clock.cpp @@ -471,107 +471,113 @@ void Clock::appMessage( const QCString& msg, const QByteArray& /*data*/ ) pthread_t thread; pthread_create(&thread, NULL, (void * (*) (void *))startPlayer, NULL/* &*/); } else { Sound::soundAlarm(); stopTimer = startTimer( timerStay ); } } if ( msg == "timerStart()" ) { slotStartTimer(); } if ( msg == "timerStop()" ) { slotStopTimer(); } if ( msg == "timerReset()" ) { slotResetTimer(); } show(); raise(); QPEApplication::setKeepRunning(); setActiveWindow(); } void Clock::timerEvent( QTimerEvent *e ) { static int stop = 0; if ( stop < 120 && bSound ) { Sound::soundAlarm(); stop++; } else { stop = 0; killTimer( e->timerId() ); clearTimer(); setCaption( tr( "Clock: Alarm was missed." ) ); } } +AnalogClock::AnalogClock(QWidget * parent, const char * name) : QFrame( parent, name ), clear(true) +{ + bg = Resource::loadPixmap("clock/bg"); +} QSizePolicy AnalogClock::sizePolicy() const { return QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ); } void AnalogClock::drawContents( QPainter *p ) { QRect r = contentsRect(); QRect fr; + p->drawPixmap(QPoint(0, 0), bg, r); + if ( r. width ( ) > r. height ( )) fr. setRect (( r. width ( ) - r. height ( )) / 2, r. y ( ), r. height ( ), r. height ( )); else fr. setRect ( r. x ( ), ( r. height ( ) - r. width ( )) / 2, r. width ( ), r. width ( )); QPoint center = fr. center ( ); // ( fr.x() + fr.width() / 2, fr.y() + fr.height() / 2 ); QPoint l1 ( center. x ( ), fr. y ( ) + 2 ); QPoint l2 ( center. x ( ), fr. y ( ) + 8 ); if ( clear ) { erase ( r ); p-> setPen ( NoPen ); p-> setBrush ( colorGroup ( ). color ( QColorGroup::Base )); p-> drawEllipse ( fr ); p-> setBrush ( NoBrush ); // draw ticks p->setPen( QPen( colorGroup ( ). color ( QColorGroup::Text ), 1 ) ); for ( int i = 0; i < 12; i++ ) p->drawLine( rotate( center, l1, i * 30 ), rotate( center, l2, i * 30 ) ); } else { drawPointers ( p, fr, colorGroup ( ). color ( QColorGroup::Base ), prevTime, &currTime ); } drawPointers ( p, fr, colorGroup ( ). color ( QColorGroup::Text ), currTime ); prevTime = currTime; } void AnalogClock::drawPointers ( QPainter *p, const QRect &r, const QColor &c, const QTime &t, const QTime *t2 ) { QPoint center = r. center ( ); QPoint h1( center. x ( ), r. y ( ) + r. height ( ) / 4 ); QPoint h2( center. x ( ), center. y ( ) ); QPoint m1( center. x ( ), r.y() + r.height() / 8 ); QPoint m2( center. x ( ), center. y ( ) ); QPoint s1( center. x ( ), r. y ( ) + 8 ); QPoint s2( center. x ( ), center. y ( ) ); diff --git a/noncore/tools/clock/clock.h b/noncore/tools/clock/clock.h index 1e5aa2c..fa12b61 100644 --- a/noncore/tools/clock/clock.h +++ b/noncore/tools/clock/clock.h @@ -1,97 +1,98 @@ /********************************************************************** ** Copyright (C) 2000 Trolltech AS. All rights reserved. ** ** This file is part of Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ** See http://www.trolltech.com/gpl/ for GPL licensing information. ** ** Contact info@trolltech.com if any conditions of this licensing are ** not clear to you. ** **********************************************************************/ #ifndef CLOCK_H #define CLOCK_H #include <qdatetime.h> #include <qvbox.h> +#include <qpixmap.h> class QLCDNumber; class QLabel; class QTimer; class QRadioButton; class QPushButton; class QDateTime; class AnalogClock : public QFrame { Q_OBJECT public: - AnalogClock( QWidget * parent = 0, const char * name = 0 ) - : QFrame( parent, name ), clear(true) {} + AnalogClock( QWidget * parent = 0, const char * name = 0 ); QSizePolicy sizePolicy() const; void display( const QTime& time ); protected: void drawContents( QPainter *p ); private: + QPixmap bg; QTime currTime; QTime prevTime; bool clear; QPoint rotate( QPoint center, QPoint p, int angle ); void drawPointers ( QPainter *, const QRect &r, const QColor &c, const QTime &t, const QTime *t2 = 0 ); }; class Clock : public QVBox { Q_OBJECT public: Clock( QWidget * parent = 0, const char * name = 0, WFlags f=0 ); ~Clock(); QDateTime when; bool bSound; int hour, minute, snoozeTime; private slots: void slotSet(); void slotReset(); void modeSelect(int); void updateClock(); void changeClock( bool ); void slotSetAlarm(); void slotSnooze(); void slotToggleAlarm(); void alarmOn(); void alarmOff(); void appMessage(const QCString& msg, const QByteArray& data); void timerEvent( QTimerEvent *e ); void slotAdjustTime(); void slotStartTimer(); void slotStopTimer(); void slotResetTimer(); void setSwatchMode( int ); private: bool alarmBool; QTimer *t; QLCDNumber *lcd; QLabel *date; QLabel *ampmLabel; QPushButton *set, *reset, *alarmBtn, *snoozeBtn, *alarmOffBtn; QRadioButton *clockRB, *swatchRB; AnalogClock *aclock; QTime swatch_start; diff --git a/pics/clock/bg.png b/pics/clock/bg.png Binary files differnew file mode 100644 index 0000000..0954ca6 --- a/dev/null +++ b/pics/clock/bg.png |